历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2018年02月12日 | 基于G.729语音压缩编译码算法的嵌入式语音存储系统设计

2018-02-12 来源:eefocus

    为了有效地节省语音数据的传输带宽和存储系统的磁盘空间,需要在保证语音质量的前提下尽可能降低其编码比特率。本设计采用经过优化的G.729语音压缩编译码算法,以ARM处理器为载体,开发的嵌入式语音存储系统可实现语音信号的海量存储,而且处理速度快、可靠性好、扩展方便。通过严格的测试和评估,该系统能够实现对大量语音数据的压缩和记录,各项指标基本达到了预期的水平。


    1 系统控制核心

    嵌入式操作系统软硬件结构框图如图1所示,由硬件层、驱动层、系统层和应用层组成。硬件层包括嵌入式处理器最小系统、存储器(SD RAM、Flash、ROM等)、通用设备接口和I/O接口(A/D、D/A、I/O等),其中Linux实时操作系统和应用程序都可以固化在ROM中。硬件层的核心是嵌入式处理器,在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式处理器最小系统。中间的驱动层将上层软件和底层硬件分离开,为其连接提供接口。系统层主要负责软件硬资源的分配、内存管理、任务调度、文件处理等,是软件层的核心。应用层为用户提供编程接口,实现各种应用功能。

   a.JPG

    1.1 系统软件核心

    Linux操作系统的内核主要由进程调度、内存管理、虚拟文件系统、网络接口、进程间通信五个子系统组成,各个子系统之间都存在着不可分割的依赖关系。内核为设备驱动提供支持,实现设备控制与应用;设备驱动为上层提供标准接口,完成硬件细节的封装。可以根据设计需要对内核模块进行适当的裁减,制作出理想、实用的操作系统。

    1.2 系统硬件核心

    Samsung公司的S3C2440A处理器是一款以手持设备为主而设汁的芯片。这款处理器支持NOR Flash和NAND Flash启动方式,内部集成LCD、I2C总线、AC97、Camera等控制器。提供丰富的接口资源,方便与外设连接,易于扩展。

    2 G.729算法概述

    2.1 G.729编码原理

    G.729编码标准采用CS-ACELP语音压缩编码技术,其核心原理是线性预测和二级量化。每个10 ms的语音帧包含80个采样点,在每个这样的语音中都要进行线性预测(LP)分析,计算出LP滤波器系数,再转换为线性谱对参数(Line SpeCTRum Pari,LSP),并使用有两个阶段

    的预测矢量量化器(Vector Quantization,VQ)进行18比特量化。然后编码器以原始语音和合成语音的误差感觉加权最小为准则采用A-B-S(Analysis-By-Synthesis,分析合成)方法搜索激励信号,激励参数(固定码书参数和自适应码书参数)每个子帧(5 ms帧长,40个采样点)确定一次,感觉加权滤波器的系数由未量化的LP系数产生。

    2.2 G.729解码原理

    解码是编码的逆过程,其原理为:首先从获得的码流中提取出参数的索引,这些参数包括LP滤波器系数、自适应码书矢量以及固定码书矢量和增益,它们分别解码后,可获得一个LSP系数、两个音节延迟、两组自适应码书和固定码书增益等对应于10 ms语音帧的编码器参数。

    然后将LSP系数进行内插操作,转换为每个5 ms子帧的LP滤波器系数,再对每个子帧进行如下操作:

    ①经各自增益缩放的自适应矢量和固定码本矢量相加,得到重建的激励信号;

    ②将激励信号通过LPC合成滤波器,得到重建语音;

    ③重建的语音信号经过各种滤波器的后续处理,实现信号的放大和改善。

    2.3 G.729算法优化

    在G.729编码算法中,采用量化码本结构。其基本原则如下:首先计算出K维码本里的各个码字矢量的平均值并存储起来;然后求出输入信号矢量平均值和各个码字矢量平均值的均方误差值;最后用遍历法找到这些均方误差中的最小值Dmin,与之相对应的码字即为最佳逼近码字。采用这种搜索方法加快了编码速度,减少了搜索时间,并没有改变矢量量化的精度。

    3 系统硬件结构

    系统硬件结构框图如图2所示。S3C2440A作为整个系统的主控芯片,DC电源、复位电路、时钟电路作用于系统的每个部分;存储模块包括SDRAM、Flash以及外接的CF或SD卡等;调试模块包括JTAG接口、RS232接口以及网络接口三个部分;音频模块的主要工作由编解码器UDA1 341完成,扩展接口由USB接口、IDE接口构成,交互模块由TFT LCD和触摸屏构成。其中,音频模块和IDE扩展接口是研究的重点。

   b.JPG

    3.1 系统外围电路

    系统设计的外围电路都是ARM最小系统所必需的。电源电路为系统提供能量,是系统工作的基础。设计电源电路时要考虑的因素很多,主要包括输入及输出的电压范围、输出纹波大小、电池兼容和电磁干扰等,系统采用DC-DC转换芯片LM1117将5 V的电压转换成1.3 V、2.5 V、3.3 V后供系统使用。采用复位芯片MAX811产生的复位信号,既能保证上电复位的时间,又能保留手动复位的特点。时钟电路为系统提供工作时钟,主时钟采用12 MHz晶振作为时钟源,RTC时钟采用32.768 kHz晶振作为时钟源。通过JTAG接口,可以访问芯片内部的所有部件,是实现系统开发、调试的高效手段。为了减小系统体积,采用10针简化的JTAG接口,其接口电路如图3所示。

   c.JPG

    SDRAM存储器选择Samsung公司的K4S561632E-UC75,其存储容量为32 MB,具有存取速度快、成本低廉的特点,主要用来存放执行代码和变量,是系统启动之后主要进行存取操作的存储器。Flash存储器选择Samsung公司的K9F1208U0CNAND Flash存储器,其存储容量为64 MB,可以擦写一百多万次,具有很长的使用寿命,把启动程序、内核代码等固化到Flash闪存中能加速系统的启动、提高系统的稳定性和可靠性。

    3.2 音频采集与处理模块

    该模块采用Philips公司生产的音频芯片UDA1341TS,它支持I2S数据总线格式,且具有低功耗、低电压及DSP语音功能等特征。I2S(Inte grate Interfaceof sound)是Philips公司提出的串行数字音频总线协议,音频数据与控制信号、时钟信号分开传输,避免了由时钟带来的抖动问题,因此系统中可省略消除抖动的器件。

   d.JPG

    音频芯片与主控芯片的连接如图4所示。I2S音频接口包括5根信号线,其中音频模块的同步时钟CDCLK由S3C2440A提供,该时钟控制音频的A/D、D/A采样速率。串行时钟SCLK,也叫位时钟(BCLK),即每一个SCLK脉冲对应一位数字音频数据。帧时钟LRCK用于左有声道的切换,LRCK为1表示正在传输的是左声道的数据,为0则表示正在传输的是右声道的数据。DATAI是串行数据输入信号线,DATAO是串行数据输出信号线,所传输的音频数据用二进制补码表示。L3总线接口包括3根信号线:L3MODE/GPB2是微处理器接口模式信号线;L3CLOCK/GPB4是微处理器接口时钟信号线;L3DATA/GPB3是微处理器接口数据线。L3总线接口主要用于传输控制信号,相当于混音器控制接口,可以调节输入/输出音频信号的音量、低音提升、控制去加重等。

    3.3 IDE硬盘控制模块

    IDE接口是硬盘和光驱普遍使用的外部接口,接口采用16位数据总线并行传送,体积小、速度快,兼容性强。IDE接口主要有可编程输入输出(Programming Input Output,PIO)和直接内存访问(Direct MCMory ACCess,DMA)两种传输模式。PIO模式占用大量的系统资源,数据传输速率较低;DMA模式需要额外的驱动程序或设置,系统资源占用少、执行效率较高。本设计选择DMA模式。

   e.JPG

    S3C2440A与硬盘接口如图5所示。其接口信号分为片选信号、数据信号和控制信号3个部分。硬盘上寄存器分为两组,分别由/CS0和/  CS1选中其中的一组,A0~A2引脚用于组内寄存器寻址,包括数据寄存器、错误寄存器、扇区计数器、扇区号寄存器、低柱面号寄存器、高柱面寄存器、状态寄存器和命令寄存器。数据线D0~D15用于数据的双向传输。/DIOR、/DIOW是读写控制信号;/Reset是硬盘复位信号;DMARQ(DMA请求信号)和/DMACK(DMA应答信号)是专用于DMA模式的信号。

    4 系统软件实现

    4.1 语音数据的采集

    语音采集部分主要是完成UDA1341TS驱动程序的编写,其初始化相关代码如下:

   f.JPG

    端口初始化包括L3总线接口和I2S接口的设置,首先将与L3接口相连的通用I/O口GPB2、GPB3、GPB4设置为输出模式,然后设置与I2S控制器输出信号相关的GPIO引脚,将GPE0~GPE4这5个引脚设置为I2S接口的信号模式。UDA1341TS芯片初始化部分包括L3接口时序和协议的模拟,完成采样速率、数据格式等参数的设置。系统采样速率为8 kHz,使用时钟为384 fs,数据输入格式设置为MSB-JustifLED模式。接下来通过“audio_init_dma()”申请DMA通道,输出音频缓冲区的DMA通道设为通道2,输入音频缓冲区的DMA通道设为通道1。若初始化失败会返网相应的错误标志,初始化成功后方可进行后续操作。

    4,2 IDE接口函数

    硬盘驱动程序实现分为设备初始化、打开设备、设备I/O操作和释放设备等几部分。要完成硬盘数据交换的工作,就需要对寄存器进行频繁的读写操作,为了方便在程序中的调用,把这些和硬件操作密切相关的操作都写成了接口函数,其函数说明略——编者注。

    4.3 系统主程序流程

    主进程开始后首先初始化采样参数,包括采样速率、采样点数、数据存储格式及采样通道,若初始化不成功会返回相应的错误标志,并作出相应的出错处理,成功后可继续下一步操作。然后通过键值判断数据的存储区是选择Flash还是选择硬盘,并初始化相应的存储区,这是保证系统在没有外扩硬盘的情况下也能正常运行,只不过是数据存储量较小而已;若选择操作硬盘,但硬盘未连接,仍然会返回相应的错误标志,并进入出错处理函数继续执行。接下来根据键值判断是否进行压缩处理,若进行压缩处理,则相应的编解码标志置位;根据该标志确定是否启动编解码进程,即系统能存储未压缩的数据,也能存储压缩后的数据,可以根据需要进行适当的选择。启动A/D转换进程并进行语音数据的存储,相当于录音的过程;数据存储完成后,即录音结束后,启动D/A转换进程进行语音播放。录音和播放可以同时进行,为了测试方便,这里把这两个过程分离开来。

    总的来说,系统主进程创建了A/D、D/A转换进程和编解码进程,结合Linux的共享机制和进程间通信等手段,实现了语音信号的采集、压缩、存储、回放等环节。

    系统主程序流程图略——编者注。

    5 系统测试与结果分析

    系统测试内容主要包括语音质量、语音存储时长、语音压缩效率三个方面。语音质量是指经传输、处理后音频信号的保真度,是衡量语音编码算法优劣的关键指标。其评价方法分为主观评定和客观评定两类。系统采用的主观评定方法是平均意见得分(Mean OPINion Score,MOS),即以主观打分来度量,其评价标准分为5个等级,MOS评价标准如表2所列。客观评定选择信噪比为评价指标,信噪比(Signal Noise Ratio,SNR)定义为信号与量化噪声的方差的比值,计算公式为:

    g.JPG

   h.JPG

    其中i.jpg?imageView2/2/w/550分别为信号方差和噪声方差。通过测试系统的主观评价指标MOS可以达到3.8分,接近于电话语音质量,与原始语音的区别不明显;系统的客观评价指标SNR为58 dB,噪声的影响在可以接受的范围内。语音时长的统计,依赖于扩展IDE硬盘的容量,测试选择3G容量的硬盘;记录未经压缩的语音数据为750个小时,而记录压缩后的语音数据可达7500多个小时;可见语音压缩的效率可以达到10多倍,已达到理想的效果。


