语音识别过程
常见的mp3等格式属于语音的压缩格式,必须转化为非压缩的纯波形格式(如Windows PCM文件,即wav,wav文件包含文件头、声音波形点)来进行后续处理
语音识别预处理:
1、切除波形首尾端的静音(VAD),减少后续步骤的干扰
2、声音分帧:通过移动窗口切割(如帧长25ms、帧间交叠15ms,则帧移为10ms,即窗口每次移动10ms。考虑交叠的原因是为了保持帧间平滑、连续性)
3、波形变换提取声学特征:提取MFCC(不止这一种)特征,根据人耳生理特性,将每一帧波形变成多维向量,处理后得到 12(声学特征可以不是12维) * N(帧数)
识别处理:把帧识别成状态 => 把状态组合成音素 => 把音素组合成单词
1、将帧识别成状态(文字的发音由音素构成 ; 状态可以理解成比音素更细致的语音单位,通常一个音素划分为3个状态)
1.1 如何将帧识别为状态,通过训练的“声学模型”给出当前帧属于不同状态的概率,最大值代表属于哪个状态,一般每帧对应一个状态,3个状态对应一个音素,实际上语音中没有这么多音素,大多数相邻帧是相同(使用隐马尔可夫模型 Hidden Markov Model,HMM)
1.2 HMM:构建状态网络(如果网络中包含"今天下雨"、"今天晴天",则只能识别其中一句) => 从状态网络中寻找与语音最匹配的路径(概率最大),路径搜索算法称为Viterbi算法
1.3 概率最大:包含3部分:1、观察概率:帧和每个状态对应的概率 2、转移概率:每个状态转移到自身或者转移到下个状态的概率 3、语音概率(语言模型使用大量文本训练得到):根据语言模型统计的概率