基于DSP的高速实时语音识别系统的设计
发布时间:2008/5/27 0:00:00 访问次数:515
实时语音识别系统中,由于语音的数据量大,运算复杂,对处理器性能提出了很高的要求,适于采用高速dsp实现。虽然dsp提供了高速和灵活的硬件设计,但是在实时处理系统中,还需结合dsp器件的结构及工作方式,针对语音处理的特点,对软件进行反复优化,以缩短识别时间,满足实时的需求。因此如何对dsp进行优化编程,解决算法的复杂性和硬件存储容量及速度之间的矛盾,成为实现系统性能的关键。本文基于tms320c6713设计并实现了高速实时语音识别系统,在固定文本的说话人辨识的应用中效果显著。
1 语音识别的原理
语音识别的基本原理框图如图1所示。语音信号中含有丰富的信息,从中提取对语音识别有用的信息的过程,就是特征提取,特征提取方法是整个语音识别系统的基础。语音识别的过程可以被看作足模式匹配的过程,模式匹配是指根据一定的准则,使未知模式与模型库中的某一模型获得最佳匹配。
1.1 mfcc
语音识别中对特征参数的要求是:
(1) 能够有效地代表语音特征;
(2) 各阶参数之间有良好的独立性;
(3) 特征参数要计算方便,保证识别的实时实现。
系统使用目前最为常用的mfcc(mel frequencycepstral coefficient,美尔频率倒谱系数)参数。
求取mfcc的主要步骤是:
(1) 给每一帧语音加窗做fft,取出幅度;
(2) 将幅度和滤波器组中每一个三角滤波器进行binning运算;
(3) 求log,换算成对数率;
(4) 从对数率的滤波器组幅度,使用dct变换求出mfcc系数。
本文中采用12阶的mfcc,同时加过零率和delta能量共14维的语音参数。
1.2 dtw
语音识别中的模式匹配和模型训练技术主要有dtw(dynamic time warping,动态时间弯折)、hmm(hidemarkov model,隐马尔科夫模型)和ann(artificial neu-ral network,人工神经元网络)。
dtw是一种简单有效的方法。该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。dtw算法的原理是计算两个长度不同的语音之间的相似程度,即失真距离。
设测试语音和参考语音用t和r表示,他们分别含有n帧和m帧的语音参数。本文中每帧语音的特征参数为14维,因此t,r分别为n×14和m×14的矩阵。把测试语音的各个帧号x=1~n在一个二维直角坐标系中的横轴上标出,把参考语音的各帧号y=1~m在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(x,y)表示测试模式中某一帧号与训练模式某一帧的交叉点,对应于两个14维向量的欧氏距离。dtw算法在于寻找一条通过此网格中若干交叉点的路径,使得该路径上节点的路径和最小。算法示意图如图3所示。
2 系统硬件环境
本系统的核心芯片为ti公司的32位浮点数字信号处理器tms320c6713。其时钟频率最高可达300 mhz,处理能力可以高达1 336 mips和1 000 mflops。由于256 kb的片上ram无法满足多路信号处理时的空间需求,系统通过emif(external memory interface,外部存储器接口)扩展了32 mb的外部sdram,并采用edma(external direct memory access,扩展的直接存储器访问)方式对这些外部空间进行访问。
tms320c6713有2个mcbsps(multi-channel buff-ered serial port,多通道缓冲串口),每个mcbsp,可与多达128个通道进行收发。本系统中采用mcbsp0实现数字语音信号到dsp的输入,dsp进行实时判别后输出结果。
3 软件实现
由于tms320c6x系列的c语言编译器的效率可达汇编语言的70%~80%,并且c语言具有开发周期短、可维护性好、可移植性好、可继承性好等优点,所以软件采用c语言实现。
3.1 软件流程
测试中采用10个参考模板,每个模板由相应的参考语音中2 s的语音数据训练而成。识别策略为每路积累2 s的接收语音数据后与逐个参考模板进行匹配,如果经由dtw运算所得的距离值小于特定的门限,就判决已匹配。如果不匹配,就继续接收匹配,超过8 s匹配不上,就放弃。软件流程框图如图5所示,其中语音数据的采样率为8 000 hz,每帧取256个采样点,即32 ms的数据为一帧。
程序调试通过后,采用ccs对其实时性进行分析。ccs(code composer studio,代
实时语音识别系统中,由于语音的数据量大,运算复杂,对处理器性能提出了很高的要求,适于采用高速dsp实现。虽然dsp提供了高速和灵活的硬件设计,但是在实时处理系统中,还需结合dsp器件的结构及工作方式,针对语音处理的特点,对软件进行反复优化,以缩短识别时间,满足实时的需求。因此如何对dsp进行优化编程,解决算法的复杂性和硬件存储容量及速度之间的矛盾,成为实现系统性能的关键。本文基于tms320c6713设计并实现了高速实时语音识别系统,在固定文本的说话人辨识的应用中效果显著。
1 语音识别的原理
语音识别的基本原理框图如图1所示。语音信号中含有丰富的信息,从中提取对语音识别有用的信息的过程,就是特征提取,特征提取方法是整个语音识别系统的基础。语音识别的过程可以被看作足模式匹配的过程,模式匹配是指根据一定的准则,使未知模式与模型库中的某一模型获得最佳匹配。
1.1 mfcc
语音识别中对特征参数的要求是:
(1) 能够有效地代表语音特征;
(2) 各阶参数之间有良好的独立性;
(3) 特征参数要计算方便,保证识别的实时实现。
系统使用目前最为常用的mfcc(mel frequencycepstral coefficient,美尔频率倒谱系数)参数。
求取mfcc的主要步骤是:
(1) 给每一帧语音加窗做fft,取出幅度;
(2) 将幅度和滤波器组中每一个三角滤波器进行binning运算;
(3) 求log,换算成对数率;
(4) 从对数率的滤波器组幅度,使用dct变换求出mfcc系数。
本文中采用12阶的mfcc,同时加过零率和delta能量共14维的语音参数。
1.2 dtw
语音识别中的模式匹配和模型训练技术主要有dtw(dynamic time warping,动态时间弯折)、hmm(hidemarkov model,隐马尔科夫模型)和ann(artificial neu-ral network,人工神经元网络)。
dtw是一种简单有效的方法。该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。dtw算法的原理是计算两个长度不同的语音之间的相似程度,即失真距离。
设测试语音和参考语音用t和r表示,他们分别含有n帧和m帧的语音参数。本文中每帧语音的特征参数为14维,因此t,r分别为n×14和m×14的矩阵。把测试语音的各个帧号x=1~n在一个二维直角坐标系中的横轴上标出,把参考语音的各帧号y=1~m在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(x,y)表示测试模式中某一帧号与训练模式某一帧的交叉点,对应于两个14维向量的欧氏距离。dtw算法在于寻找一条通过此网格中若干交叉点的路径,使得该路径上节点的路径和最小。算法示意图如图3所示。
2 系统硬件环境
本系统的核心芯片为ti公司的32位浮点数字信号处理器tms320c6713。其时钟频率最高可达300 mhz,处理能力可以高达1 336 mips和1 000 mflops。由于256 kb的片上ram无法满足多路信号处理时的空间需求,系统通过emif(external memory interface,外部存储器接口)扩展了32 mb的外部sdram,并采用edma(external direct memory access,扩展的直接存储器访问)方式对这些外部空间进行访问。
tms320c6713有2个mcbsps(multi-channel buff-ered serial port,多通道缓冲串口),每个mcbsp,可与多达128个通道进行收发。本系统中采用mcbsp0实现数字语音信号到dsp的输入,dsp进行实时判别后输出结果。
3 软件实现
由于tms320c6x系列的c语言编译器的效率可达汇编语言的70%~80%,并且c语言具有开发周期短、可维护性好、可移植性好、可继承性好等优点,所以软件采用c语言实现。
3.1 软件流程
测试中采用10个参考模板,每个模板由相应的参考语音中2 s的语音数据训练而成。识别策略为每路积累2 s的接收语音数据后与逐个参考模板进行匹配,如果经由dtw运算所得的距离值小于特定的门限,就判决已匹配。如果不匹配,就继续接收匹配,超过8 s匹配不上,就放弃。软件流程框图如图5所示,其中语音数据的采样率为8 000 hz,每帧取256个采样点,即32 ms的数据为一帧。
程序调试通过后,采用ccs对其实时性进行分析。ccs(code composer studio,代
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式