现在的位置: 首页资讯>正文
嵌入式产品中语音通信和音乐播放两者的软件架构差别在哪里?看完本文你就会了
2017年07月17日 作者: 暂无评论 93+ 0

audio

对于音频产品设计而言,软件方面也尤为需要投入精力。嵌入式产品中语音通信和音乐播放的软件架构是有差别的,本文这里还是把这两种case分开来讲。

1, 语音通信

语音通信的软件架构通常如下:

1

语音发送时由codec芯片采集到语音的模拟信号转换成PCM数据然后通过I2S总线发送给CPU(这是音频驱动负责的,不同的OS会有不同的驱动架构,会在后面音频采集和播放中详细讲,重点讲linux的)。CPU收到PCM数据后首先做前处理,主要包括回音消除(AEC)/噪声抑制(ANS)/自动增益控制(AGC)/VAD等,然后把PCM数据根据指定的codec编码成码流,再打上RTP包头,根据需要还有可能做FEC/重传语音的RTP包等以补偿网络的丢包。最后把生成的RTP包通过UDP socket发到网络中。

语音接收时首先通过UDP socket收RTP包,根据指定看是否需要做FEC等,然后把RTP包或者RTP包的payload(不同的方案有不同的做法)放进jitter buffer中等待取走。

从jitter buffer取时取走的是payload,也就是码流。然后对码流解码得到PCM数据,还要看是否需要做PLC/CNG等。最后把PCM数据通过I2S总线送给codec芯片再转换成模拟信号播放出来。这样双方就可以通话了。

2,音乐播放

音乐播放分播放本地音乐和播放云端音乐。播放本地音乐相对简单。播放云端音乐通常是边下载边播放,一般用DLNA或者Apple的Airplay等协议实现下载,其他的就跟

播放本地音乐一样了。播放本地音乐的软件架构通常如下:

2

首先要解析音频文件头得到相关信息,有codec类型,采样率,通道数等。然后根据这些对每一帧音频数据进行解码得到PCM数据,如果有需要的话还要做后处理,比如均衡器,使音乐更美妙动听。处理完后把PCM数据放进ring buffer中。播放线程会定时的从ring buffer中取走需要的PCM通过I2S总线送给codec芯片,codec芯片把PCM数据转换成模拟信号然后播放出来,这样就可以听到动听的音乐了。

原文链接:http://www.eeboard.com/news/soft/

搜索爱板网加关注,每日最新的开发板、智能硬件、开源硬件、活动等信息可以让你一手全掌握。推荐关注!

【微信扫描下图可直接关注】

eeboard-1

  

相关文章

可以藏口袋里的树莓派音频工作站,起售价89美元
cm001

立陶宛的Blokas工作室推出了一款树莓派Raspberry Pi产品,具有MIDI接口的超低延迟声卡,并被设计为一款一站式的音频修补程序和音乐制作设备。该树莓派有高分辨率立体声输入和输出插孔,MIDI...

新型tinyAVR®MCU助力嵌入式应用提高系统吞吐量和降低功耗
AVR001

全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)近日再次扩展旗下AVR®单片机(MCU)产品线,推出三个新的tinyAVR®MCU...

宜鼎推出全球最小的嵌入式RAID1解决方案
YD001

宜鼎国际(InnoDisk)一直是全球工业存储方案的领导担当,作为业界公认的科技研发狂,今天宜鼎再向业界展示其高超的研发实力,正式宣告推出全球最小的嵌入式Raid1磁盘阵列解决方案,外形尺...

RS Components和Allied Electronics现可供货 树莓派3计算模块,提供低成本开发能力
RS001

2017年1月16日- 服务于全球工程师的分销商 Electrocomponents plc 集团(LSE:ECM)旗下的贸易品牌RS Components (RS)和Allied Electronics今天发布了基于树莓派3架构的最新版本树莓派计算模块...

Mentor Graphics推出仅适用于 Solid Edge® 软件设计的完全嵌入式计算流体动力学解决方案
CFD1

Mentor Graphics推出适用于Solid Edge的FloEFD前端装载完全嵌入式计算流体动力学(CFD)解决方案

给我留言

您必须 [ 登录 ] 才能发表留言!