推荐阅读

史海拾趣

Advanced Analog公司的发展小趣事

随着公司的不断发展和壮大,Advanced Analog开始积极拓展国际市场。公司在全球范围内设立了多个分支机构和销售网络,与众多国际知名企业和品牌建立了长期稳定的合作关系。通过参与国际电子展会和交流活动,Advanced Analog的产品和技术得到了更广泛的认可和赞誉,进一步提升了公司在国际市场的知名度和影响力。

三环(CCTC)公司的发展小趣事

进入21世纪后,三环(CCTC)公司迎来了快速发展的机遇期。公司根据市场需求和技术发展趋势,积极调整产品结构,形成了多元化布局。在这一阶段,公司先后发布了SOFC、PKG、GTM、氧化铝陶瓷基片以及TO部件等产品,并成功打入国内外市场。同时,公司加强了与国际知名企业的合作,提升了品牌影响力和市场竞争力。

EQCOLOGIC公司的发展小趣事

在电子产品行业,品质是企业生存和发展的关键。EQCOLOGIC公司从成立之初就高度重视品质控制,建立了严格的质量管理体系。公司投入大量资金购买先进的检测设备,确保每一批产品都符合质量要求。同时,EQCOLOGIC还注重员工培训和技能提升,提高员工对品质控制的意识和能力。正是对品质的坚守,让EQCOLOGIC在竞争激烈的市场中赢得了良好的口碑。

