㈠ 谁知道语音识别这方面的知识!!!
高性能汉语数码语音识别算法
李虎生 刘加 刘润生
摘 要: 提出了一个高性能的汉语数码语音识别(MDSR)系统。 MDSR系统使用Mel频标倒谱系数(MFCC)作为主要的语音特征参数,同时提取共振峰轨迹和鼻音特征以区分一些易混语音对,并提出一个基于语音特征的实时端点检测算法,以减少系统资源需求,提高抗干扰能力。采用了两级识别框架来提高语音的区分能力,其中第一级识别用于确定识别候选结果,第二级识别用于区分易混语音对。由于采用了以上改进, MDSR系统识别率达到了98.8%.
关键词:汉语; 数码语音识别
分类号:TN 912.34 文献标识码:A
文章编号:1000-0054(2000)01-0032-03
High performance digit mandarin
speech recognition
LI Husheng LIU Jia LIU Runsheng
(Department of Electronic Engineering,Tsinghua University, Beijing 100084, China)
Abstract:High-performance mandarin digit speech recognition (MDSR) system is developed using MFCC (mel frequency cepstrum coefficient) as the main parameter identifying the speech patterns. The formant trajectory and the nasal feature are extracted to identify confused words. A feature-based, real-time endpoint detection algorithm is proposed to rece the system resource requirements and to improve the disturbance-proof ability. A two-stage recognition frame enhances discrimination by identifying candidate words in the first stage and confused word pairs in the second stage. These improvements result in a correct recognition rate of 98.8%.
Key words:mandarin;digit speech recognition▲
汉语数码语音识别 (mandarin digit speech recognition, MDSR) 是语音识别领域中一个具有广泛应用背景的分支,它的任务是识别“0”到“9”等10个非特定人汉语数码语音,在电话语音拨号、工业监控、家电遥控等领域有着极大的应用价值〔1〕。但与英语数码语音识别相比, MDSR的性能尚未达到成熟应用水平,这是因为 1) 汉语数码语音的混淆程度较高; 2) 汉语是一个多方言语种,说话人会带有或多或少的地方口音; 3) 在许多应用背景中,MDSR需要在运算和存储资源都较为紧张的数字信号处理器(digital signal processor, DSP)系统上实现,这为MDSR算法的设计带来了很大的限制。由于以上原因,MDSR是一项相当困难的任务。
针对汉语数码语音识别提出了一系列高性能的算法,使MDSR识别率达到了98.8%。由这些算法构成的识别系统框图如图1所示。
MDSR系统〔1〕提取的语音特征参数包括用于识别的参数和用于端点检测的参数。
图1 MDSR系统框图
1 语音前端处理
语音前端处理包括语音特征提取和端点检测两部分。
1.1 语音特征提取
1.1.1 基本识别参数
目前常用的语音识别参数有基于线性预测编码(LPC)的线性预测倒谱系数(LPCC)和基于Mel频标的倒谱系数(MFCC)〔2〕。实验证明,采用MFCC参数时系统识别率高于采用LPCC参数。因此本文的基本识别参数采用MFCC参数及一阶差分MFCC参数。
1.1.2 共振峰轨迹
在MDSR中,易混淆语音“2”和“8”可以由其第2,3共振峰的变化趋势区分开〔3〕。因此可将共振峰轨迹作为识别参数之一,并选用峰值选取算法来提取共振峰轨迹〔3〕。
1.1.3 鼻音特征参数
汉语数码语音中,“0”的元音具有鼻音的特征,而“0”容易与具有非鼻化元音的“6”混淆,因此鼻音特征可用于提高“0”的识别率。鼻音的特征包括〔4〕:
1) 鼻音在频谱低端(约0.25kHz左右)有1个较强的共振峰。
2) 鼻音在中频段(约0.8~2.3kHz)的能量分布较为均匀,没有明显的峰或谷。
采用以下2个参数表征鼻音的特征:
1) 低频能量比:
(1)
其中fn为鼻音低频共振峰频率, B为鼻音低频共振峰带宽。Fk为对语音作快速Fourior变换(FFT)后第k个频率点的能量, 〔f1,f2〕则为语音“6”能量集中的频带。
2) 频谱质心:
(2)
其中〔fL,fH〕为0.8~2.3kHz的中频段。由于MDSR系统采用的基本识别参数为MFCC参数,其计算过程中需要作FFT,所以低频能量比和频谱质心两个参数可以顺带算出,不会影响特征提取的实时完成。
1.2 端点检测
本文提出了基于语音特征的实时端点检测算法(feature-based real-time endpoint detection, FRED),充分利用汉语数码语音的特点,在实时提取特征参数后完成端点检测,检测到的端点只精确到帧的量级。
根据语音学知识〔4〕, MDSR中各类语音的频谱特点如表1
表1 汉语数码语音频谱特点
频 谱 特 征
浊 音 元 音 低频(0.1至0.4kHz间)能量较高; 中频(0.64至2.8kHz)能量较高
浊辅音 低频(0.1至0.4kHz间)能量较高; 中频(0.64至2.8kHz)能量较低
清辅音 高频(3.5kHz以上)能量较高
采用3个频谱能量分布参数{R1,R2,R3}分别反应频谱高频、低频和中频的分布特征。其定义如下:
(3)
(4)
其中: i表示第i帧, N为语音帧长,也即FFT点数, Fk为对语音帧作FFT后各频率点能量, T为语音的总帧数,式(3),(4) 中求和号的上下限由表1中相应频率范围确定,当N为256,采样频率为实验所用语音库的11kHz时, f0=81, f1=9, f2 =2, f3=65, f4=15.由于进行了能量归一化,所以上述特征与语音的强度是无关的。由于计算MFCC参数时需要作FFT,因此频谱能量分布参数可以顺带算出。此外,用于端点检测的参数还包括短时能量参数E0(i)〔5〕.
由以上参数, FRED算法过程为:
1) 根据采入信号首尾两帧确定能量阈值;
2) 根据参数R2确定语音浊音段;
3) 根据参数R1与E0向浊音段两端扩展式搜索语音起始帧;
4) 根据参数R3确定元音段。
FRED算法的特点是:
1) 利用了语音的本质特征进行端点检测,能够很好地适应环境的变化和干扰,实验证明FRED算法可以有效地提高识别率; 2) 将语音端点定在帧的量级上,保证了特征参数在采样时实时提取,节省了系统运行时间,大大减少了系统所需的存储量; 3) 能够准确地确定语音的元音段,从而将辅音与元音分割开,有利于对语音局部特征的辨识。
2 识别算法
实验表明, MDSR的识别错误集中在少数几对易混语音中〔1〕,因此本文采用了两极识别框架,即第一级完成对识别结果的初步确定,第二级完成对易混淆语音的进一步辨识。
2.1 第一级识别
在第一级识别中采用的基本方法为离散隐含Malkov模型(DHMM)算法〔5〕,用Viterbi算法〔5〕计算各个数码语音模型产生采入语音的概率Pr。
由于HMM是一个有人为假设的模型,所以有不可避免的缺陷。其中一个缺陷是在HMM中各状态的持续时间呈几何分布,即
P(Li=n)=anii(1-aii), (5)
其中: Li为状态i的持续时间, aii为状态i跳转回自身的概率。按照式(5),状态持续时间越长,其概率越小,这是不符合实际情况的。用Γ分布来描述状态持续时间〔5〕,即
(6)
其中αi和βi为Γ分布的参数, Fi为归一化因子参数,以上各参数在训练时由训练语音样本估计出。在识别时,用Viterbi算法获得的最佳状态路径中各状态持续时间的概率对Pr作修正:
(7)
其中: λ为加权系数, S为状态数。识别结果则由修正后的概率P�′r获得。实验证明,用状态持续时间分布对Pr进行修正所得的识别性能有明显的提高。
2.2 第二级识别
对第一级识别的错误作分析,我们发现大部分错误都集中在少数几对易混语音中。表2列出了识别错误最多的6对语音(其中“1”念为〔yao〕)占所有错误的百分比及其区分特征。可见这6对语音占所有错误的91%,所以如果能够在第二级识别中对这几对语音作进一步的辩识,整个MDSR系统的性能会有很大的提高。
表2 易混语音错误百分比及其区分特征
易混语音 占识别错误百分比/% 区分特征
“2”“8” 45 共振峰轨迹变化趋势
“1”“9” 12 不同的辅音
“1”“6” 11 不同的辅音
“0”“6” 11 鼻音特征的有无
“3”“4” 8 不同的元音
“6”“9” 4 辅音的清浊性
由表2可见,易混语音“2”“8”, “0”“6”, “6”“9”可以用表征其区分特征的参数,根据一定的规则进行判决,而“1”“9”, “1”“6”, “3”“4”则可以利用端点检测中元、辅音分割的结果,训练元音部分和辅音部分的HMM参数,在识别时针对相应部分再作一次局部HMM识别。表3列出了各对易混语音第二级识别的方法。
表3 第二级识别方法
易混语音 第二级识别方法 规则判决的特征参数或
局部HMM的辨识部位
“2”“8” 规则判决 共振峰轨迹
“1”“9” 局部HMM辨识 辅音
“1”“6” 局部HMM辨识 辅音
“0”“6” 规则判决 鼻音特征
“3”“4” 局部HMM辨识 元音
“6”“9” 规则判决 频谱分布参数R1
3 实验结果
实验使用了一个包含160人从“0”到“9”的各一遍发音的语音库来测试系统的性能,库中语音采样率为11kHz,量化精度为16bit线性量化,录音背景为普通办公室环境。
首先测试了特征参数采用LPCC参数,端点检测采用快速端点检测算法〔6〕,只用Viterbi算法进行一级识别时的基本结果,然后测试了逐个加入本文所提出的各种方法后的识别率,结果如表4。可见,所采用的每一种方法都使系统性能较之于基本系统有了显着的提高,最后达到98.8%的识别率。
表4 算法性能比较
采用的算法 识别率/%
基本结果 91.1
采用MFCC参数 92.9
FRED算法 95.4
状态持续时间分布 96.0
第二级识别 98.8
4 结 论
采用了一系列算法,有效地提高了MDSR系统的识别率,实现了一个高性能的MDSR系统,其特点为:
1) 采用了两极识别框架,增强了对易混语音的区分能力。
2) 充分利用针对汉语数码语音的语音学知识,提高了端点检测的抗干扰能力,提取了用于区分易混语音的共振峰轨迹、鼻音特征等声学特征,进一步提高了系统识别率。
3) 各算法所需的运算量和存储量都较小,有利于MDSR在DSP系统上的实现。■
基金项目:国家自然科学基金项目(69772020)和国家“八六三”高技术项目(863-512-9805-10)
作者简介:李虎生 (1975-), 男(汉), 四川, 硕士研究生
作者单位:李虎生(清华大学,电子工程系,北京,100084)
刘加(清华大学,电子工程系,北京,100084)
刘润生(清华大学,电子工程系,北京,100084)
参考文献:
〔1〕顾良, 刘润生. 汉语数码语音识别: 困难分析与方法比较 〔J〕. 电路与系统学报, 1997, 2 (4): 32-39.
Gu Liang, Liu Runsheng. Mandarin digit speech recognition: state of the art, difficult points analysis and methods comparison 〔J〕. J of Circuits and Systems, 1997, 2(4): 32-39. (in Chinese)
〔2〕Davis S B, Mermelstein P. Comparison of parametric representations for monosyllabic word recognition in continuously spoken sentences 〔J〕. IEEE Trans, on Speech and Audio Signal Processing, 1980, 28 (4): 357-366.
〔3〕李虎生, 杨明杰, 刘润生. 用共振峰轨迹提高汉语数码语音识别性能 〔J〕. 清华大学学报, 1999, 39(9).
Li Husheng, Yang Mingjie, Liu Runsheng. Use formant trajectory to improve the performance of mandarin digit speech recognition 〔J〕. J of Tsinghua University, 1999, 39(9): 69-71. (in Chinese)
〔4〕吴宗济, 林茂灿. 实验语音学教程 〔M〕. 北京: 高等教育出版社, 1989.
Wu Zongji, Lin Maocan. Tutorial on Experimental Phonetics 〔M〕. Beijing: Higher Ecation Press, 1989. (in Chinese)
〔5〕杨行峻, 迟惠生. 语音信号数字处理 〔M〕. 北京: 电子工业出版社, 1995.
Yang Xingjun, Chi Huisheng. Digit Speech Signal Processing 〔M〕. Beijing: Publishing House of Electronic Instry, 1995. (in Chinese)
〔6〕顾良. 汉语数码语音识别方法研究及DSP系统设计 〔D〕. 北京: 清华大学, 1997.
Gu Liang. Research on Methodologies for Mandarin Digit Speech Recognition and Design of its DSP System 〔D〕. Beijing: Tsinghua University, 1997. (in Chinese)
http://www.oxbad.com/DSP/maindoc/audio/PAGE/5.HTM
㈡ 声学模型的介绍
声学模型是语音识别系统中最为重要的部分之一,目前的主流系统多采用隐马尔科夫模型进行建模。 隐马尔可夫模型的概念是一个离散时域有限状态自动机,隐马尔可夫模型HMM是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值只与当前状态(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。HMM的打分、解码和训练相应的算法是前向算法、Viterbi算法和前向后向算法。
㈢ 分析HMM前向算法的原理和作用
前向算法
前向算法用于HMM的模型评估问题。假如我们已知HMM的三元组。假如共有N种状态,那么对于观测序列O,共有N的T次方种路径。
希望回答能够帮助到你。
㈣ 声学模型GMM-HMM
在语音识别中,HMM的每个状态都可对应多帧观察值,观察值概率的分布不是离散的,而是连续的,适合用GMM来进行建模。HMM模块负责建立状态之间的转移概率分布,而GMM模块则负责生成HMM的观察值概率。
模型自适应: 由于各地口音、采集设备、环境噪声等音素的差异,已训练过的GMM-HMM很可能和新领域的测试数据不匹配,导致识别效果变差,需要做自适应训练。
MAP(最大后验概率估计): 算法本质是重新训练一次,并且平衡原有模型参数和自适应数据的估计。
MLLR(最大似然线性回归): 算法核心思想是将原模型的参数进行线性变换后再进行识别,其优点是使用少量语音即可以对所有模型进行自适应训练,只要得到线性变换矩阵即可。
每个音素(或三音素)用一个 HMM 建模,每个 HMM 状态的发射概率对应一个 GMM。GMM-HMM 的目的即是找到每一帧属于哪个音素的哪个状态。GMM-HMM 的训练使用自我迭代式的 EM 算法,更直接的方式是采用维特比训练,即把EM算法应用到GMM参数的更新上,要求显示的输入每一帧对应的状态,使用带标注的训练数据更新GMM的参数,这种训练方法比Baum-Welch算法速度更快,模型性能却没有明显损失。
1、首次对齐时把训练样本按该句的状态个数平均分段。
2、每次模型参数的迭代都需要成对的使用gmm-acc-stats-ali和gmm-est工具。
3、进行多轮迭代训练后使用gmm-align-compiled工具通过其内部的维特比算法生成对齐结果。
单因子模型的基本假设是:一个音素的实际发音,与其左右相邻或相近的音素(上下文音素)无法。三因子结构中的每一个音素建模实例,都由其中心音素及其左右各一个上下文音素共同决定。无论是单因子还是三因子,通常都使用三状态的HMM结构来建模。为了解决三因子模型参数爆炸问题,将所有的三因子模型放到一起进行相似性聚类(决策树),发音相似的三因子被聚类到同一个模型,共享参数。训练脚本:steps/train_deltas.sh,目标训练一个10000状态的三因子系统:
1、以单因子为基础,训练一个5000状态的三因子模型
2、用5000状态的模型重新对训练数据进行对齐,其对齐质量必然比单因子系统对齐质量高
3、用新的对齐再去训练一个10000状态的三因子系统
phone-id:音素的 ID,参见 data/lang/phones.txt,强制对齐的结果不含 0(表示<eps>)和消歧符 ID;
hmm-state-id:单个 HMM 的状态 ID,从 0 开始的几个数,参见 data/lang/topo;
pdf-id:GMM 的 ID,从 0 开始,总数确定了 DNN 输出节点数,通常有数千个;
transition-index:标识单个 Senone HMM 中一个状态的不同转移,从 0 开始的几个数;
transition-id:上面四项的组合 (phone-id,hmm-state-id,pdf-id,transition-index),可以涵盖所有可能动作,表示哪个 phone 的哪个 state 的哪个 transition 以及这个 state 对应的 pdf 和这个 transition 的概率,其中元组 (phone-id,hmm-state-id,pdf-id) 单独拿出来,叫 transition-state,与 transition-id 都从1开始计数。
关系:transition-id可以映射到唯一的transition-state,而transition-state可以映射到唯一的pdf-id,因此transition-id可以映射到唯一的pdf-id。pdf-id不能唯一的映射成音素,因此kaldi使用transition-id表示对齐的结果。
语音识别过程是在解码空间中衡量和评估所有的路径,将打分最高的路径代表的识别结果作为最终的识别结果。传统的最大似然训练是使正确路径的分数尽可能高,而区分性训练则着眼于加大这些路径之间的打分差异,不仅要使正确路径的分数仅可能高,还要使错误路径尤其是易混淆路径的分数尽可能低。
常用的区分性训练准则有最大互信息、状态级最小贝叶斯风险、最小音素错误。
分子:对于某条训练数据,其正确标注文本在解码空间中对应的所有路径的集合。
分母:理论上值整个搜索空间。通常会通过一次解码将高分路径过滤出来,近似整个分母空间,从而有效的减小参与区分性优化的分母规模。
词格(Lattice):分子、分母其实都是解码过程中一部分解码路径的集合,将这些路径紧凑有效的保存下来的数据结构就是词格。