基于隐马尔可夫模型的语音识别(语音模型)
2022-11-16陈文云
陈文云
百色学院 广西 百色 533000
引言
语音识别是指将语音转换为计算机可读的语言符号的过程[1],是人工智能的重要分支,在自然语言处理(Natural Language Processing)技术中起关键作用[2]。语音识别技术涉及多门学科的交叉科学,其中包括数字信号处理、机器学习、计算机科学、声学、语言学、生理学和心理学等。语音识别应用非常广泛,如语音检索、命令控制、聊天机器人以及机器翻译等。
语音识别是一个极具挑战性的任务,主要是由于音素繁多,音节包含的音素多变,词或词组包含的音节个数也不固定,语调也变化多样,组合空间巨大;不同人的口音导致相同的词或词组参数分布差异;同一人由于心理或生理的不同状态会影响发音;发音方式和习惯产生连读会省略部分发音;信道会导致语音传输的失真等[3]。
语音识别的建模大致分为语音模型和语言模型。语音模型主要通过隐马尔可夫和神经网络两种方法对音素或音节建模,语言模型是通过对语音组成的词进行统计建模而得。
1 系统架构
如图1所示,语音识别系统由训练器和识别器两部分组成。训练器由语音和语法训练器组成,分别训练出语音和语言模型。语音训练器以语音声学特征参数和相应语音标注为输入,训练得到语音模型;语法训练器以正确语法句子为输入,训练得到语言模型。识别器由语音识别器和语法过滤器组成。语音识别器以语音声学特征和语音模型作为输入,生成初始的备选语言符号,这些语言符号再通过语言模型进行语法过滤,生成一组语法正确的句子。
模拟语音首先经过模数转换得到数字信号,在经过特征提取模块提取合适的声学特征参数,常用的语音声学特征参数为梅尔倒谱系数MFCC,该特征参数既可作为训练器的输入,也可作为识别器的输入。
2 HMM语音模型
一个句子由多个词或词组组成,词或词组由字组成,而字的发音是一个音节,由单个含有语调的韵母或一个声母与一个含语调的韵母构成,一个音节由若干音素组成。汉语有22个声母,38个韵母,构成音节的音素有辅音22个、单元音13个、复元音13个和复鼻尾音16个。
鉴于语音的短时平稳性,利用隐马尔可夫模型HMM建立音素间的转移模型是最佳选择,HMM通常运用动态规划DP算法实现可变长音节/音素的分段和分类,利用高斯多模统计模型对音节/音素的观测值(倒谱系数)进行学习。
2.1 单字语音模型
字的发音有长有短,一句话中字与字间的间隔不是固定的。为简化问题,先从单个字的语音模型开始。由上可知,每个音节字都由若干特征观测值MFCC序列表示:
根据贝叶斯据策论,单个字的识别问题可表示为:
根据贝叶斯定理可知,
为了通用性和避免下溢风险,通常使用最大对数似然概率代替总似然概率:
从而可以运用Viterbi动态规划算法进行快速求解。
为了让训练结果更稳定可靠,输出概率 通常使用高斯混合GMM模型训练:
2.2 单字HMM模型训练
单字语音HMM模型由于状态值缺失,适宜利用EM算法进行训练[4]。EM算法分为两步,其中E步可通过前向概率
根据极大似然估计,M步可求得状态 的输出正态分布的均值、方差:
2.3 连续字语音模型
连续语音模型可以将训练语音中每个单字HMM按顺序相连得到,形成复合HMM模型。复合HMM模型的训练同样采用EM算法,由于连续语音中每个字的边界是不确定的,不能单独训练其中每个HMM模型,而是采用并行方式,同时训练。
由于复合HMM的特殊性,计算前向概率和后向概率过程稍有不同。假设复合HMM由个HMM组成,用表示其中某一个HMM,则:
前向概率递推公式为:
再运用类似式3、式4和式5进行学习,而得每个HMM参数。
3 结束语
基于HMM语音识别技术具有自动寻找可变长音节的边界,在同类技术中识别准确率高的优点。但由于同音字、多音字、连读和方言等情况的影响,只依赖语音模型进行语音识别会带来额外错误识别率,需要引入语言模型来对基于语音模型的识别结果进行过滤和校正,从而找到语法正确、符合人们发音习惯的正确识别结果。