基于单片机的语音识别系统研究Word文件下载.docx
《基于单片机的语音识别系统研究Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的语音识别系统研究Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
然后,以C805IF040单片机为核心,对系统的硬件电路做了详细设计。
之后,文章详细阐述了系统算法的具体实现过程。
另外,考虑到系统的定位,对算法中特征阶数的选择作出计算。
最后,对系统在不同的噪声环境和语言环境下进行了大量的实验。
结果表明,系统在相对安静的条件下,对特定人孤立词的识别率较高,满足设计要求。
同时,由于系统成本低,操作简单,在社会中将具有很好的应用前景。
关键词
语音识别;
线性预测倒谱;
动态规整技术;
单片机
Abstract
Withthecontinuousdevelopmentofcomputertechnology,itishopedtoachieveman-computerdialoguebyvoice.Asaresult,speechrecognitiontechnologycameintobeing.Speechrecognitionisakindoftechnologythatisusingcomputertotransferthevoicesignaltoacommandbyidentificationandunderstanding.Speaker-dependedisolatedwordspeechrecognitionisthemostwidelyusedspeechrecognitiontechnology.However,thecostofhardwaredevicesinthisregardistoohighatpresent,resultinginanunnecessarywasteof
resources.Giventhestatus,throughthestudyingofthecharactersofsingleword,aspeaker-DependedIsolated-wordspeechrecognitionsystemisdesignedwiththecombinationofMCUandotherhardwaredevice.Themainresearchandresultsaresummarizedasfollows:
Firstly,accordingtothemechanismofvoiceproduction,avarietyofspeechrecognitionalgorithmsareintroduced.Afterthepretreatmentonthespeechsignal,anewalgorithmbasedonzero-crossingrateandshort-termaveragerateispresentedwhichenhancedtheapplicabilityfordifferenttypesofwords.LPCC(LinearPredictiveCepstralCoding)isextractedfromthesignalasthespeechcharacteristicparameters,DTW(DynamicTimeWarping)algorithm,whichisimprovedtoreducetheamountofdatainthematchingprocessbyusingglobalconstraint,isusedforthematchingofthemodel.Theaveragetrainingmethodisusedtoenhancetherobustnessofthesysteminthecourseofthetrainingtemplatesfortherandomnessofspeechsignal.
Secondly,C805lF040micro-controllerselectedasthecore,circuitdesignofthesystemisshown.Then,thepaperdetailsthesoftwarecomponents,includingtheconcreterealizationoftheProcessofthealgorithm.Inaddition,takingintoaccountthecharacteristicsofthesystemitself,theparametersofthealgorithmarecalculated.
Finally,alotofdebuggingandtestarecarriedoutunderdifferentnoiseenvironmentandlanguageenvironment.Experimentresultsindicatethatthiscontrolsystemisstable,andcanachieveagoodrecognitionresultforspecialwordsinquietconditions.Atthesametime,duetothelowcost,simpleoperation,thesystemwillhaveagoodapplicationprospectsandwillbewidelyusedinfuture.
Keywords
SpeechRecognition;
LPCC;
DTW;
MCU
前言
语音不仅是人和人之间进行信息交流最直接最方便和最有效的工具,而且也是人和机器之间进行通信的一种重要手。
实现人机自然语音对话,对于方便人们生活,提高工作效率具有重要的意义。
而实现人机自然语音对话的核心技术就是语音信号处理。
语音信号处理,是以语音学和数字信号处理为基础发展形成的一个综合性的学科,它的研究方向主要有语音分析、语音增强、语音识别、语音合成等几个分支。
在过去的近半个世纪里,在语音信号处理方面的研究已经为社会生活带来了深远的影响和极大的便利。
作为语音信号处理的关键分支,语音识别技术己经走出实验室,在诸多领域有着广泛的应用,成为了智能计算机研究的主要分支和人机语音通信的主要途径之一。
由于语音识别本身所存在的巨大商业价值,世界各大公司纷纷在这方面投以巨资,让这项技术取得了长足的发展,并已经进入社会的各个领域之中。
在以后的生活中,语音识别会扮演越来越重要的角色,为人类社会的发展带来更大的便利。
目前,语音识别技术主要有两个发展方向,即大词汇量的语音识别系统和小型化、便携式的语音识别系统。
其中,大词汇量的语音识别系统算法复杂,实现难度大,主要用于听写机等设备;
小型的语音识别系统,尤其是基于特定人孤立词的语音识别系统,在很多行业中已经有了广泛的应用。
尽管小型语音识别系统正日臻完善,但是由于语音信号的随机性较大,而且对背景噪声极为敏感的特点,导致在通常情况下识别率很难达到100%,而一旦背景噪声增大,系统的识别率更会迅速降低。
基于以上原因,我们必须对语音识别做进一步的研究工作。
本文的研究目的就是要找出一套适合于特定人孤立词语音识别的系统方案。
第一章语音识别相关技术
1.1语音识别概述
1.1.1语音识别系统
语音识别系统本质上是一种模式识别系统,它的基本结构如图1-1所示,与一般模与一般模式识别系统一样包括有特征提取、模式匹配、参考模式库等三个基本单元,一般分两个步骤。
第一步是系统学习或训练阶段。
这一阶段的任务是建立识别基本单元的声学模型以及进行文法分析的语言模型,即构建参考模式库。
第二步是识别或测试阶段。
根据识别系统的类型选择能够满足要求的一种识别方法,采用语音信号处理方法分析出这种识别方法所需求的语音特征参数,按照一定的准则和测度与参考模式库中的模型进行比较,通过判决得出结果。
图1-1语音识别系统的结构框图
语音识别系统的设计要考虑到服务对象、词表大小、发音方式、任务性质等许多因素。
按不同的影响因素,语音识别系统可以做许多分类。
1.根据服务对象分为:
特定人和非特定人
这里所说的服务对象,是指所研制的识别系统是考虑提供给特定的人使用的,还是不确定的任意人使用的,即有特定人识别系统和非特定人识别系统之分。
2.根据词表大小分类:
大、中、小词汇量
每一个语音识别系统都有一个词汇表,系统只能识别词汇表中包含的词汇。
很明显,随着词汇数目的增加,识别器的难度一般会增加。
这是由于:
词汇越多,潜在的词间相似性会增加,分辨愈困难;
随着词条数增加,系统的搜索运算开销及存储开销就增加。
3.根据发音方式分为:
孤立词和连续语音
发音方式指的是采用孤立词发音方式还是连续语音发音方式。
一般的孤立词识别系统的结构比较简单,其原理框图如图1-1所示,词表中每个词对应有一个参考模式,它是由这个词重复发音多遍,再经特征提取和某种训练算法得到的。
孤立词的发音,词与词之间要有足够的时间间隙,以便能够检测到首末点。
对于连续语音发音方式通常采用连续语音识别系统,其系统结构更为复杂,碰到的困难也更多[1]。
1.1.2语音识别的步骤
语音信号首先经过预处理(含AD转换)变成满足要求的离散数字信号;
然后对其进行频谱分析,提取出语音信号的参数化表示(或称待识别未知模式),通常是由特征矢量构成的特征矩阵;
在识别过程中,再把此模式和数据库中的参考模式进行比较;
最后由识别决策来决定是否识别,并给出结果[2]。
预处理
预处理的内容很丰富,首先是A/D转换,其目的就是将麦克风录入的原始模拟语音信号采样量化成能够被程序控制和处理的数字信号。
特征提取
经过对语音信号的预处理之后就要进行特征参数的提取,特征提取是任何一个模式识别处理问题首先要解决的问题。
在语音信号的特征提取中对特征参数的要求是:
(1)能有效代表语音特征,具有良好的区分性;
(2)特征参数之间有良好的独立性;
(3)特征参数易于计算,最好能保证语音识别的实时实现。
线性预测系数是能够有效地表征语音的全极点模型参数。
在语音信号的频域特征参数中,目前使用最为广泛的是线性预测倒谱系数(LPCC)和美尔频率倒谱系数(MFCC),MFCC在非特定人识别方面性能优越于LPCC。
但求解MFCC系数需要快速傅立叶变换(FFT)、三角滤波、取对数和离散余弦变换(DCT)等过程,运算复杂,LPCC在特定人的语音识别方面也具有较好的效果,其运算量相对较小。
本系统设计采用LPCC系数,本文也将主要介绍线性预测倒谱系数(LPCC)[3]。
识别判决
语音识别过程就是根据模式匹配原则,按照一定的相似性度量法则,使未知模式与参考模式库中的某一个参考模型获得最佳匹配的过程。
1.2预处理及特征参数提取
1.2.1语音信号的预处理
由于自然界的语音都是模拟信号,若希望对语音信号做处理,必须将其转变成数字信号,再对数字信号进行整理分析,滤除不必要的信息。
这个过程就被称为语音信号的预处理,它包括数字化、预加重和加窗分帧三个部分。
数字化
语音信号的数字化是将语音模拟信号转变成为数字信号的过程,这个过程分为两个步骤:
采样和量化。
图1-2语音信号数字化过程
采样就是把信号在等间隔的时间上进行抽取,得到离散的序列,并将其转换成数字。
(1-1)
其中n为整数;
T为采样周期,
是原始模拟信号。
虽然语音信号的频率最大值可达1okHz,但是语音中对声音的清晰度有最重要影响的还是集中在300一3400Hz之间,而根据采样定理,只有当采样频率大于信号自身频率的2倍时,才不会导致信息的丢失,因此本文选择8kHz的采样频率。
在对语音信号进行数字化之前,由于信号中可能存在一些在信号频率之后的的背景噪声,因此为了防止噪声干扰,需要对信号进行带通滤波处理,滤除信号中的背景噪声,以保证信号的有效性。
预加重
当人发浊音时,声门振荡产生的是准周期性的脉冲串,而这样的脉冲形状和理想的占脉冲性比,会导致信号在高频部分产生一12db/oct的衰减作用。
由于辐射模型可以看做是一个一阶的差分方程,它会引起语音的高频部分产生6db/oct的提升作用,因此总的来说语音信号的高频有一6db/oct的衰减,即频率每增加一倍信号的功率就会减少1/4,因此,为了抵消这种影响,就要在预处理中对语音信号进行预加重。
预加重的可以提升语音的高频部分,使信号的频谱变得平坦,这样就能消除声道模型中的极点带来的影响预加重可以放在模数转换之后进行,用具有与6db/otc。
相当的预加重数字滤波器实现,一般来说,用一阶数字滤波器滤波器,即
来实现。
分帧加窗
在对语音信号进行分析的过程中,信号流的处理通常是以分帧的前提来实现的。
也就是以一定的长度对信号进行截取,这个长度就是帧长。
从时域上来分析,信号具有短时平稳的特性,也就是说在10到2Oms这么短的一段时间内,可以将信号看作是平稳的。
在本系统中,将帧长取为2Oms。
在对信号进行分帧时,常采用交叠分段的方法,这样可以使帧和帧之间的过度更加的平滑,可以保证数据的连续性。
在交叠分段中,前一帧和后一帧的交叠部分称为帧移,如图1-1所示。
帧移和帧长之比一般取O到0.5。
本文对音频信号进行8kHz的采样,以160个采样点为一帧,步长为80个采样点。
图1-3步长帧移示意图
根据傅里叶变换的原理,在计算信号的频谱之时,所观测信号的长度应是无限的,在现实中对语音信号采用分帧截断的方法对信号进行处理。
1.2.2线性预测系数LPC
1947年维纳首次提出了线性预测分析(LinearPrediction)方法,之后,线性预测就
应用于许多领域中。
1967年,板仓等人最先将线性预测技术应用到语音分析与合成中。
目前,线性预测作为一种工具,几乎普遍地应用于语音信号处理的各个方面,是最有效和最流行的语音分析技术之一,线性预测能用极少的参数,有效正确的表现出语音信号的波形及其频谱特性,而且参数计算简单、快速,己被成功用于语音识别、合成、编码、说话人识别等方面[4]。
线性预测基本原理:
线性分析的基本原理将被分析的信号用模型来表示,即将信号看作是某一个模型或系统的输出。
这样,就可以用模型参数来描述信号。
模型的系统函数可以写成有理分式的形式:
(1-2)
信号可以用有限数目的参数构成的模型来表示。
线性预测倒谱系数(LPCC)
在语音识别系统中很少直接使用LPC系数,而是由LPC系数推导出参数线性预测倒谱系数LPCC。
倒谱特征的实质就是将信号作适当的同态滤波,将信号中的卷积关系变为乘积关系,随之作对数处理使之化为可分离的相加成分,标准的倒谱系数计算流程需要进行FFT变换、对数操作和相位校正等步骤,运算比较复杂。
在实际计算中,当序列x(n)为最小相位的情况下,可利用序列x(n)及其复倒谱c(n)的递推关系来简化运算。
1.3基于DTW的语音识别
1.3.1DTW算法原理
模板匹配法是多维模式识别系统中最常用的一种相似度计算方法,是最早用于语音识别的方法。
这种方法采用某种非线性时间对准算法,解决了发音长短不一的问题。
常用的是基于最近邻原则的动态时间规整方法,简称DTW,是效果最好的一种非线性时间规整模板匹配算法,在孤立词语音识别中获得了成功的应用[5]。
DTW就是将发音在时间轴进行弯曲,以使两次发音能够更好的匹配。
假设己存入的参考模板为:
R(1,2,...,M),测试模板为:
T(1,2,...,N),其相似度用距离D=[T,R]来表示,假设n和m分别是T和R中任意选择的帧号,D=T(n),R(m)]表示两帧之间的距离。
在DTW算法中通常采用欧式距离,距离越小相似度越高。
若N=M则可以直接计算,否则要考虑将T(n),R(m)对齐,对齐采用线性扩张的方法,如果N<
M可以将T线性映射为一个M帧的序列,再计算它与R{R(l),R
(2),,,R(M)}之间的距离,但这样的计算没有考虑语音中各个段在不同情况下的持续时间会产生的变化,因此识别效果不好,更多情况下是采用动态规划(DP)的方法。
DP算法就是要寻找一个最佳的时间规整函数,使被测语音模板的时间轴M非线性地映射到参考模板的时间轴N,使总的累积失真量最小。
1.3.2DTW算法的改进
传统的DTW算法的缺点是模板匹配的运算量太大,当两个模板的长度较大时,训练和识别算法的运算量就相当大。
实际上,在匹配的路径中限定了规整路径的斜率,因此许多网格点是达不到,所以平行四边形外的网格点是不需要计算的,另外也没必要保存所有帧的匹配距离矩阵和累积距离矩阵[6]。
改进型DTW算法大大提高了运算效率,它把实际路径分为三段:
(1-3)
其中
=1/3(2M-N),
=2/3(2N一M),
和
都取最相近的整数。
如图1-4所示由此也得出了对M和N长度的限制条件2M-N≥3,2N-M≥2,当限制条件不满足时,即说明语音和模板的长度相差太大,匹配意义不大,不进行动态规划匹配,在x坐标轴上的每一帧与Y坐标轴上
间的帧做比较,
的计算公式如下:
(1-4)
图1-4匹配路径约束示意图
1.3.3匹配模板的训练方法
偶然训练法
当待识别词表不太大且系统为特定人设计时,可以采用一种简单的多模板训练方法。
即每个词的每一遍读音形成一个模板,在识别时,待识别矢量序列用DTW算法分别求得与每个模扳的累计失真,然后判别它属于哪一个。
但由于语音的偶然性很大,且训练时读音可能存在错误,比如不正确的音联。
错误发音亦得不到纠正,故这种方法形成的模板鲁棒性不好,这也是这种方法被称为偶然训练法的原因。
鲁棒性训练法团
鲁棒性训练是一种串行训练法。
将每一词重复说多遍直到得到一对一致性较好的特征矢量序列。
最终得到的模板是在一致性较好的特征矢量序列对在沿DTW的路径上求平均。
其训练过程可描述如下:
假定只考虑某个特定的词。
令X1={X11,X12,...,X1r,}为第一遍的特征矢量序列,X2={X21,X22,...,X2r,}为另一遍的特征矢量序列,通过DTW算法计算这两个模板的失真d(xl,x2),如果d(xl,x2)小于某个门限,便认为这两遍特征矢量序列一致性较好,便可求xl和
的时间弯折平均而得到一个新模板
。
具体求法如下:
令T为DTW算法的最优路径长度,最终得到最优路径序列。
(1-5)
新模板Y可通过下式求得:
(1-6)
非特定人识别任务的模板训练算法一聚类[7]
对于非特定人语音识别,要想获得较高的识别率,就须对多组训练数据进行聚类,以获得可靠的案板参数。
最初的孤立词识别采用人工干预的聚类方法,这些方法尽管有效,但由于人工干预的繁琐工作,阻碍其广泛应用。
为了解决这个问题,人们提出过一系列的聚类算法。
这些聚类算法与常规的模式聚类方法的主要不同点是:
语音识别模板的聚类,针对的是有时序关系的特征序列,而不是维数固定的模式,训练方法复杂,主要用于非特定人的语音识别。
第二章系统软件设计
2.1主程序流程
语音识别系统在整个程序的设计中,系统进入主程序之后主程序采用调用子程序的方式来完成对语音模板的训练以及识别等任务。
图2-1语音识别主程序流程
图2-1为系统的主程序流程。
系统运行之后,有按键按下之时,判断为何种命令,如果是模板训练命令则进行模板训练的算法操作,语音识别命令则执行语音识别子程序。
2.2模板的训练与识别程序
模板的训练程序主要完成从开始采集语音信号到最终生成语音参考模板的全过程,而识别子程序则完成采集待识别语音信号到最终通过模式匹配得出识别结果。
在模板的训练中,对每个词进行三次录音,将信号进行处理之后,根据DTW匹配计算这三个词之间的相互距离,并找到距离最短的两段信号,采用平均模板的算法将这两段信号进行平均,得到新的矢量作为最终模板。
模板训练的流程如图3-2所示。
图2-2模板训练流程
图2-3为进行语音识别时的流程图,其大致过程与模板训练的过程相似
图2-3识别子程序流程
从图2-2和2-3可以看出,在进行模板训练和语音识别的时候,需要反复调用很多子程序,这其中包括预处理、端点检测、特征参数的提取等。
这些算法的原理和方法在第一章中已经有了详细的介绍,在下面几节中将距离给出这些算法的流程图。
2.3端点检测子程序
本系统对于语音信号采用8kHz的频率进行采样,之后对语音信号进行预加重和加窗处理。
本文采用的是一阶高通数字滤波器1-
z-1,实现预加重,采用汉明窗对数字信号进行加窗,其中0.9
1.0,取u=0.94。
预加重流程如图2-4,其中N为采样点数。
图2一4预加重流程
通过预加重处理之后的信号通过矩形窗进行加窗分帧。
本系统语音信号处理的帧长度取20ms,因此,每帧有160个采样点,帧移和帧长之比选为0.5,因帧移选择为80。
2.4特征提取子程序
本系统在对语音信号进行特征提取时,采用LPCC作为特征矢量。
LPC阶数的选取决定了语音识别过程中的计算量,也决定了语音模型的阶数,对语音识别系统的性能有着重要影响。
当阶数选择在8到32之间的时候,LPC一般可以较好地表征声学特性[10]。
而且随着LPC的阶数的增加,语音识别率并不是一直升高,这是由于阶数增加的时候,预测系数受语音信号中的随机信息的影响也越来越大,以及有限字长等一系列效应,都会导致系统识别率的降低[11]而且随着阶数的增加,由1.2节的算法原理可知,系统的计算量也会随着特征模型阶数的增加以几何倍数而增加,这样也并不利于系统在单片机上的实现。
因此,必须合理的选择阶数才能让系统的性能达到最高。
本系统所采用8kHz的频率语音信号进行采样,而8kHz的采样信号通常有4个共振峰[12],因此取p=8。
此外为了弥补鼻音中存在的零点以及其他因素引起的偏差,通常