当前位置:首页 > 单片机 > 单片机
[导读]摘要:对G.729语音编解码算法的原理进行了简要分析,并提出了一种基于DSP芯片TMS320VC5510的语音编解码算法的实现方法。针对算法特征及体系结构的特点,提出了一些有效的优化措施。实验结果表明,运算复杂度大大降低

摘要:对G.729语音编解码算法的原理进行了简要分析,并提出了一种基于DSP芯片TMS320VC5510的语音编解码算法的实现方法。针对算法特征及体系结构的特点,提出了一些有效的优化措施。实验结果表明,运算复杂度大大降低,且在语音的编解码压缩过程中具有很好的重建效果。

关键词:TMS320VC5510;语音编解码;G.729算法;优化

1 G.729算法介绍

由于G.729的算法复杂度较高,ITU提出了G.729的简化版本G.729A,作为G.729的附录Annex A。后来为了进一步提高压缩率,增加了G.729B,即G.729 AnnexB。在G.729B中,主要使用了VAD和CNG技术,使得语音通信中的静音部分进一步压缩。

1.1 G.729A

1.1.1 G.729A编码器

G.729A编码器的框图如图1所示。G.729A编码器由预处理、线性预测分析和量化内插、知觉加权、基音分析、脉冲响应的计算、目标信号的计算、自适应码本搜索、同定码本结构和搜索、增益量化以及参数编码等模块组成。

模拟语音信号经过话路带通滤波和8 kHz采样之后,量化成16位的PCM信号进入编码器,然后根据预处理后的输入信号进行线性预测分析,得到线性预测系数,即线性预测编码LPC(Linear Prediction Code)信息,利用该系数即可构造合成滤波器。激励信号经合成滤波器后生成重构信号,与输入信号相减后得到残差信号。该残差信号经误差加权滤波器处理,根据听觉感受改变频谱,反馈到控制回路,根据使加权残差信号均方差最小的原则确定激励信号及其增益。误差加权滤波器也是根据预测分析所得的LPC信息构造的。

基音分析模块通过自相关分析推得基音周期,据此信息搜素自适应码本,确定最佳自适应码本矢量,得到语音中具有准周期特性的激励;然后再搜素固定码本,根据最小化加权均方差(Mcan Square Error,MSE)的准则确定最佳固定码本矢量,得到语音模型的随机激励信号;最后再确定两个码本矢量的增益Gc和Gp,采用具有共匀框结构的两级码书进行矢量量化。上述过程确定的线性预测编码信息、自适应码本矢量、固定码本矢量和矢量增益构成完整的G.729声码器编码器参数。所有这些参数均以码本索引的形式发往接收端。

1.1.2 G.729A解码器

G.729A解码器结构框图如图2所示。首先从接收到码流中提取参数序号,解码这些序号得10 ms语音帧对应的编码参数。这些参数是线谱对LSP参数、两个分数基音延时、两个固定码本矢量与两组自适应和固定码本增益、每子帧LSP参数被内插并转换为LP(Linear Prediction)滤波器系数,然后以每5 ms子帧为单位合成语音,合成步骤如下:

①自适码本应和固定码本分别乘以各自的增益加起来构成激励。

②激励LP合成滤波器重构语音。

③重构语音信号经过后置处理,包括长时后置滤波、短时合成滤波和高通滤波。最后输出语音信号。

1.2 G.729B

G.729B是对G.729A的进一步优化,其最主要的机制是静音压缩。静音压缩主要涉及两个机制:VAD(Voice Activity Detection)和CNG(Comfort Noise Generation)。VAD主要是用于编码器,用来决定当前帧是否静音;而CNG则主要用于解码器,产生让人耳感觉舒服的噪声。

1.2.1 VAD机制

VAD算法每隔10 ms做一次判决。首先,VAD会从输入帧中提取参数,这些参数包括全带能量、低频带能量、过零率和某个频域参数。在静音段,这些参数的长时平均值随着背景噪声的性质而发生改变。每进来一帧,就要计算当前帧的参数与其长时平均值的差。根据这些差值参数,VAD可以得到初始的判决结果,最后对初始结果进行平滑,得到最终的判决结果。

1.2.2 CNG机制

