aihot  2017-11-04 22:03:05  机器学习 |   查看评论   

  由CD-DNN-HMM最终解码出的字词序列需要同时考虑到声学模型和语言模型的概率,通过权重系数λ去平衡二者之间的关系。语言模型的概率由其它训练方法根据训练语料得出,而声学模型的概率,是所有状态转移概率以及符号发射概率的乘积。

CD-DNN-HMM的训练

  训练CD-DNN-HMM的第一步通常就是使用无监督的训练数据训练一个GMM-HMM系统,因为DNN训练标注是由GMM-HMM系统采用维特比算法产生得到的,而且标注的质量会影响DNN系统的性能。(我们知道,训练GMM-HMM采用EM算法,只需给定观察序列,而不需给定标注结果,而DNN需要相应的标注结果)

  这里先详细的讲一下涉及到的语音学的知识。

  语音是一个连续的音频流,它是由大部分的稳定态和部分动态改变的状态混合构成。

  一个单词的发声(波形)实际上取决于很多因素,而不仅仅是音素,例如音素上下文、说话者、语音风格等;

  协同发音(指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异。)的存在使得音素的感知与标准不一样,所以我们需要根据上下文来辨别音素。将一个音素划分为几个亚音素单元。如:数字『three』,音素的第一部分与在它之前的音素存在关联,中间部分是稳定的部分,而最后一部分则与下一个音素存在关联,这就是为什么在用HMM模型做语音识别时,选择音素的三状态HMM模型。(上下文相关建模方法在建模时考虑了这一影响,从而使模型能更准确地描述语音,只考虑前一音的影响的称为Bi-Phone,考虑前一音和后一音的影响的称为 Tri-Phone。)

  有时候,音素会被放在上下文中考虑,这样就形成了三音素或者多音素。但它与亚音素不同,他们在波形中匹配时长度还是和单一音素一样。只是名字上的不同而已,所以我们更倾向于将这样的多音素称为senone。一个senone的上下文依赖比单纯的左右上下文复杂得多,它是一个可以被决策树或者其他方式来定义的复杂函数。(英语的上下文相关建模通常以音素为基元,由于有些音素对其后音素的影响是相似的,因而可以通过音素解码状态的聚类进行模型参数的共享。聚类的结果称为senone。决策树用来实现高效的triphone对senone的对应,通过回答一系列前后音所属类别(元/辅音、清/浊音等等)的问题,最终确定其HMM状态应使用哪个senone。分类回归树CART模型用以进行词到音素的发音标注。)

  在实际应用中,senone的声学模型就是三态高斯混合模型。简单的说,它就是一个最有可能的特征向量。

  一旦训练好GMM-HMM模型hmm0,我们就可以创建一个从状态名字到senoneID的映射,前面也提到了,从状态到senone的映射并不简单,因为每个逻辑三音素是由聚类后的一系列物理三音素代表的。

  然后我们利用hmm0采用维特比算法生成一个状态层面的强制对齐,以生成从特征到senoneID的映射对,为DNN提供标注好的训练数据。

上下文窗口的影响

  我们前面提到,DNN的输入是一个长为2ω+1(典型的是9到13)帧大小的窗口特征,这样引入了相邻帧,DNN也可以对不同特征帧之间的相互关系进行建模,这样部分缓和了传统的HMM无法满足输出独立性假设的问题。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈语音识别基础

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]