1 / 22
文档名称:

语音识别算法及其实现.doc

格式:doc   大小:26KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

语音识别算法及其实现.doc

上传人:wz_198614 2017/7/15 文件大小:26 KB

下载得到文件列表

语音识别算法及其实现.doc

相关文档

文档介绍

文档介绍:语音识别算法及其实现
一、概述
. 选题意义
. 实验目的
1、掌握特定人语音辨识技术。
2、可以应用于简单语音控制场合。
二、算法原理
. 语音识别的基本过程
根据实际中的应用不同,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但无论那种语音识别系统,其基本原理和处理方法都大体类似。一个典型的语音识别系统的原理图如图1所示。
语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取。提取的特征参数必须满足以下的要求:
(1)提取的特征参数能有效地代表语音特征,具有很好的区分性; (2)各阶参数之间有良好的独立性;
(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。
在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模
型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。
. 语音识别的DSP实现技术
. 浮点运算的定点实现
1
在语音识别的算法中,有许多的浮点运算。用定点DSP来实现浮点运算是在编写语音识别程序中需要首先解决的问题。这个问题可以通过数的定标方法来实现。数的定标就是决定小数点在定点数中的位置。Q表示法是一种常用的定标方法。其表示机制是:
设定点数是J,浮点数是f,则Q法表示的定点数与浮点数的转换关系为:
浮点数f转换为定点数x:x= (int)y×2Q;定点数z转换为浮点数y:y =(float)x×2-Q。
. 数据精度的处理
用16b的定点DSP实现语音识别算法时,虽然程序的运行速度提高了,但是数据精度比较低。这可能由于中间过程的累计误差而引起运算结果的不正确。为了提高数据的运算精度,在程序中采用了以下的处理方法:
(1)扩展精度在精度要求比较高的地方,将计算的中间变量采用32b,甚至48b来表示。这样,在指令条数增加不多的情况下却使运算精度大大提高了。
(2)采用伪浮点法来表示浮点数
伪浮点法即用尾数+指数的方法来表示浮点数。这时,,数据块的指数相同。这种表示数据的方法有足够大的数据范围,可以完全满足数据精度的要求,但是需要自己编写一套指数和尾数运算库,会额外增加程序的指令数和运算量,不利于实时实现。
以上两种方法,都可以提高运算精度,但在实际操作时,要根据系统的要求和算法的复杂度,来权衡考虑。
. 变量的维护
在高级语言中,有全局变量与局部变量存储的区别,但在DSP程序中,所有声明的变量在链接时都会分给数据空间。所以如果按照高级语言那样定义局部变量,就会浪费大量的DSP存储空间,这对数据空间较为紧张的定点DSP来说,显然是不合理的。为了节省存储空间,在编写DSP程序时,最好维护好一张变量表。每进入一个DSP子模块时,不要急于分配新的局部变量,应优先使用已分配但不用的变量。只有在不够时才分配新的局部变量。
. 采用模块化的程序设计方法
在语音识别算法的实现中,为了便于程序的设计和调试,采用了模块化的程序设计方法。以语音识别的基本过程为依据进行模块划分,每个模块再划分为若干个子模块,然后以模块为单元进行编程和调试。在编写程序之前,首先用高级语言对每个模块进行算法仿真,在此基础上再进行汇编程序的编写。在调试时,可以采用高级语言与汇编语言对比的调试方式,这样可以通过跟踪高级语言与汇编语言的中间状态,来验证汇编语言的正确性,并及时的发现和修改错误,缩短编程周期。另外,在程序的编写过程中,应在关键的部分加上必要的注释与说明,以增强程序的可读性。
在总调时,需要在各模块中设置好相应的人口参数与出口参数,维护好堆栈指针与中间变量等。
三、硬件设计及功能描述
2
.
外接电路组成部分
IOB1 IOB0 两个发光二极管 5V电压
此部分硬件用于显示语音控制的现象。1K电阻用于限流作用。
. 凌阳单片机简介
凌阳十六位单片机是台湾凌阳公司2001年推出的新一代单片机,具
有高速度、低价、可靠、实用、体积小、功耗低和简单易学等特点。其有多种型号,经过比较我们选择了其代表型号SPCE061A。因为该型号在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,芯片只内嵌32K字的闪存(FLASH)。较高的处理速度使其能够非常容