舒适噪声是用伪白噪声激励内插后的LPC滤波器产生的,就跟解码器对解码后的激励进行滤波产生活动话音一样。激励水平和LPC滤波器是从前一个SID信息中获取的。子帧内插LPC滤波器是用SID的LSP参数作为当前的LSP,然后和前一帧的LSP作内插得到的,与活动帧一样。伪白噪声ex(n)是由跟活动话音同样类型的激励cx1(n)和高斯白噪声激励ex2(n)相加而产生的。G.729激励ex1(n)是由一个小增益的自适应激励和ACELP固定激励组成的,这改善了活动和非活动话音帧之间的跳变。白噪声ex2(n)的引入是为了产生一个更接近于白噪声的信号。在非活动话音期间,因为编码端和解码端需要保持同步,所以激励在两边都要产生。

首先,我们定义目标激励增益Gt为当前帧t合成激励必须要达到的平均能量的平方根。Gt是用下面的平滑公式计算得到的,其中GSID是解码后的SID增益。

每帧的80个样本分成两个长度为40个样本的子帧。对于每一个子帧,CNG激励样本是用下面的算法合成的:

①从间隔[40,103]中随机选择一个基音延迟。

②根据G.729 ACELP码结构随机选择网格、脉冲符号和位置来构建子帧的固定码本矢量。

③计算单位增益的自适应激励信号,记作ea(n),n=0~39;选择的子帧固定激励被记作ef(n),n=0~39。

④与活动帧一样,伪白噪声ex(n)是由跟活动话音同样类型的激励ex1(n)和高斯白噪声激励ex2(n)相加而产生的。G.729激励ex1(n)是由一个小增益的自适应激励和ACELP固定激励组成的,这改善了活动和非活动话音帧之间的跳变。高斯白噪声ex2(n)的引入是为了产生一个更接近于白噪声的信号。在非活动话音期间,因为编码端和解码端需要保持同步,所以激励在两边都要产生。

即:

1.3 G.729A+B比特流结构

G.729A的比特流结构如表1所列。

由于G.729B引入了VAD和CNG,与G.729A相比码流结构增加了SID(Silence Insettion Descrtptor),其中带有静音的信息。SID的码流结构如表2所列。

2 基于DSP的系统实现方案

2.1 硬件平台设计

TMS320VC5510是一款16位定点数字信号处理器,具有较高的操作灵活性和运行速度;同等条件下其内核的功耗仅为54系列DSP的1/3,而且具有更高的代码执行效率,其指令也与54系列的相互兼容,可以很方便地进行代码的移植,它的最高数字信号的处理能力为200 MIPS,能够很好地满足本平台对运算的要求。本系统基于多片DSP处理器,实现多路话音的G.729(以下将G.729A+B简称为G.729)编解码,同时DSP通过HPI接口与上位机进行通信,并接受上位机的控制,DSP的PCM数据由FPGA进行协调,比特流数据的收发可以由FPGA进行协调或由HPI接口进行操作。整个系统的硬件平台如图3所示。

本设计首先将上位机来的IP包进行解包,再进行G.729编码到PCM编码的转换,得到的PCM信号送往FPGA内的TDM交换矩阵做时隙交换或实现会议功能,再将需要输出的PCM信号作编码转换,封装成IP包后发往上位机。

2.2 系统软件设计

本设计中McBSP0口接收数据处理,主要进行话音编码,并将编码比特流从HPI接口送出,HPI接口接收数据处理,主要进行话音解码,并将解码后的PCM数据从McBSP0口送出。软件系统为了保证McBSP0和HPI接口接收数据的正常处理,还需实现一些辅助功能模块包括:系统初始化模块、支持系统在线配置的模块以及系统收发数据的同步检测模块。系统软件流程如图4所示。

2.2.1 编码过程

G.729编码器的流程如图5所示。首先,编码器会初始化,主要是初始化各缓冲区;然后编码器对输入的原始语音信号进行预处理,包括高通滤波和幅度减半。其中,高通滤波的截止频率为140 Hz,它是一个二阶的零极点滤波器,目的是要去除输入信号中的低频十扰。对输入信号进行预处理以后,编码器开始编码,这是通过调用汇编函数Coder_ld8a实现的;编码产生的参数使用函数prm2bits转化为比特流,送到信道里传输。

