语音识别by HMM
09009226
邓齐林
•语音识别技术,也被称为自动语音识别(A utomatic S peech R ecognition ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,如字符序列。
•语音识别技术主要包括
特征提取技术
模型训练技术
模式匹配技术
•最早的基于电子计算机的语音识别系统是由AT&T贝尔实验室开发的Audrey语音识别系统,它能够识别10个英文数字。
其识别方法是跟踪语音中的共振峰(在声音的频谱中能量相对集中的一些区域)
•到1950年代末,伦敦学院(Colledge of London)的Denes已经将语法概率加入语音识别系统中,成功开发了第一个计算机语音识别系统。
语音识别技术
•转变:进入80年代以后,研究的重点逐渐
转向大词汇量、非特定人的连续语音识
别,研究思路由传统的技术思路开始转向
基于统计模型(HMM)的技术思路
•突破:隐马尔科夫模型HMM(Hidden Markov Model)的应用
•卡内基梅隆大学的李开复最终实现了第一
个基于隐马尔科夫模型的大词汇量语音识
别系统Sphinx。
语音识别系统•特征提取/前端处理
提取语音信号的相关特征•声学模型
对应于语音到音节概率的计算•语言模型
对应于音节到单词概率的计算。
判决规
则估值计算
/VITERBI 解码计算
VQ矢量量
化码本训练
HMM(3)HMM(2)HMM(1)
识别结果Quantization 将若干个标量数据组构成一个矢量,然后在矢量空间给以整体量化
预处理
•预滤波
语音信号的频谱分量
采样和量化
•预加重
语音衰减(6dB/oct)
信号提升/加重
•端点检测
短时平均能量
短时平均过零率离散信号的相邻两个取样值具有不同的符号时,便出现过零现象,单位时间内过零的次数叫做过零率
声学特征
•帧:由于语音信号的时变特性,特征提取必须在一小段语音信号上进行,也就是要进行短时分析,这一小段被认为是平稳的分析区间称为帧
•帧与帧之间的偏移距离通常取帧长的1/2或1/3
例如:语音信号可以按256 个采样点为帧长进行分帧, 帧移采用128 个采样点. 这样设置参数后把系统移植到DSP 平台可以利用DFT等算法.
特征提取
•选取的合适的特征参数
声学特征的提取与选择
考虑特征参数的计算量
•进行适当的数据压缩
矢量量化技术
节省存储容量和识别运算量
•对于非特定人语音识别系统来讲,希望特征参数尽可能多的反映语义信息,尽量减少说话人的个人信息(对特定人语音识别系统来讲,则应该增加说话人的个人信息)。
特征提取•时域特征和/或频域特征
•时域特征:
1共振峰
2短时平均能量
3短时平均过零率
频域特征
•线性预测系数(LPC)
•LPC倒谱系数(LPCC)
•梅尔频率倒谱系数(MFCC)
•此外还有基于听觉模型的特征参数提取:感知线性预测(PLP)
声学模型
•马尔可夫模型:离散时域的有限状态自动机•隐马尔可夫模型HMM:则是指马尔可夫模型的内部状态外界不可见,当从一个状态转移到另一个状态时,外界只能观察到各个时刻的输出值,而不能观测到状态转移序列。
•对语音识别系统而言,输出值通常就是从各个帧提取计算而得的声学特征。
•HMM的两个假设
内部状态的转移只与前一个状态有关
输出值只与当前状态有关
HMM 算法•估值算法
HMM向前算法
HMM向后算法
•解码算法
Viterbi算法
对数Viterbi算法
•训练算法
向前向后算法
Baum‐Welch算法
•声学模型是识别系统的底层模型
•目标:提供一种有效的方法, 计算语音的特征矢量序列
•指标
训练数据量
语音识别率
灵活性
基本概念
•音素:最小的语音单位
•音标:记录英语音素的符号
•音节:最自然的语音单位
•汉语中一个汉字就是一个音节,每个音节由声母、韵母和声调三个部分组成
•英语中一个元音音素可构成一个音节,一个元音音素和一个或几个辅音音素结合也可以构成一个音节。
模型识别单元/模型基元
•词发音模型
•音节模型
•半音节模型
•音素模型
•小的识别单元的优点:
计算量
存储量
训练数据量
•带来的问题:
对应语音段的定位和分割困难
更加复杂的识别模型规则
•通常大的识别单元易于包括协同发音在模型中, 这有利于提高系统的识别率但要求的训练数据相对增加
模型结构选取
•语音识别中使用HMM通常是用从左向右单向、带自环、带跨越的拓扑结构来对识别基元建模,一个音节就是一个三至五个状态的HMM
•一个词就是构成词的多个音节的HMM串行起来构成的HMM,而连续语音识别的整个模型就是词和静音组合起来的HMM。
模型结构选取
模型只有惟一的一个初始状态和一个终止状态,并且这个过程只要进入一个新的状态就不能返回到以前的状态,这种模型很适合于其性质随着时间变化的语音信号。
由左至右的HMM,初始状态是1,终止状态是5
上下文相关建模
•协同发音的现象,指的是一个音受前后相邻音的影响而发生变化
•从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异
•只考虑前一音的影响的称为Bi‐Phone,考虑前一音和后一音的影响的称为Tri‐Phone。
上下文相关建模
•英语的上下文相关建模
以音素为模型基元
•有些音素对其后音素的影响是相似的,因而可以通过音素解码状态(Viterbi算法)的聚类共享模型参数
•聚类的结果称为senone
k均值聚类
•k均值聚类是最著名的划分聚类算法,简洁和高效率使得他成为所有聚类算法中最广泛使用的。
•给定一个数据点集合和需要的聚类数目k,k 由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中
用决策树来实现高效的tri‐phone对senone的选择,通过回答一系列前后音所属类别的问题(元/辅音、清/浊音),最终确定其HMM状态应使用哪个senone。
语言模型•规则语言模型和统计语言模型
•规则语言模型
音节字典
词法规则
语法规则
•统计语言模型:用概率统计的方法来揭示语言单位内在的统计规律,利用了拼音间的统计信息, 进行基于拼音串的语言理解
•N‐Gram:该模型基于这样一种假设,第n个词的出现只与前面N‐1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。
这些概率可以通过直接从语言资料中统计N个词同时出现的次数统计得到。
•由于计算量太大,N一般取值不会很大,常用的是二元的Bi‐Gram和三元的Tri‐Gram。
训练过程
•想要识别的词表有V 个词, 为每个词设计一个HMM 模型。
用VQ (Vector Quantization, 矢量量化) 技术设计一个尺寸为M的码本(M 为观察符号数)。
•假定每个词有K组训练数据,得到最优的模型参数。
与此同时,可以使用Viterbi算法得到状态数为N 的最可能的状态转移序列。
识别
•目的:寻找一个词模型序列以描述输入语音信号,从而得到词解码序列。
•声学模型估值
•语言模型估值
•对要识别的语音信号用训练所得的模型进行评估,计算模型对于观察序列的后验概率,后验概率最大的即位识别结果
•N‐best策略获取前N个最好的候选音节(获取前N个最好的候选词)
•Viterbi解码算法:得到最佳状态转移序列,并在每个节点记录下相应的状态路径信息以便最后反向获取音节或词的解码序列。
•N‐best搜索产生一个候选列表,在每个节点要保留N条最好的路径
•根据最佳状态序列对应的θ给出候选音节
多遍搜索
•为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源,产生一个词候选列表或词候选网格,在此基础上进行使用代价高的知识源的第二遍搜索得到最佳路径。
基本的声学模型
基本的语言模型
•这些可以用于第一遍搜索
•更高级的语音识别,往往要利用一些代价更高的知识源:
1.4阶或5阶的N‐Gram
2.4阶或5阶的上下文相关模型N‐phone
3.词间相关模型
4.语法分析
性能指标
•①词汇表范围:这是指机器能识别的单词或词组的范围。
•②说话人限制:是仅能识别指定发话者的语音,还是对任何发话人的语音都能识别。
•③训练要求:使用前要不要训练,即是否需要让机器先听一下给定的语音,以及训练次数的多少。
•④正确识别率:平均正确识别的百分数,它与前面三个指标有关。
Question1
•直接计算后验概率与找出解码状态序列的区别?
Question2
•在连续语音识别中,你认为可能会如何利用语言的词性信息?
•Viterbi 算法(Viterbi algorithm):自然语言处理中的词性标注。
•在词性标注中,句子中的单词是观察状态,词性(语法类别)是隐藏状态(注意对于许多单词,如wind,fish 拥有不止一个词性)
•对于每句话中的单词,通过搜索其最可能的隐藏状态,我们就可以在给定的上下文中找到每个单词最可能的词性标注。
Question3
•你觉得一个语音识别系统是否应用范围越广越好?
•交流•新闻播报•音乐。