首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于TMS320C6416的语音净化系统
来源:本站整理  作者:佚名  2011-09-10 07:34:51



2.2 软件流程

  系统上电后,存储在FLASH ROM中的程序将装入TMS320C6416的片内RAM中,程序对寄存器、中断向量表和编码进行初始化并对片内McBSP进行配置,完成这些初始化的任务后系统采集并处理语音信号.系统首先对目前状态进行辨识.开机后的状态分为非识别状态和识别状态,非识别状态 下系统将采集纯正语音信号,提取出语音特征送入存储器中作为模板;识别状态下首先参数考纯净语音的特征对采集的双路混合信号进行分离,获得纯净的待别语音,最后送入识别系统完成语音识别.整个流程见图4.

  

基于TMS320C6416的语音净化系统流程图

  具体分离步骤在初始化之后,主函数程序进入一个等待循环,在一个新的采样输入被获取之后与中断服务程序(ISR)一起工作并调用分离程序.第一步,信号首先通过TI的DFT程序变换到频域.系统使用最前面的几个块(例如取5块)来估计输入信号x1和x2每个频率分量的功率矩阵.流程图(见图5)中的变量P表示正在处理的块数.对于接下来的每一块(P≥5),系统通过指数平均来更新输入信号的功率矩阵,以计算出梯度.然后计算步长u12、u21和差分脉冲响应滤波器ΔH12、ΔH21的更新系数.最后确定更新系统和DRIR滤波器系数,在频域对输入信号进行初步分离.第二步,白化程序对FDICA输出信号进行白化处理,以去除信号的相关性.第三步,首先通过最小化非负代价函数计算分离滤波器矩阵和分离滤波器系数,然后带入白化后的信号求得TDICA输出信号.

  2.3 代码优化

  为了进行实时的混合语音分离并识别,分离算法必须在尽可能短的时间(如1~2s)内完成.在本系统中,通过CCS对C源代码进行编译,并对分离算法的一些关键模块从内联函数替换、数据读写、循环体优化、函数拆并、C级优化等方面进行优化设计,以达到充分利用CPU、存储器等资源,提高算法运行速度,满足实时性要求.

  (1)内联函数优化

  通过内联函数替换提高代码性能.内联函数直接与汇编指令相对应,通过使用它们,C编译器能达到更好的编译效果,并充分利用系统资源.C6416提供丰富的内联函数,涵盖了各种数据类型的乘、加、移位等操作.实验结果表明,内联函数替换是提高代码性能最简单、直接有效的方法.

  (2)数据读写优化

  充分利用C6416的双字存储指信和PACking/unpacking方式提高代码的运行速度.

  (3)循环体优化

  通过软件流水工具(SOFtware Pipeline)适当安排循环指令,使多次迭代并行执行,以达到优化代码的目的.

  (4)函数拆并优化

  将某些大函数拆开成多个小函数或相反,以提高程序的运行速度.对FDICA和TDICA等大程序中某些常用的分支,可将其拆分以减少判断、跳转操作.对于某些简单的小函数,将其合并成大函数有助于减少程序调用开销.

  (5)C级优化

  在定点DSP上进行浮点运算会影响C源代码的性能.因此,第一个优化任务就是将源码中运算比较密集的部分(如分离滤波器矩阵和分离滤波器系数的计算)转换成定点的算法.此外,影响系统性能的一个重要原因是没有有效利用DSP的并行计算能力,TMS320C6416为最优化这些并行操作的打包数据处理提供了特殊的指令.系统另一个瓶颈是对外部存储器的访问.对混合语音的分离需要处理大量的数据,存储和访问可能是DSP系统的最大瓶颈.通过使用缓存可以缓解瓶颈,优化在外部和内部存储中的数据定位可以提高系统的性能.最后,使用C编译器的最优化选项编译代码.

  上述的优化并非已经完全,在后续的研究中代码可以进一步优化,如可改进以下几处:首先,使用DMA以提高存储器访问的性能并减少存储器消耗;其次,为了避免浮点溢出可以将代码全部转换为定点,对代码中的关键循环进行更好的组织以实现软件流水线;最后,为了最大程序提高性能可以使用线性汇编语言并对部分代码进行汇编层的优化.

  2.4 实验结果

  采用两组混合语音来测试,即单独录制两个纯净的信号源,图1所示模型用MATLAB混合(忽略噪声),通过净化系统得到两级分离信号并与原始语音进行比对.x1(t)和x2(t)即为两个麦克风的输入信号.使用以下两组声音信号作为测试信号,第一组为语音和音乐信号,第二组为两个语音信号,都是16kHz采样16bit单声道文件,长度均为7s.图6与图7分别为上述两组混合语音的分离结果,从中可以看出分离效果非常令人满意,达到了带噪语音的净化效果.

  结语

  在实验室环境引入语音净化系统后,语音识别的速度虽然略有下降,但是识别语音的信噪比有显著提高,在有不同信噪比的音乐和混响噪声的背景中,识别率平均提高30%以上.

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:83,015.63000 毫秒