北交大DSP课程设计报告

  • 格式:docx
  • 大小:1.14 MB
  • 文档页数:24

DSP课程实验报告——语音识别学院:电子信息工程学院指导教师:周航老师学生:潘刚11214048王时檬11211115北京交通大学电工电子教学基地2014年7月21日目录DSP语音识别课程报告 (4)一、设计任务书 (4)1. 1实验目的 (4)1.2 技术指标及设计要求 (4)1.3 设计思路 (4)1.4要求完成的任务 (4)二、设计方案、算法原理说明 (5)2.1语音识别概述 (5)2.2硬件构成 (5)2.3语音识别算法软件实现 (6)三、设计与调试的体会 (10)3.1测试结果: (10)3.2实验感想 (14)四、参考文献 (15)附录:源程序 (15)DSP语音识别课程报告一、设计任务书语音识别(Speech Recognition)是指让机器听懂人说的话,即在各种情况下,准确的识别语音的内容,从而根据其信息,执行人的各种意图或执行特定的任务,其最终目标是实现人与机器进行自然语言通信。

利用DSP可以对语音信号进行实时采集、提取语音特征向量、进行语音识别。

语音识别系统对语音特征参量的提取可以采用FFT等算法,不同的参数表示不同的频谱包络。

本设计要求利用DSP的DMA方式进行信号采集和信号处理,对语音信号进行实时识别。

1. 1实验目的掌握利用DSP 进行语音信号采集的方法,利用DSP 对语音信号进行特征提取,从而实现语音信号的识别。

学会A/D、D/A 的工作原理和使用,学会A/D、D/A 转换器的编程方法。

以语音信号处理为依托,深入理解信号的抽样和重建的基本方法,提高学生系统地思考问题和解决实际问题的能力。

通过调用DSP CSL 库对McBSP 接口的编程,学会DSP 片上外设的使用方法。

1.2 技术指标及设计要求(1)对DMA进行初始化;(2)对A/D、D/A进行初始化;(3)编写DMA中断服务程序,实现语音信号的实时识别;(4)根据识别系统的类型选择一种识别方法,采用语音分析方法分析出这种识别方法所要求的语音特征参数,作为标准模式由机器存储起来,形成标准模式库。

(5)对语音进行特征参数的分析,语音信号经过相同的通道得到语音参数,生成测试模板;(6)将测试模板与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果,从而实现语音的识别。

1.3 设计思路首先利用DSP对语音信号进行分析,提取语音的特征参数,形成“模板”。

语音识别系统对特征参量的提取可采用FFT算法。

语音识别和说话人识别中的LPC倒谱和MEL倒谱,都与语音的频谱包络密切相关,不同的参数表示不同的频谱包络。

识别时,对其进行特征参数的分析,识别参数可以选择平均能量、过零数或平均过零数、频谱、倒谱、线性预测系数,音长,音调,声调等超音段信息函数。

最后将语音参数和模板进行比较,从而实现语音的识别。

1.4要求完成的任务(1)掌握CCS的安装、设置,工程的建立、打开以及编译运行和调试方法(2)编写C语言程序实现设计要求,并在CCS集成开发环境下调试通过,利用DSP进行语音的训练和识别,实现设计所要求的各项功能。

(3)按要求撰写课程设计报告。

二、设计方案、算法原理说明2.1语音识别概述语音识别系统的典型实现方案如图1所示。

输入的模拟语音信号首先要进行预处理,包括预滤波、采样和量化、加窗、断点检测、预加重等。

语音信号经过预处理后,接下来重要的一环就是特征参数提取,其目的是从语音波形中提取出随时间变化的语音特征序列。

然后建立声学模型,在识别的时候将输入的语音特征同声学模型进行比较,得到最佳的识别结果。

2.2硬件构成在本次实验中,我们用到的实验板是SEED-VC5502 DSK,它采用的语音处理模块是TI公司的TMS320VC5502,其主要特点包括:采用改进的哈佛结构,内部独立总线:12组:程序地址总线(PAB):1组,24位,程序数据总线(PB):1组,32位,数据读地址总线(BAB、CAB、DAB):3组,24位,数据读总线(BB、CB、DB):3组,16位,数据写地址总线(EAB、FAB):2组,24位,数据写总线(EB、FB):2组,16位。

BJTU-DSP5502实验板主要包括:DSP芯片1枚(U1):TMS320VC5502@300MHzSDRAM 1枚(U5):2M×32bit(8Mbytes) HY57V643220CTFLASH 1枚(U4):256K×16bit(512Kbytes) SST39VF400A-70CPLD 1枚(U2):CY37064VP100通信接口3个:仿真器JTAG接口(J1)、连接到PC机USB接口(J4)和UART接口(J2)信号采集和输出端口:立体音输入接口line-in(J5,直接接电脑的语音输出端口)/麦克风输入接口(J7)/耳机音频输出接口(J6)扩展板接口(J9,J10)2.3语音识别算法软件实现2.3.1 端点检测端点检测是语音识别系统中至关重要的一步,其算法的优劣在某种程度上也直接决定了整个语音识别系统的成败.作为一个完整的语音识别系统,其最终实现及使用的效果不仅仅取决于识别的算法,许多相关因素都直接影响着应用系统的成功与否。

端点检测的目的就是在复杂的应用环境下的信号流中分辨出语音信号和非语音信号,并确定语音信号的开始及结束。

好的端点检测方法能改变语音识别软件存在的检测效果不理想、识别率低等问题。

用短时能量短时过零率结合的方法,此方法实现简单,在噪声干扰不大的环境中可以取得较好的识别效果,但在实时性上还有提高的空间,采用动态窗长短时能量的方法可以在识别的实时性和识别率上有所提高。

