语音识别
目录语音识别(ASR)词格alignment维特比算法(Viterbi algorithm)HTK工具其他语音识别(ASR)语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR), 狭隘一点白话说:将语音转换为文字的技术。词格词网格,lattice,word lattice在实际的语音识别系统中,最优路
目录
语音识别(ASR)
语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR), 狭隘一点白话说:将语音转换为文字的技术。
词格
词网格,lattice,word lattice
在实际的语音识别系统中,最优路径不一定与实际字序列匹配,我们一般希望能够得到得分最靠前的多条候选路径,即N-best。为了紧凑地保存候选路径,防止占用过多内存空间,我们一般采用词格(Lattice)来保存识别的候选序列。词格没有一般的定义,常用的方法是利用有限状态自动机的数据结构来构建词格。
在国内亦被称作词图,本质上是一个有向无环(directed acyclic graph)图。每个词网格包含一个开始结点以及一个结束结点,即在每个词网格中,仅存在一个入度(in-degree)为0的节点和一个出度(out-degree)为0的节点。
也可以用图上的每个节点代表一个词的结束时间点,每条边代表一个可能的词,以及该词发生的声学得分和语言模型得分。
alignment
它表示使用Viterbi算法得到的一个句子最佳路径的HMM状态序列。在Kaldi里alignment是一个transition-id序列。很多时候alignment是参考一个句子(utterance)的标注词序列的,这种情况叫做forced alignment。因为使用Viterbi算法得到的最优状态序列不一定能对于正确的词序列,比如使用Viterbi算法输出的是”/b/a/t”,但是实际句子可能是bad。forced alignment可以认为在所有正确词序列能生成的状态序列中的最佳状态。比如假设正确的句子只有bad这个词,语音信号是5帧(不考虑silence),我们这里假设是monophone,那么bad能生成的状态序列只可能是:
b b b a d
b b a d d
b b a a d
b a d d d
b a a d d
b a a a d
因此force alignment是从这些可能的状态序列里选择最佳的一个。
lattices also contain alignment information as sequences of transition-ids for each word sequence in the lattice lattice的每一个词序列都包含了对应的alignment,也就是一个transition-id的序列。
维特比算法(Viterbi algorithm)
是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。
描述一种语言的基本单位被称为音素Phone或者Phoneme,例如BRYAN这个词就可以看做是由B, R, AY, AX, N五个音素构成的。英语中貌似有50多个音素,可以用50几个HMM state来表示这些音素,这种表示方法就是context independent模型中的单音素monophone模式。然而语音没有图像识别那么简单,因为我们再说话的时候很多发音都是连在一起的,很难区分,所以一般用左中右三个HMM state来描述一个音素,也就是说BRYAN这个词中的R音素就变成了用B-R, R, R-AY三个HMM state来表示。这样BRYAN这个词根据上下文就需要15个state了,根据所有单词的上下文总共大概需要几千个HMM state,这种方式属于context dependent模型中的三音素triphone模式。这个HMM state的个数在各家语音识别系统中都不一样,是一个需要调的参数。所以声学模型就是如何设置HMM state,对于信号中的每一frame抽怎样的特征,然后用训练什么分类器。
在基于GMM-HMM的传统语音识别里,比音素(phone)更小的单位是状态(state)。一般每个音素由三个状态组成,特殊的是静音(SIL)由五个状态组成。这里所说的状态就是指HMM里的隐藏的状态,而每帧数据就是指HMM里的观测值。每个状态可以用一个GMM模型表示(这个GMM模型的参数是通过训练得到的)。在识别时把每帧数据对应的特征值放进每个状态的GMM里算概率,概率最大的那个就是这帧对应的状态。再从状态得到音素(HMM负责),从音素得到词(字典模型负责),从词得到句子(语言模型负责),最终完成识别。
HTK工具
HTK(HMM Toolkit)一款基于HMM模型(隐马尔可夫模型)的语音处理工具,HTK主要用于语音识别研究,尽管它已被用于许多其他应用,包括语音合成,字符识别和DNA测序的研究。HTK最初是在剑桥大学工程系(CUED)的机器智能实验室 (以前称为语音视觉和机器人小组)开发的。后版权辗转到Microsoft,其保留了原始HTK代码的版权。
在HTK中使用MLF格式的文件来描述发音序列。
其他
HMM:隐马尔柯夫模型(Hidden Markov Model)
GMM:高斯混合模型(Gaussian Mixture Model)
CI phone: 上下文无关(CI)音素
CD phone: 上下文相关(CD)音素
更多推荐
所有评论(0)