语音处理算法的集成与评估_第1页
语音处理算法的集成与评估_第2页
语音处理算法的集成与评估_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语音处理算法的集成与评估语音处理算法的集成与评估类别:电子综合从零开始设计和开发一个稳定的嵌入式系统通常极具挑战性。而集成和估数字信号处理(DSP)算法与系统同样很棘手,甚至让那些编程高手也束手无策。当前有无数的算法被集成到各种电子系统中。嵌入式系统开发工程师如何才能知道哪个算法适用于语音处理,比如基本的电话系统中的语音处理呢? 延伸到40kHz的音频频谱被划分为两个频段。语音分量占用频谱的较低部分,从5Hz到7kHz,其他音频分量占余下的高频部分,如图1所示。 语音处理主要涉及压缩-解压缩、识别、调整和增强算法。信号处理算法非常依赖于系统资源,例如可用的存储器和时钟性能。由于这些资源会增加系

2、统的成本,因此产品提供商通常都限制这些资源,以降低产品成本。一些基本特性,例如存储器和时钟消耗是算法复杂性的必然部分。复杂性越低,算法越优,其实现的功效就越高。 在估一个算法时,测量算法的复杂性是第一步。在特定处理器上运行算法所要求的时钟决定了处理能力,它取决于架构,不同的处理器架构其处理能力是有变化的。而算法的存储器需求明显不会改变。绝大多数的DSP算法对一组样值进行处理,这样的一组样值称为一个帧。一组样值组成一个帧将不可避免引入延迟,并产生处理延迟。国际电联(ITU)规定了每种算法的可接受延迟标准。 算法的处理能力通常用“每秒百万时钟”来表示,或者MCPS。为了更好地理解MCPS,可以假设

3、某个算法以8kHz的频率处理6?个采样帧,处理每个帧需要300,000个时钟。那么收集一个帧的时间为6?/8,000或8ms。通过简单的算法可以得出每秒可以处理125个帧。当算法处理所有的帧,它至少占用内核每秒300,000125 = 37,500,000个时钟,或者37.5MCPS。 另外一种表达MCPS的方式是,它等于(处理一个帧所要求的时间乘以采样频率再除以帧大小)再除以1百万。 通常用来定义算法处理能力的第二个术语是MIPS,或百万指令每秒。计算某个算法的MIPS也比较复杂。如果处理器每个时钟周期能有效地执行一个指令,每个处理器的MIPS和MCPS是相同的。另一方面,如果处理器的架构需

4、要超过一个周期来执行一个指令,则MCPS和MIPS之间存在一个比例。例如,一个ARM7TDMI处理器实际上每个指令需要1.1个周期。 图1:音频频谱图。 在进行集成之前 在任何嵌入式系统上开始集成和估任何语音算法的最佳时机是当系统处于一个可预测或稳定的状态时。稳定意味着音频前端的中断结构是一致的。换言之,当保持一个合适的幅值时,甚至不会丢失一个数据字节。拥有可用系统存储器和时钟的统计数据是非常明智的。在一个工作稳定的现有系统上集成一个算法相对较简单。如果系统正在开发中,试图在这个系统上集成和估任何算法之前需要彻底对音频前端进行测试。而且,要验证在系统内没有中断发生相互冲突。如果系统中存在任何问

5、题,算法的调试将是非常痛苦的体验。 在将要集成音频/语音算法的系统中,音频固件必须是稳健的,它必须为算法提供准确的数据才能使算法得以有效地执行。工程师常常犯的一个简单错误是在每个样值到来时中断内核。如果算法只是对一个帧的某些固定样值进行处理,那么其他的中断将是多余的。可以通过配置直接存储器存取(DMA)和内部FIFO来在整个帧收集完成后再中断内核。 实例算法 当开发任何电信系统时,工程师通常用脉码调制(PCM)编解码器(即G.711标准)进行语音质量的测试。这种窄带编解码器将样值幅度限制在8bit的精度,并产生6?kbit/s的吞吐量。编码器和解码器可能会对每个数据样值进行处理。它是一种非权重

6、算法,复杂度很低,几乎没有处理延迟,工程师可以选择利用编解码器来进行播放、验证系统,更重要的是彻底估音频前端设计。工程师可以检测信号电平,调整硬件编解码器增益,同步近端和远端中断,验证DMA功能,以及使用这种基本的电话标准成功进行其他试验。在这个过程中,如果发现从另一端接收到的压缩数据是比特反序的,请不要觉得奇怪。一段反序代码就能解决这个问题。 任何宽带语音编解码器都是较多占用存储器和时钟资源的语音算法的一个实例。子带ADPCM(自适应差分脉码调制)算法就是其中之一,相应标准是 G.722。它对16kHz采样的数据进行处理,因此覆盖了整个语音频谱。它保留了未发声的频率分量那些存在于4到7kHz