Gold Peak Group公司的发展小趣事
在控制电路周围设置必要的安全防护措施,如防护罩、警示标志等,防止人员误操作或触电事故的发生。
Compensated Devices Inc公司的发展小趣事

随着全球环保意识的日益增强,电子行业对环保的要求也越来越高。CDI积极响应这一趋势,将环保理念贯穿于产品研发、生产和销售的全过程。公司推出了一系列绿色环保型电子元件,并采用了环保材料和生产工艺。这一举措不仅赢得了客户的认可,还为公司的可持续发展奠定了坚实基础。

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

问答坊 | AI 解惑

(转载)ARM中国HR以百万元天价辞退一位女经理!!

最近,业界频频传闻ARM中国HR破纪录地以百万元天价辞退一位女经理。 据说这位女经理在ARM剑桥总部报告了ARM中国销售团队特别是其副总(姓吴,美籍台疤)的丑闻,大致是有关行贿客户、及故意卖给客户不需要的产品、再通过升级卖更多的其它产品等等 ...…

查看全部问答>

大家看一下我换个元件行不行?

d:\\m.jpg这个是调速电路图   有个人问我换个独石电容行不行。还有这个电容的作用。?哪位能给说详细点?…

查看全部问答>

为什么DAT_copy还是不对?

本帖最后由 dontium 于 2015-1-23 13:38 编辑 我用的是ccs 3.1,在DM642上想用DAT_copy来传数据,结果不对。TI给的那个例子运行也不对不对呢?。到底DAT_copy该怎么用?我也下载了最新的c6000.exe来升级,仍然不对。发现好象DAT_copy根本就没有搬 ...…

