Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
基于DSP的高速实时语音识别系统的设计
来源:现代电子技术   作者:李邵梅 陈鸿昶等
字体大小:[大][中][小]

  实时语音识别系统中,由于语音的数据量大,运算复杂,对处理器性能提出了很高的要求,适于采用高速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,代码编译器)是TI公司提供的软件开发环境。他扩展了基本的代码生成工具,集成了调试和实时分析功能。在CCS下,程序通过Wintech TDS510仿真器接到目标板的JTAG口进行硬件仿真测试。

  测试发现1帧信号的处理时间为78 135 679个指令周期,即391 ms(TMS320C6713工作在200 MHz),远远达不到实时处理的要求,必须对其进行优化。

3.2 代码的优化

  首先根据TI公司提供的软件开发流程,从合作编译器选项、使用内联函数、使用字访问短整型数据和使用软件流水等方面对代码进行了优化。具体实现中,采用-pm选项、-op3选项和-o3选项对程序进行了重新编译。展开内层循环,并通过#pragma MUST ITERATE()告诉编译器循环执行的次数,上述优化后,处理一帧的时间从78 135 679个指令周期降到了50 364 683个指令周期,但是还是无法满足实时性的要求。

  进一步对代码进行测试分析,提取MFCC参数的过程中,256点的实数FFT运算占用了大量的时间。TI公司针对C6000系列的DSP提供了丰富的库函数可以方便地调用。这里,从dsp67x.lib中调用DSPF_dp_cfftr4_dif()进行256点实数的FFT运算,把提取MFCC的时间降为了0.72 ms。

  由于采用10个参考模板,每路数据一次识别就要进行10次DTW的运算,所以如何减少DTW的运算时间是优化的重点。对DTW的优化从两方面进行,首先采用查表法缩小匹配时搜索的区域。

  由于DTW匹配的过程中限定了弯折的斜率,因此好多格点实际上是达不到的,如图6所示。因此菱形之外的格点对应的帧匹配距离是不需要计算的。在本系统的应用中,因为每次都以2 s和2 s的语音数据进行匹配,M和N都固定是64帧,所以可以建一个表格储存菱形区域内的测试帧号和参考帧号,匹配时只计算表格中两帧间的矢量距离,即欧氏距离,从而把欧氏距离的运算从40 960次减少到了19 460次。

  在采用DTW快速算法后,还需进行了19 460次欧氏距离的运算。测试可得,每次运算耗时1 524个指令周期,所以这部分的运算仍是影响识别速度的关键。为了进一步提高代码的性能,把这段代码改为线性汇编来实现。

  完成上述全部优化后,测试得到,处理一帧的时间为1 849 365个指令周期,其中TMS320C6713工作在200 MHz,即处理1帧的时间为1 849 365/200 000 000=9.25 ms,达到0.29倍实时。

4 实验及小结

  为了测试上述系统的识别性能,对其进行了固定文本的说话人辨识实验。实验中,采用录音设备录制了10个人、3个不同时间所说的同一句话,共30句,平均时间长度为4.5 ms。从每个人的3句话中选择频谱最清晰的一句训练成模板,另外录制20句由这10个人所说的长度接近但内容不同的语音做测试语音。这样模板库中有10个模板,测试语音有50个。

  首先通过各模板间的匹配,确定了判决门限0.2,然后把50句测试语音依次送入识别系统,所有语音全部正确匹配。

  本文通过对DTW算法的改进,结合TMS320C6713的特点对C代码进行了优化,在保证识别率的情况下,用TMS320C6713成功地实现了语音信号的高速实时识别。






Upload by 小刘(2007-10-29)
IC
·基于DSP的线阵CCD实时测量系统设..
·使用单片机实现GPRS通信小系统的研..
·高速印制电路板的设计及布线要点
·RTP协议的IP电话QoS监测及提高..
·高精度的步进电机控制系统设计
·CY7C68013与FPGA接口的V..
·基于MiniGUI的机车显示终端图形..
·基于WiMAX网络的切换管理研究
·面向FTTH的EPON系统应用与管理
·浅析电气火灾自动保护型断路器的使用
·构建基于RTLinux的嵌入式系统研..
·基于MiniGUI的机车显示终端图形..
·突破新兴高效能电源要求上的限制(图)
·数字电源的特点与发展现状
·2007年及以后的电源驱动系统集成(..
·光电转换电源控制系统的设计(图)
·三相、三输出控制器节省了POL转换器..
·一种用于航天工程的二次电源系统设计(..
·基于AVR单片机PWM功能的数控恒流..
·基于片上状态机的智能电源管理单元设计..
·天线方向图自动测试系统的设计
·基于GPRS的自动抄表系统设计
·基于IEEE1451标准的IP传感器..
·基于FPGA的分布式算法FIR滤波器..
·基于单片机的舵机控制
·针对高速PCB设计问题定义一体化的设..
·基于VxWorks的TrueFFS文..
·基于Nios II的JPEG图像显示..
·用SoC实现视频图形引擎功能
·信产部副部长苟仲文强调政府大力支持I..
·基于ARM9的嵌入式网关的研究
·基于TMS320F2812和μC/O..
·ADC时延和建立时间的区别
·利用Astro-Rail分析FFT芯..
·数据融合在舰炮系统低角跟踪中的应用
·低速率无线传感器网络演示系统的设计与..
·ARM多核和MIPS多执行绪嵌入式处..
·从ARM看企业的自我定位
·浅谈ARM仿真器中的断点资源
·基于ARM处理器的MVB 2类设备研..
IC
推荐技术文章:
·基于TMS320F28XX UCD8....
·基于TMS320LF2407的馈线终....
·基于DSP的Max-Log-MAP算....
·采用集成DSP与微处理器内核的嵌入式....
·基于DSP的平流层验证飞艇组合导肮系....
·高速DSP与PC实现串口通信的方法..
·基于DSP和CPLD的智能相机系统设....
·用SPI实现dsPlC与ISD语音芯....
·基于DSP的同步相量测量装置的研究..
·FPGA-DSP 瞄准目标:用得起的....
·基于89C51单片机的数字视频监控系....
·基于C8051F041的电力变压器非....
·用单片机和EDA协同设计温度采集系统..
·服装生产自动熨烫系统设计..
·AT89C52单片机的液位检测系统..
·基于MSP430的卫星通信车载站手持....
·单片机+CPLD结构体系在电子设计中....
·热电阻在烟叶初烤炕房温度控制中的应用..
·AT89C52单片机在捻度测量中的应....
·8位机嵌入式TCP通信速度的研究..
·体温数据采集装置的设计
·基于PIC单片机控制的RLC智能测量..
·单片机控制步进电机驱动器工作原理
·非标准化传感器信号调理的一种新方法
·利用高速FPGA设计PCB的要点及相..
·基于ISA总线的高速同步数据采集系统..
·嵌入式系统中可配置式GPIO模拟SP..
·用FPGA设计MP3个人数字播放机
·利用FPGA和USB总线的视频图像的..
·CAN现场总线的时间信息共享技术
·用MAXQ3210构建1-Wire温..
·小型水电站的设备防雷设计
·基于CAN 总线的电动汽车电源管理通..
·基于车载GPS的嵌入式汉显终端的设计
·无线传感器网络节点的硬件设计
·BMW轿车音响I2C总线控制多路音源..
·基于FPGA PCI的并行计算平台实..
·基于PC机的模拟信号发生器的设计
·移动WiMAX-引人瞩目的宽带无线接..
·基于ADSP2106X的高速并行雷达..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