语音识别及其定点DSP实现
发布时间:2008/5/27 0:00:00 访问次数:512
1 语音识别的基本过程 根据实际中的应用不同,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但无论那种语音识别系统,其基本原理和处理方法都大体类似。一个典型的语音识别系统的原理图如图1所示。
语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取。提取的特征参数必须满足以下的要求:
(1)提取的特征参数能有效地代表语音特征,具有很好的区分性; (2)各阶参数之间有良好的独立性;
(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。
在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。
2 系统的硬件结构
2.1 adsp2181的特点
ad公司的dsp处理芯片adsp2181是一种16b的定点dsp芯片,他内部存储空间大、运算功能强、接口能力强。有以下的主要特点: (1)采用哈佛结构,外接16.67mhz晶振,指令周期为30ns,指令速度为33mi/s,所有指令单周期执行;
(2)片内集成了80 kb的存储器:16 kb字的(24b)的程序存储器和16kb字(16b)的数据存储器;
(3)内部有3个独立的计算单元:算术逻辑单元(alu)、乘累加器(mac)和桶形移位器(shift),其中乘累加器支持多精度和自动无偏差舍人;
(4)一个16b的内部dma端口(1dma),供片内存储器的高速存取;一个8b自举dma(bdma)口,用于从自举程序存储器中装载数据和程序;
(5)6个外部中断,并且可以设置优先级或屏蔽等。
由于adsp2181以上的特点,使得该芯片构成的系统体积小、性能高、成本和功耗低,能较好地实现语音识别算法。
2.2 系统的硬件结构
在构成语音识别电路时,我们采用了adsp2181的主从结构设计方式,通过idma口由cpu装载程序。语音识别系统的硬件结构如图2所示。
在这种结构中,pc机为主cpu,adsp2181为从cpu,由pc机通过idma口将程序装载到adsp2181的内部存储器中。pc机总线通过cpld译码,形成ird,iwr,ial,is等控制信号,与adsp2181的idma口相连。这样,在adsp2181全速运行时,主机可以查询从机的运行状态,可以访问到adsp2181内部所有的程序存储器和数据存储器。这对程序的编译和调试,以及语音信号的实时处理带来了极大的方便。
3 语音识别的dsp实现技术
3.1 浮点运算的定点实现
在语音识别的算法中,有许多的浮点运算。用定点dsp来实现浮点运算是在编写语音识别程序中需要首先解决的问题。这个问题可以通过数的定标方法来实现。数的定标就是决定小数点在定点数中的位置。q表示法是一种常用的定标方法。其表示机制是:
设定点数是j,浮点数是)/,则q法表示的定点数与浮点数的转换关系为:
浮点数)/转换为定点数x:x= (int)y×2q;
定点数z转换为浮点数y:y =(float)x×2-q。
3.2 数据精度的处理
用16b的定点dsp实现语音识别算法时,虽然程序的运行速度提高了,但是数据精度比较低。这可能由于中间过程的累计误差而引起运算结果的不正确。为了提高数据的运算精度,在程序中采用了以下的处理方法:
(1)扩展精度
在精度要求比较高的地方,将计算的中间变量采用32b,甚至48b来表示。这样,在指令条数增加不多的情况下却使运算精度大大提高了。
(2)采用伪浮点法来表示浮点数
伪浮点法即用尾数+指数的方法来表示浮点数。这时
1 语音识别的基本过程 根据实际中的应用不同,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但无论那种语音识别系统,其基本原理和处理方法都大体类似。一个典型的语音识别系统的原理图如图1所示。
语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取。提取的特征参数必须满足以下的要求:
(1)提取的特征参数能有效地代表语音特征,具有很好的区分性; (2)各阶参数之间有良好的独立性;
(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。
在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。
2 系统的硬件结构
2.1 adsp2181的特点
ad公司的dsp处理芯片adsp2181是一种16b的定点dsp芯片,他内部存储空间大、运算功能强、接口能力强。有以下的主要特点: (1)采用哈佛结构,外接16.67mhz晶振,指令周期为30ns,指令速度为33mi/s,所有指令单周期执行;
(2)片内集成了80 kb的存储器:16 kb字的(24b)的程序存储器和16kb字(16b)的数据存储器;
(3)内部有3个独立的计算单元:算术逻辑单元(alu)、乘累加器(mac)和桶形移位器(shift),其中乘累加器支持多精度和自动无偏差舍人;
(4)一个16b的内部dma端口(1dma),供片内存储器的高速存取;一个8b自举dma(bdma)口,用于从自举程序存储器中装载数据和程序;
(5)6个外部中断,并且可以设置优先级或屏蔽等。
由于adsp2181以上的特点,使得该芯片构成的系统体积小、性能高、成本和功耗低,能较好地实现语音识别算法。
2.2 系统的硬件结构
在构成语音识别电路时,我们采用了adsp2181的主从结构设计方式,通过idma口由cpu装载程序。语音识别系统的硬件结构如图2所示。
在这种结构中,pc机为主cpu,adsp2181为从cpu,由pc机通过idma口将程序装载到adsp2181的内部存储器中。pc机总线通过cpld译码,形成ird,iwr,ial,is等控制信号,与adsp2181的idma口相连。这样,在adsp2181全速运行时,主机可以查询从机的运行状态,可以访问到adsp2181内部所有的程序存储器和数据存储器。这对程序的编译和调试,以及语音信号的实时处理带来了极大的方便。
3 语音识别的dsp实现技术
3.1 浮点运算的定点实现
在语音识别的算法中,有许多的浮点运算。用定点dsp来实现浮点运算是在编写语音识别程序中需要首先解决的问题。这个问题可以通过数的定标方法来实现。数的定标就是决定小数点在定点数中的位置。q表示法是一种常用的定标方法。其表示机制是:
设定点数是j,浮点数是)/,则q法表示的定点数与浮点数的转换关系为:
浮点数)/转换为定点数x:x= (int)y×2q;
定点数z转换为浮点数y:y =(float)x×2-q。
3.2 数据精度的处理
用16b的定点dsp实现语音识别算法时,虽然程序的运行速度提高了,但是数据精度比较低。这可能由于中间过程的累计误差而引起运算结果的不正确。为了提高数据的运算精度,在程序中采用了以下的处理方法:
(1)扩展精度
在精度要求比较高的地方,将计算的中间变量采用32b,甚至48b来表示。这样,在指令条数增加不多的情况下却使运算精度大大提高了。
(2)采用伪浮点法来表示浮点数
伪浮点法即用尾数+指数的方法来表示浮点数。这时
上一篇:DSP的软件UART实现
上一篇:OFDM实施中的几个问题