一、语音的构成
1. 为什么有monophone和triphone
coarticulation协同发音(指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异),所以将一个音素划分为几个亚音素单元。如:数字“three”,音素的第一部分与在它之前的音素存在关联,中间部分是稳定的部分,而最后一部分则与下一个音素存在关联。
2. senone多元音素
考虑上下文关联,一个senone的上下文依赖比单纯的左右上下文复杂得多,它是一个可以被决策树或者其他方式来定义的复杂函数(英语的上下文相关建模通常以音素为基元,由于有些音素对其后音素的影响是相似的,因而可以通过音素解码状态的聚类进行模型参数的共享。聚类的结果称为senone。决策树用来实现高效的triphone对senone的对应,通过回答一系列前后音所属类别(元/辅音、清/浊音等等)
3. 音节syllables
phones->subword units = syllables音节是一个比较稳定的实体,因为当语音变得比较快的时候,音素往往会发生改变,但是音节却不变。
4. 单词word
subwords->word,相对于全部组合,只有少数组合有意义(是存在的单词)
5. 话语utterances
words+filters(呼吸,um,uh,咳嗽等)=utterance
二、识别过程
1. 概述
waveform->根据silences分割为多个utterances,识别每个utterance
2. 特征
waveform分割成10ms的frame,每个frame提取39维特征
3. 模型
senone->GMM
4. 匹配
特征向量和模型匹配
三、模型
1. 声学模型
每个senone的声学属性,其包括不依赖于上下文的属性(每个音素phone最大可能的特征向量)和依赖于上下文的属性(根据上下文构建的senone)
2. 字典
从单词words到音素phones之间的映射。还可以通过运用机器学习算法去学习得到一些复杂的函数去完成映射功能。
3. 语言模型
用来约束单词搜索的。它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。
四、其他
1.lattice
代表识别的不同结果的有向图。一般来说,很难去获得一个最好的语音匹配结果。所以Lattices就是一个比较好的格式去存放语音识别的中间结果。
2. N-best lists
和lattices有点像,但是它没有lattices那么密集(也就是保留的结果没有lattices多)。(N-best搜索和多遍搜索:为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源(如声学模型、语言模型和音标词典),产生一个候选列表或词候选网格,在此基础上进行使用代价高的知识源(如4阶或5阶的N-Gram、4阶或更高的上下文相关模型)的第二遍搜索得到最佳路径。)
3. Word confusion networks (sausages)
从lattice的边缘得到的一个严格的节点顺序序列。
参考资料
https://blog.csdn.net/zouxy09/article/details/7941055
https://cmusphinx.github.io/wiki/tutorialconcepts/