DSP课程设计报告语音识别Word文档格式.docx
《DSP课程设计报告语音识别Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP课程设计报告语音识别Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
六、参考文献………………………………………………………………26
一、设计任务书
语音识别(SpeechRecognition是指让机器听懂人说的话,即在各种情况下,准确的识别语音的内容,从而根据其信息,执行人的各种意图或执行特定的任务,其最终目标是实现人与机器进行自然语言通信。
利用DSP可以对语音信号进行实时采集、提取语音特征向量、进行语音识别。
语音识别系统对语音特征参量的提取可以采用FFT等算法,不同的参数表示不同的频谱包络。
本设计要求利用DSP的DMA方式进行信号采集和信号处理,对语音信号进行实时识别。
语音识别按不同的角度有以下几种分类方法:
1.识别的单位分类:
有孤立词识别、音素识别、音节识别、孤立句识别、连续语音识别和理解。
2.识别的词汇量分类:
有小词汇(10-50个、中词汇(50-200个、大词汇(200以上等。
3.讲话人的范围分类:
有单个特定讲话人、多讲话人和与讲话者无关。
4.识别的方法分类:
有模块匹配法、随机模型法和概率语法分析法。
本实验的主要任务就是通过TMS30VC5402对语音信号“0”、“1”、“2”进行训练和识别,并由相应的灯LED0、LED1、LED2亮来显示结果是否正确;
该系统核心识别算法采用动态时间规整(DTW算法,主要流程包括预处理、端点检测、提取特征值、模式匹配和模板训练。
二、设计内容
(1对A/D、D/A进行初始化;
(2根据识别系统的类型选择一种识别方法,采用语音分析方法分析出这种识别方法所要求的语音特征参数,作为标准模式由机器存储起来,形成标准模式库。
(3对语音进行特征参数的分析,语音信号经过相同的通道得到语音参数,生成测试模板;
(4将测试模板与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果,从而实现语音的识别。
三、设计方案、算法原理说明
1系统概述
语音识别基本原理如图1所示。
模拟语音信号经过数字化处理(即采样和量化过程之后,再经去噪和预加重环节得到较干净的数字语音信号。
信号起止点检测的主要作用是从各类背景噪声中找出语音的开始和终止点。
这一环节对于后续特征参数的提取非常重要。
在孤立词语音识别中,确定语音起止点可有效减少系统计算量。
另外,在相对较安静的环境下,依靠短时能量与过零率这两个特征就可以很好地完成语音信号的起止点判决。
整个语音识别系统可分为两个阶段,即训练阶段和识别阶段。
在训练阶段,由用户说出若干训练字,系统根据一定算法建立上述训练语句的特征参考模板;
在识别阶段,则从使用者的发音资料中先导出相关特征参量,再将这些参量与事先训练好的特征参考模板进行相似度计算(即模式匹配。
若两者的相似度大于设定的门限值,则予以确认,反之系统则会拒识。
(实际中,采用相似度最大者作为匹配结果输出
2.硬件构成
(1.系统构成
这里采用DSP芯片为核心(图2,系统包括直接双访问快速SRAM、一路ADC/一路DAC及相应的模拟信号放大器和抗混叠滤波器。
外部只需扩展FLASH存储器、电源模块等少量电路即可构成完整系统应用。
(2.系统主要功能模块构成
语音处理模块采用TITMS320VC5402,其主要特点包括:
采用改进的哈佛结构,一条程序总线(PB,三条数据总线(CB,DB,EB和四条地址总线(PAB,CAB,DAB,EAB,带有专用硬件逻辑CPU(40位算术逻辑单元(ALU,包括1个40位桶形移位器和二个40位累加器;
一个17×
17乘法器和一个40位专用加法器,允许16位带或不带符号的乘法,片内存储器(八个辅助寄存器及一个软件栈,片内外专用的指令集,允许使用业界最先进的定点DSPC语言编译器。
TMS320VC5402含4KB的片内ROM和16KB的双存取RAM,一个HPI(HostPortInterface接口,二个多通道缓冲单口MCBSP(Multi-ChannelBufferedSerialPort,单周期指令执行时间10ns,带有符合IEEE1149.1标准的JTAG边界扫描仿真逻辑。
语音输入、输出的模拟前端采用TI公司的TLC320ADSOC,它是一款集成ADC和DAC于一体的模拟接口电路,并且与DSP接口简单,性能高、功耗低,已成为当前语音处理的主流产品。
16位数据结构,音频采样频率为2~22.05kHz,内含抗混叠滤波器和重构滤波器的模拟接口芯片,还有一个能与许多DSP芯片相连的同步串行通信接口。
TLC320AD50C片内还包括一个定时器(调整采样率和帧同步延时和控制器(调整编程放大增益、锁相环PLL、主从模式。
TLC320AD50C与TMS320VC5402的硬件连接,如图3所示。
3.语音识别算法软件实现
(1系统流程图
(2端点检测
端点检测的目的就是在复杂的应用环境下的信号流中分辨出语音信号和非语音信号,并确定语音信号的开始及结束。
好的端点检测方法能改变语音识别软件存在的检测效果不理想、识别率低等问题。
用短时能量短时过零率结合的方法,此方法实现简单,在噪声干扰不大的环境中可以取得较好的识别效果.
为了减小语音帧的截断效应,需要加窗处理,采用hamming窗,
10,1
2cos(46.054.0(-≤≤--=NnNnnwπ因为矩形窗的主瓣宽度最小,旁瓣高度最高,会导致泄漏现象,哈明窗的主瓣最宽,旁瓣高度最低,可以有效的克服泄漏现象,具有更平滑的低通特性,应用更广泛。
短时能量定义为:
语音信号强度的度量参数
(1
02
0nSENnw∑-==短时平均能量的主要用途:
①可以从语音中区别出浊音来,因为浊音时短时平均能量的值要比清音时短时平均能量的值大很多;
②可以用来区别声母和韵母的分界、无声和有声的分界等
③作为一种超音段信息,用于语音识别中。
短时过零率:
波形穿过横轴的次数
∑--=|}]1(sgn[](sgn[|{2
10nsnsZww⎩⎨⎧<
-≥=0,10,1sgn(xxx
短时过零可以看作信号频率的简单度量:
浊音时能量集中于较低频率段内,具有较低的过零率,而清音时能量集中于较高频率段内,具有较高的过零率。
短时平均幅度:
∑-==1
00(Nn
wnSM这里用计算加权了的信号的绝对值之和替代平方和,因而短时处理的方法比较简单,
硬件更易实现。
因此本实验采用短时平均幅值和短时过零率相结合的双门限端点检测法双门限端点检测顾名思义需要两级检测,即短时平均幅值检测和短时平均过零率检
测.首先用短时平均幅值进行第一次判别,然后用短时平均过零率进行第二次判别.开始检测之前,为计算整体平均幅值,当短时平均幅值大于的整体平均幅值或者第m+1帧
的短时过零率大于3倍的第m帧的短时过零率,即找到了语音的开头.当短时平均幅值小于的整体平均幅值,就找到了语音的结尾。
两种可能会引起端点检测的误判,一是短时噪音引起的误判,此时则需要引入最小语音长度门限进行噪声判定,即语音段时间小于一定数值则认定为是噪声.二是语音中字与字的时间空隙引起的误判,此时需要设定最大静音长度门限来降低识别的错误率。
这种双门限端点检测是最常用的孤立词识别所采用的端点检测方法,其方法物理意义明确,计算量小,在安静的环境中有较好的识别率,但它也有很多不足,例如门限值需要由经验来设定,更换实验环境,则效果不理想等
可以采用的改进方法:
采用动态窗长短时能量检测语音端点。
检测时首先要对语音信号进行加窗分帧处理,如果窗的长度过大,在提高检测速度的同时导致识别率的下降,如果窗的长度过短,在提高检测识别率的同时增加了检测的时间.考虑此种情况,采用动态窗长短时能量端点检测方法,在静音段使用大窗长,进入过度段后,改用小窗长,进入语音段则使用正常窗长.
(3特征量提取
矢量量化的过程是:
将语音信号波形的K个样点的每一帧,或有K个参数的每一参数帧,构成k维空间中的一个矢量,然后将这个矢量进行量化
临界带特征矢量是指:
将一帧信号的功率谱按频率高低分成若干个临界带,每一个临界中的功率谱求和,即可得到相应的临界带特征矢量。
每一帧信号都对应一个若干维的临界带特征矢量
临界带特征矢量算法的过程
第一步,求出每一帧的加窗语音Xn(m:
m=0~(N-1,的DFT的模平方值|Xn(k|2此即为功率谱。
做256点的DFT变换,采样频率为8kHz,窗长为38ms(即N=256,窗形为汉明窗。
|Xn(k|2与原始加窗语音信号的频谱模平方|Xn(exp(jwk|2具有下列关系:
|Xn(k|2=|Xn(exp(jwk|20~256
其中,wk=2πfk,fk=
第二步,划分临界带。
在o~fs/2中确定若干个临界带频率分割点。
确定的方法是将i=1,2,3⋯代人下面的式子中,即可求出相应的(以Hz为单位。
由此可以求出并且,由构成第一临界带,构成第二临界带,以此类推。
在实验数据中需要安排了16个临界带。
第三步,求临界带特征矢量。
将每一个临界带中的功率谱|Xn(k|2取和,即可得到相应的临界带特征矢量。
如果用表示临界带特征矢量,则每一个
分量可通过以下的式子求得。
从而,每帧都可以得到一个16维的临界带特征矢量:
(4特定人语音识别算法(两个特征量的比较
目前较为常用的语音识别算法有DTW算法(动态时间归整法、HMM算法(隐马尔可夫模型法和ANN算法(人工神经网络法等。
考虑到DSP存储资源的有限性与系统运行实时性等要求,本文设计采用了计算量相对较小,内存空间占用少,算法简单、高效的DTW算法。
该算法基于动态规划(DynamicProgramming,DP的思想,很好地解决了发音长短不一的模板匹配问题,在小词汇量的语音识别中获得了较优的识别效果。
动态时间归整算法基本原理如下:
以T和R分别表示测试和参考模板,为计算两者之间的相似度,可以计算它们之间的距离D[T,R]。
距离越小,相似度越高。
设n和m分别是T和R中任意选择的帧号,d[(n,(m]表示这两帧之间的距离。
距离函数取决于实际采用的距离度量,在DTW算法中通常采用欧氏距离。
欧氏距离(Euclideandistance也称欧几里得度量,是一个通常采用的距离定义,它是在m维空间中两个点之间
的真实距离。
在二维和三维空间中的欧氏距离的就是两点之间的距离。
二维计算公
式ρ=√((x1-x22+(y1-y22。
若n=m,则可以直接进行计算,否则要考虑将T(n和R(m对齐。
对齐可以采用线性扩张的方法,但这样会忽略掉语音中各个段在不同情况下的持续时间,将会出现或长或短的变化情况,使识别效果难以达到最佳。
因此,更多时候采用的是动态规划(DP的方法。
以n为横轴、m为纵轴构建一个二维网格,网格中的每一个交叉点
(n,m表示测试模板中的某一帧与训练模板中的某一帧的交汇点。
动态规划算法就是确定一条路径,路径通过的格点坐标即为进行距离计算的帧号。
路径不是随意选择的,首先任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束,如图所示
DTW算法路径原理示意图
为了使路径不至于过分倾斜,将各段线段的斜率限制在0.5~2。
如果路径已通过图中格点(ni-1,mi-1,,则下一个通过的格点(ni,mi只可能是下列三种情况之一:
用η表示上述三个约束条件,求最佳路径的问题可以归结为:
满足约束条件η时,求最
佳路径函数,使沿该路径的积累距离达到最小值,即
编程时,可以在数据区开辟出两个nXm的矩阵,即积累矩阵D和帧匹配距离矩阵d,
其中帧匹配距离矩阵d(i,j的值为测试模板的第i帧与参考模板的第j帧的距离,而D(n,m则为最佳匹配路径所对应的匹配距离,DTW算法可以直接按上面的描述来实现。
通过将测试模板和模板库中各个参考模板分别进行DTW运算,就可以找到与测试模板匹配距离“最小”的参考模板。
当这一匹配距离值小于所设的门限值时,就可识别
出所输入的语音信号。
四、程序设计、调试与结果分析(1程序清单:
(见工程文件中,vr.c
(2测试数据:
输入语音为“0”
输入语音为“1”
输入语音“2”
测试结果及分析:
识别“0”
识别“1”
识别“2”
通过多做数据的采集及结果分析:
据实际测试数据可得系统识别率较低,不是很理想,分析原因可能有以下几点:
1、程序中端点检测的门限是由经验所得,不能完整获得语音的起点和终点,同时,不确定的外界噪音干扰也会影响端点的检测。
2、特征提取算法不够完善及提取特征比较单一,只是语音信息提取不够完整,致使语音的比较产生较大误差。
3、模板的录入也是经过此算法,因此,录入模板过程和测试过程,外界环境和说话者发音不可能一样,这也会造成最后结果产生偏差。
五、设计(安装与调试的体会
吴凡:
在实验的过程中,我在网上查找了很多资料,并在图书馆查阅了很多语音识别相关的书籍,通过和同学以及学长的讨论,我理解了语音识别的基本过程,以及相关过程的算法。
在网上找到了不少例子,进行了阅读、分析,并结合我们的硬件设备和所学的知识,决定选择相对简单的平均幅值和过零率检测法、临界带特征向量提取法、DTW(动态时间规划特征匹配算法。
对语音识别的流程和技术有所了解后,就上机调试,将理论运用在实践中,又在调试中加强对理论的理解。
实验中,与同学互相讨论,互相补充,互相教正,密切配合,共同进步,这样实验的进展才能顺利,才有可能达到理想的效果。
六、参考文献
1.DSP技术及其应用高海林钱满义编著
2.离散时间语音信号处理——原理与应用ThomasF.Quatieri著
3.语音识别与控制应用技术刘幺和宋庭新编著
4.语音信号处理韩纪庆张磊郑铁然编著
5.现代语音技术——基础与应用蔡莲红黄德智蔡锐编著
6.小词汇量孤立词语音识别系统的DSP实现
7.基于TMS320C54X_DSP的语音识别系统算法研究
8.基于DSP的语音识别智能控制系统
课程设计成绩评定