2.2.2 解码过程

G.729解码器流程如图6所示。与编码器类似,解码器首先要进行初始化,特别是初始化缓冲区;接着解码器从输入码流中提取参数;由于码流在信道的传输过程中可能发牛错误,所以从码流中提取得到参数后应该进行奇偶校验,以确定参数是正确的;通过了奇偶校验后,解码器正式开始解码,这是通过调用汇编函数Decod_ld8a实现的;解码重建语音信号后,还应该进行后滤波和后处理。其中,后处理起高通滤波和幅度翻倍的作用。

3 系统编解码算法性能测试

编解码算法性能包括两方面:运算量和存储要求。要达到高性能,不仅要运算量低,而且存储器使用也要少。表3和表4分别列出了编解码器的运算量和存储器使用情况。

为了验证编解码器是否正确,采用了如下测试程序进行验证:

结语

本设计中基于TMS320VC5510的语音编解码系统整体运算量为45 MIPS,传输速率8 kb/s,压缩比为16/1,合成语音的质量主观评价分MOS分达4.0。此系统工作稳定可靠,有较高的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

编码器实质上是一种旋转式传感器,它能够将旋转部件的位置和位移物理量转化为数字脉冲信号。这些脉冲信号随后被控制系统捕获并处理,从而发出指令,实现对设备运行状态的精准调整。值得一提的是,编码器与齿轮条或螺旋丝杠的组合,还能用...

关键字: 编码器 电机控制

随着在线会议、直播和游戏语音交流的普及,高质量的音频输入设备变得越来越重要。为此,边缘AI和智能音频专家XMOS携手其全球首家增值分销商飞腾云科技,利用其集边缘AI、DSP、MCU和灵活I/O于一颗芯片的xcore处理器...

关键字: AI DSP MCU

所以我创造了一个MIDI音序器,结合了短短语。我还想给它添加随机元素。M5Stack CoreS3 SE的触摸屏不是很大,所以我决定用一个有8个编码器的单元来执行各种操作。

关键字: MIDI音序器 M5Stack 编码器

多DSP集群的实时信号处理系统,通信拓扑的优化直接决定任务调度效率与系统吞吐量。RapidIO与SRIO作为嵌入式领域的主流互连协议,其带宽利用率差异与QoS配置策略对集群性能的影响尤为显著。以无线基站、雷达阵列等典型应...

关键字: DSP 通信拓扑优化

随着5G网络普及与物联网设备爆发式增长,边缘计算正从概念验证走向规模化部署。据IDC预测,2025年全球边缘数据量将占总体数据量的50%,这对边缘节点的实时处理能力提出严苛要求。在此背景下,AI加速器的DSP化趋势与可重...

关键字: AI加速器 DSP

在工业控制领域,数字信号处理器(DSP)的性能直接决定了系统的实时控制能力和可靠性。德州仪器(TI)的C2000系列芯片凭借其卓越的采样、控制和功率管理能力,长期以来在全球工业控制市场占据绝对领导地位,广泛应用于能源、电...

关键字: TI C2000 DSP 格见半导体 芯来 RISC-V 工控

2025年7月16日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 持续供货Texas Instruments (TI) 的新产品和解决方案。作为一家授权...

关键字: 线性稳压器 栅极驱动器 DSP

综合性IP产品系列可支持H.264的基本/主流/高性能配置和H.265的主流/主流10/主流静态图像配置,提供了跨越不同应用的无缝集成和无与伦比的灵活性

关键字: 编码器 解码器

在当今数字化浪潮的推动下,数据流量呈爆炸式增长,数据中心、5G通信网络以及云计算等领域对高速光通信的需求愈发迫切。800G光模块作为高速光通信的关键组件,其性能直接影响着整个通信系统的传输效率和可靠性。数字信号处理(DS...

关键字: 800G DSP PAM4均衡算法

半年前我买了一个M5Dial,我在想,“我能不能用这个拨号盘操作做点有趣的事情?”那时我突然想起,“我上初中的时候,常常是一个接一个地输入数字来检验方程……”我想,“如果我把这个操作变成一个表盘式,那该多有趣啊!?”于是...

关键字: M5Dial 保险箱 编码器
关闭