APP下载

基于Python的深度学习语音识别

2019-07-04刘忠武吴雨洽郭东旭

关键词:马尔可夫声学语音

孙 可, 刘忠武, 吴雨洽, 郭东旭

(沈阳师范大学 科信软件学院, 沈阳 110034)

语言的出现加快了人类发展的历程,更好的拉近了人与人之间的距离。随着计算机技术的发展,通过语音传递信息已经不能仅仅局限于人与人之间,而是更多的延伸到了人与机器。怎样才能使用语音完成人机交流,语音识别技术成为了完成这项任务的媒介。人通过语音向计算机发送指令,计算机则可以通过语音识别软件将语音转换为相应的计算机指令并做出响应,以达到人机交互的目的。当下,语音识别常用的方法主要包括:马尔可夫模型(HMM)方法、动态时间规整(DTW)方法、矢量量化(VQ)方法。本文研究一种融合语音识别与深度学习的语音识别方法,旨在提高语音识别效率。

通过语音实现人机交互,主要包括3项技术[1],自动语音识别(auto speech recognition,ASR)、自然语言理解(natural language understanding)和语音合成(speech synthesis)。自动语音识别即将语音转换为文本信息,是语音识别技术的关键。语音识别技术大多采用隐马尔可夫模型(Hidden Markov model, HMM)[2]。随着深度学习的不断发展,以人工神经网络(Artificial neural network,ANN)进行语音识别成为了主要研究方向。早期,在使用人工神经网络并利用反向传播算法(Back Propagation,BP)[3]进行训练下,语音识别技术得到了提高。此后,有研究人员将隐马尔可夫模型与高斯混合模型结合形成高斯混合模型-隐马尔可夫模型(GMM-HMM)运用于语音识别。在将深度学习应用于语音识别[4-6]后,其效果明显优于GMM。语音识别大致过程如图1所示。

图1 语音识别过程Fig.1 Speech recognition process

1 语音识别技术

1.1 语音识别的发展

最早的语音识别系统是由贝尔实验室研发的Audry[7]系统,该系统仅仅能够识别10个英文数字的发音并且局限于由一个人所说出孤立的英文数字。在此之后计算机技术的运用使得语音识别得到了快速的发展,动态时间规整和动态跟踪方法被提出。随着对自然语言理解[1]的深入研究,模式识别[8]、动态规划[9]、线性预测分析技术[10]相继被应用于语音识别。动态规划和线性预测分析技术,使得语音信号在产生模型方面得到了很好的解决。在这过程中,矢量量化(VQ)和隐马尔可夫模型(HMM)被相继提出。隐马尔可夫模型技术成功运用[2]后,使得大多数的语音识别系统都依赖于此模型。人工神经元网络(ANN)也在语音识别中得到了应用[12],从此语音识别在深度学习的运用下得到了快速发展。

1.2 隐马尔可夫模型

隐马尔可夫模型在语音识别方面得到了大量运用,但HMM在语音识别中存在着一定的局限性。此后,分别有研究人员将隐马尔可夫模型与高斯混合模型、深度置信网络、深层神经网络进行结合,形成GMM-HMM、DBN-HMM、DNN-HMM模型,提高了语音识别的性能。

隐马尔可夫模型(HMM)是一个统计模型,描述一个含有未知参数的马尔可夫过程。在该模型运用于语音识别并取得重大成功后,语音识别大多采用此模型。隐马尔可夫模型可以用5个元素进行描述,其中前2个为状态集合,1个为隐含状态,1个为可观测状态,后3个为概率矩阵:

λ={S,O,π,A.B}

(1)

该数学形式中的隐含状态为S,该状态通常无法直接通过观察得到。可观测状态为O,与马尔可夫模型中的隐含状态相关联,可以直接观察得到。π为一个初始状态概率矩阵,π={πi},πi=P{q1=S1},1≤i≤N。A表示隐含状态下各个状态间的转移概率,Aij=P(Sj|Si),1≤i,j≤N,表示在t时刻且状态为Si条件下,在t+1时刻状态为Sj的概率。B表示在观察状态的混淆矩阵,令N表示隐含状态数目,M表示可观测状态数目,则Bij=P(Oi|Sj),1≤i≤M,1≤j≤N。一般的,可以将一个隐马尔可夫模型简单表示为:

λ={π,A.B}

(2)

2 深度学习(DNN)模型

作为人工智能发展的一个重要分支,机器学习大概经历了2次发展热潮[13]:浅层学习和深度学习,浅层学习中含有多层感知层,但使用的时候大多数都是使用了含有一层隐层节点的模型。深度学习使用了多层隐层节点,随着深度学习的发展逐渐成熟,较浅层学习拥有着更多的优势,此后深度学习成为研究机器学习的热点问题。