为了减小语音帧的截断效应,需要加窗处理;)()()(n w n s n s w10),12cos(46.054.0)(-≤≤--=N n N nn w π本实验采用hamming 窗,因为矩形窗的主瓣宽度最小,旁瓣高度最高,会导致泄漏现象,哈明窗的主瓣最宽,旁瓣高度最低,可以有效的克服泄漏现象,具有更平滑的低通特性,应用更广泛。

(1) 短时能量定义为:语音信号强度的度量参数)(1020n S E N n w ∑-== 短时平均能量的主要用途:①可以从语音中区别出浊音来,因为浊音时短时平均能量的值要比清音时短时平均能量的值大很多;②可以用来区别声母和韵母的分界、无声和有声的分界等③最为一种超音段信息,用于语音识别中。

(2) 短时过零率:波形穿过横轴(零电平)的次数∑--=|})]1(sgn[)](sgn[|{210n s n s Z w w 短时过零可以看作信号频率的简单度量:⎩⎨⎧<-≥=0,10,1)sgn(x x x 浊音时能量集中于较低频率段内,具有较低的过零率,而清音时能量集中于较高频率段内,具有较高的过零率。

(3)短时平均幅度:短时能量对高电平非常敏感(因为计算时用的是信号的平方),为此可以用另一种度量语音信号幅度值的变化函数。

即“短时平均幅度M0”定义为:∑-==100)(N nw n S M 这里用计算加权了的信号的绝对值之和替代平方和,因而短时处理的方法比较简单,硬件更易实现。

因此本实验采用短时平均幅值和短时过零率相结合的双门限端点检测法双门限端点检测顾名思义需要两级检测,即短时平均幅值检测和短时平均过零率检测。

首先用短时平均幅值进行第一次判别,然后用短时平均过零率进行第二次判别。

开始检测之前,为计算整体平均幅值pn ,当3倍的短时平均幅值大于的整体平均幅值pn 或者第m+1帧的短时过零率大于5倍的第m 帧的短时过零率即Z[m+1]>5*Z[m]就进入语音段。

当4倍短时平均幅值小于的整体平均幅值pn 则认为进入结束。

两种可能会引起端点检测的误判,一是短时噪音引起的误判,此时则需要引入最小语音长度门限进行噪声判定,即语音段时间小于一定数值则认定为是噪声.二是语音中字与字的时间空隙引起的误判,此时需要设定最大静音长度门限来降低识别的错误率。

这种双门限端点检测是最常用的孤立词识别所采用的端点检测方法,其方法物理意义明确,计算量小,在安静的环境中有较好的识别率,但它也有很多不足,例如门限值需要由经验来设定,更换实验环境,则效果不理想等可以采用的改进方法:采用动态窗长短时能量检测语音端点。

检测时首先要对语音信号进行加窗分帧处理,如果窗的长度过大,在提高检测速度的同时导致识别率的下降,如果窗的长度过短,在提高检测识别率的同时增加了检测的时间.考虑此种情况,采用动态窗长短时能量端点检测方法,在静音段使用大窗长,进入过度段后,改用小窗长,进入语音段则使用正常窗长。

短时能量主要起到的作用有以下几个方面:首先利用短时能量可以区分清音和浊音,因为浊音的能量要比清音的能量大得多。

2.3.2特征参数的提取临界带特征矢量:临界带特征矢量是指:将一帧信号的功率谱按频率高低分成若干个临界带,对每个临界带中的功率谱求和,即可得到相应的临界带特征矢量。

把它作为每一个语音信号的特征矢量,最后对比不同语音信号的临界带特征矢量即可得到相似度。

每一帧信号都对应一个若干维的临界带特征矢量,因此,无论参考帧与待测帧都对应于不同的临界带特征矢量。

计算方法是:(1)第一步,求出每一帧的加窗语音Xn(m):m=0~(N-1),的DFT 的模平方值| Xn(k)|2此即为功率谱。

做DFT 变换,采样频率 为8kHz , | Xn(k)|2 与原始加窗语音信号的频谱模平方|Xn (exp( jwk))|2具有下列关系:| Xn(k)|2=|Xn (exp( jwk))|2(2)第二步,划分临界带。

确定若干个临界带分割点,确定的方法是将i=1,2,3⋯代入式:53.0196081.26-+=ff i i ,算出相应的i f 。

由此可以求出f 1 f 2……..并且,由f 1与f 2构成第一临界带,f 2与f 3构成第二临界带,以此类推。

在实验数据中需要安排了12个临界带。

(3)第三步,求临界带特征矢量。

将每一个临界带的功率谱 求和,即可得到相应的临界带特征矢量。

2.3.3特定人语音识别算法在孤立词语音识别中,最为简单有效的方法是采用DTW 动态时间规整算法,设参考模板特征矢量序列为A={a1,a2,…,aj),输入语音特征矢量序列为B={b1,b2,…,bk),j ≠k 。

DTW 算法就是要寻找一个最佳的时间规整函数,使得语音输入B 的时间轴k 映射到参考模板A 的时间轴j 上总的累计失真最小。

将己经存入模板库的各个词条称为参考模板,一个参考模板可以表示为{R(1),R(2),…,R(M)},m 为训练语音帧的时序标号,m=1为起点语音帧,m=M 为终点语音帧,因此M 为该模式包含的语音帧总数,R(m)为第m 帧语音的特征矢量。

所要识别的一个输入词条语音称为测试模板,可表示为{T(1),T(2),…,T(N)),n 为测试语音帧标号,模板中共包含N 帧音,T(n)为第n 帧音的特征矢量。