本文主要对基于GMM/HMMs的传统语音识别系统做一个整体介绍。
Outline:
- 识别原理
- 统计学模型
- 系统框架
首先需要说明本文讨论的对象是连续语音识别(Continuous Speech Recognition, CSR),意味着基于DTW(动态时间规整)的孤立词识别(Isolated Word Recognition)不在讨论范围内(out-of-date)。同时,整篇围绕自动语音识别解码过程(识别过程)展开的讨论的。
1.识别原理
首先明白,我们的语音是一种声波,是模拟信号,一般在电脑中保存为wav文件(无压缩格式)或者可以直接通过麦克风采集获得(online)。
需先进行预处理与数字化操作:滤波降噪、预加重(提升高频)、端点检测、加窗分帧,把我们的一段语音信号分解为很多很多的小段语音片段(语音帧)。一般每帧长度为25ms,相邻两帧有10ms的重叠,也就是常说的帧长25ms,帧移10ms。
然后,我们再对每一帧做信号分析,来进一步压缩数据,也被称作特征提取,常见的特征参数有:MFCC,PLP。经过特征提取后,每帧由原来上百个记录点,压缩为39维的MFCC特征参数。(瞬间轻松了好多)
接下来,就是怎么把一系列特征参数序列转化为一段话的问题了?也就是声学模型(GMM-HMMs)、语言模型派上用场的时候到了。首先我们要知道一段话是由一串文字序列组成,一个文字由一串音素(phoneme)组成(如bal:/b/ /ɔː/ /l/)。通常在英文中我们选择音素来建立了隐马尔科夫模型(中文建模单元常为声韵母),即一个音素对应一个HMM,同时通常一个HMM由三个状态(state)组成。好的我们再反过来,我们现在手上有一个特征参数序列,识别的过程,就是解决怎么把每个特征参数识别为一个状态,再由状态到音素,音素到单词,单词到单词序列(一段话)?其中特征参数到状态,由GMMs(混合高斯模型)解决;三个状态到一个音素,由HMM解决;音素到单词,由词典解决;单词到单词序列,由语言模型解决。当然,在整个过程中,我们都是在一个状态网络(time-state)中进行的,都是基于HMMs的。这也是为什么说是HMMs解决了语音识别问题。
统计学模型
自动语音识别(Automatic Speech Recognition, ASR)的任务是将一个段声学信号映射为一串文字。(对其建模是我们实际去解决问题的第一步)即
其中 X