在对人工神经网络(Artificial neural network,ANN)的研究中,深度学习的概念被提出。计算机是否也能模拟人脑中的神经元进行学习,人工神经网络就成为模拟动物神经网络特征的数学模型。2006年深度学习教父Hinton等人[14]提出深度置信网络(deep belief networks,DBN)。在深度学习运用于图片识别后并取得成功后,逐渐被研究人员运用于语音识别等领域。

3 Python进行语音识别

3.1 基于Python的语音识别方法

在使用python进行语音识别时,有些步骤可利用第3方库函数实现,这样可以使得开发者不用进行繁琐的操作就能取得较好的效果。主要过程有特征提取、神经网络模型的建立、识别。

1) 特征提取。本文采用MFCC作为语音的特征参数。首先需要获得实验所用的语音样本,采集20人朗读相同文字的语音作为语音样本,这些语音样本将分别作为语音识别的训练集和测试集。特征提取之前将语音进行预处理,预处理后的语音样本将用于特征提取并获得MFCC特征。传统的方法获得MFCC特征相对繁琐,在Python中使用第3方Librosa库函数可以相对容易的获取MFCC特征。该函数会将从语音输入中得到的MFCC特征以一维正负数数组的形式存储在磁盘中。此数组将作为第2步的输入。

2) 神经网络模型建立。由于第1步所得到的数组里面包含了负数,负值容易使得训练输出的结果有偏差,为了能够更好的训练,减少训练时的损失,这里将数组中的所有数进行一定处理并全部转换为正数。将得到的MFCC作为特征向量进行训练并得到训练文件。从训练后的文件中随机选择一部分作为测试集。训练好的数据用于神经网络的训练、创建数据集和标签集。使用keras(一个由Python开发的神经网络API)建立神经网络模型并对数据集进行神经网络训练。

3) 语音识别。在这之前已经获得了测试集的MFCC特征和神经网络模型,首先加载训练好的神经网络模型,再将测试集的MFCC特征输入加载好的模型中进行比对,最后将比对结果以数组的形式输出,数组中的最大值表示最相似的标签。

3.2 仿真与实验

1) 特征提取:提取帧长20 ms、帧移10 ms、特征维度为39维的MFCC特征。

2) GMM-HMM模型训练:使用高斯混合模型进行声学模型训练得到GMM-HMM声学模型。

3) DNN-HMM模型训练:使用深度神经网络进行训练得到DNN-HMM声学模型。

4) 深度神经网络参数设定:DNN-HMM网络模型由1个输入层、4个隐藏层、1个输出层组成。每个隐藏层256个节点,共1 024个节点,输出层有1 366个节点。输出层使用Softmax函数为其分类。

3.3 识别结果评估方法

语音识别的识别率大多采用词错误率(Word Error Rate,WER)和句错误率(Sentence Error Rate,SER)进行评估。本文采用词错误率进行评估:

(3)

其中Insertions为插入错误,表示插入了一个识别语音中没有的词,Substitutions为替换错误,表示识别语音中一个词被错误的词替代,Deletions为删除错误,表示识别语音中的词被丢失。T为识别语音中的总词数。图2为错误率统计示例。

图2 错误统计Fig.2 Error statistics

3.4 识别结果

图3 迭代次数与正确率Fig.3 Iterations and accuracy

在提取帧长20 ms、帧移10 ms、特征维度为39维的MFCC特征。DNN-HMM网络模型由1个输入层、4个隐藏层、1个输出层组成。每个隐藏层256个节点,共1 024个节点,输出层有1 366个节点的模型建立下通过测试得到的迭代次数与正确率如图3所示。

将实验结果按照WER方法进行计算,得到的GMM-HMM声学模型和DNN-HMM声学模型的错词率如表1所示。

表1 识别率测试结果Table 1 Identification rate test results

3.5 实验结果分析

根据表1的识别率测试结果可以得知,GMM-HMM方法和DNN-HMM方法在MFCC声学特征下,GMM-HMM的正确率为78.73,DNN-HMM的正确率为84.86。在深度学习下的语音识别能够达到较好的效果。

4 结 语

在HMM模型基础上进行了GMM-HMM和DNN-HMM的声学建模。在深度学习下,语音识别能够达到比高斯混合模型-隐马尔可夫模型更好的效果。深度学习在语音识别中的运用研究中,要有效的发挥其在语音识别中的作用,使得语音识别能够达到更好效果,优化现有的语音识别系统体系提高用户体验,让人机交互更加便捷。

猜你喜欢

马尔可夫声学语音
爱的就是这股Hi-Fi味 Davis Acoustics(戴维斯声学)Balthus 70
魔力语音
基于MATLAB的语音信号处理
基于马尔可夫链共享单车高校投放研究
基于马尔可夫链共享单车高校投放研究
基于MQ3与MP3的价廉物美的酒驾语音提醒器
Acoustical Treatment Primer:Diffusion谈谈声学处理中的“扩散”
Acoustical Treatment Primer:Absorption谈谈声学处理中的“吸声”(二)
对方正在输入……
Acoustical Treatment Primer:Absorption 谈谈声学处理中的“吸声”