7、的分量从而提供了高质量的自然语音。在任何编解码器集成到系统之前,强烈建议认真测试。尽管G.711编码和解码可以逐个样值进行测试,但涉及到滤波和其他频域算法的编解码器测试是完全不同的,它需要采用至少有数千个样值的数据流。编解码器的验证让工程师忙于利用ITU向量进行单元测试、信号电平测试以及与其他可用编解码器的可互操作测试。对于系统集成工程师来说,与在发送之前将编码后的数据字节编成16比特的字以及信号电平的失配相关的互操作问题都不是新的问题。 这里讨论的算法未必是系统工程师可能会集成的算法,因为这些算法需要更多的系统存储器和时钟周期。处理器增强型算法的其他实例包括回声消除算法、噪声抑制算法以及维特

8、比算法。对这些算法的性能估并不像语音编解码器那样简单。 通常,任何涉及到免提或扬声器模式的电信系统都采用了声学回波消除算法来避免听到自己的回声。如果在嘈杂的环境中采用,还需要采用噪声控制算法。回声消除-噪声抑制(ECNR)需要大量的系统存储器和时钟。有多种时域与频域技术可用来减轻声学回声问题,如表1所示。 表1:前面四行表明频域技术优于时域技术,后面四行支持时域技术。 事实证明频域方法更有效,因为它的运算成本较低。这种方法采用自适应FIR滤波器,它只在当残余回声误差大于门限值时才更新其系数。从输入信号中减去估计的回声将产生误差。来自第二方的信号被用作这些算法的基准来估计回声。需要为算法提供适当

9、的基准才能取得良好的回声估计和消除。 另外一个因素是回声尾部长度,它是以毫秒为单位的回声反射时间。简单而言,它是回声形成的时间。该因素取决于环境的维度。尽管详细的滤波器设计是一个很复杂的话题,但选择滤波器的长度并不太复杂(见表2): 滤波器长度= 回声尾长采样频率 表2:说明了数据以8kHz采样时尾部长度与回波覆盖距离以及滤波器长度要求之间的关系。 任何回波消除(EC)实现的基本要求是支持最低16kHz的采样数据,以确保能涵盖16kHz的宽带语音。将EC与宽带语音编解码器集成需要更加小心,因为回波尾长取决于采样频率,采样率为8kHz的数据需要72ms的EC才能有效地消除回声,当用于16kHz采

10、样数据时,只能消除一半。因此,工程师发现将半有效的EC与宽带编解码器集成是一个双倍挑战的工作。噪声消除方法也已经使用了多年。针对不同的应用,方法的选择、实现和应用也不同。例如,某种方法可能将噪声视为比人声更加固定。算法将建立噪声模型,然后从输入信号中减去噪声。噪声降低的大小按分贝来度量。对于很多应用来说10到30dB的衰减就很不错。 本文所述应用中的EC尾长要求大约为50ms,要求的噪声抑制水平在12到25dB之间,具体取决于噪声属性以及期望的输出语音质量。通常,噪声消除越多,越有可能损失语音质量。因此,动态选择大小将能提供一个合适的噪声消减量,同时依然保持足够的语音质量。对于这种应用的ECN

11、R组合可能需要高达15到20kB的系统存储器。每个6?采样帧的处理可能耗用150,000到300,000个时钟,具体数据取决于处理器。 ECNR组合的性能估可能非常麻烦。通常可以通过调节硬件编解码器的增益,调整麦克风和扬声器的位置,发现远端和近端语音和中断的同步,发现具有线性属性的音频硬件,试验不同的EC尾长和NR电平来获得最佳可能的回声消除和噪声抑制性能。 在估任何算法的复杂性的同时,初学者需要考虑最糟糕的情况,这很重要。算法的执行时间对于不同的帧来说可能不同。这种数据依赖性源于这样一个事实,即一个处理器相乘两个具有较高幅值样值所需的时间要比相乘两个幅值较低样值的时间长。 可能受自适应算法误导的一个实例是,当滤波系数未被更新时,所占用的周期将较少。滤波器数据的适配可能需要数千个时钟周期,因此很明显在分析MCPS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论