查看全部问答>

STM8怎么生成静态链接库呀

紧急求助呀!!!STM8怎样生成静态链接库!!! 万分感谢!!!…

查看全部问答>

初学者对 时钟的 问题

说430里面有 3个时钟 分别是 ACLK  MCLK  SMCLK 那么单片机在 工作的时候 这三个时钟都同时在工作吗?就是我想让ACLK 去干点啥  然后让MCLK去干另一个,SMCLK做其他的,还是这三个当中只有一个在工作啊  [ 本帖最后由 41 ...…

查看全部问答>

怎么选好驱动电路

谁能告诉我,5-10个mos管并联使用时使用什麽样的驱动电路比较合适?为什么?…

查看全部问答>

24小时任意设置时间的倒计时程序

#include #include unsigned char data dis_digit; unsigned char key_s, key_v; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3     0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off u ...…

查看全部问答>

ise14.6 license 支持全系列xilinx 7系列

vivado2013.2 license 支持全系列xilinx 7系列 ise14.6 license 支持全系列xilinx 7系列 推荐一个知名公司资深fpga工程师share的网站 www.rocetech.com KINTEX7,FPGA采集卡,pcieX8采集卡,pcie采集卡,万兆光网卡,rocetech 技术工程师电话1( ...…

查看全部问答>

国产操作系统COS

本帖最后由 季夏木槿 于 2014-1-23 14:10 编辑          昨天看电视的时候,看到一个广告,说的竟然是国产操作系统COS,对于这个操作系统,我还是第一次听说,上网搜了一下资料,发现是前几天才公布的。以下是这款 ...…

查看全部问答>

新人求助

由于我毕设要用到arm 同事还要封装起来 所以学长推荐我上网买一个arm专门用于  音频播放的模块   我网上找了半天 木有啊 各位大大 帮帮忙哈…

查看全部问答>