一文读懂音频开发入门基础知识

在现实生活中,音频(audio)主要用在两大场景中:语音(voice)和音乐(music)。语音主要用于沟通通信,如打电话,现在由于语音识别的发展,人机语音交互也是语音的一个应用,目前正在风口上,好多大厂都推出了智能音箱。音乐主要用于欣赏,如音乐播放。
下面简单介绍音频的基础知识:
采样和采样频率:
现在是数字时代,在音频处理时要先把音频的模拟信号变成数字信号,这叫a/d转换。要把音频的模拟信号变成数字信号,就需要采样,或者叫抽样。当要把音频播放出来时则需要把数字信号转换成模拟信号,这叫d/a转换。一秒钟内采样的次数称为采样频率。根据nyquist采样定理,要想重建原始信号,采样频率必须大于信号中最高频率的两倍。采样频率越高,越接近原始信号,但是也加大了运算处理的复杂度。人能感受到的频率范围为20hz--20khz, 一般音乐的采样频率为44.1khz(根据nyquist采样定理,采样频率大于信号中最高频率的两倍), 更高的可以是48khz和96khz,不过一般人用耳听感觉不出差别了。语音主要是以沟通为主,不需要像音乐那样清晰,分窄带和宽带。窄带频率范围为300hz--3400hz,相应的采样频率为8000hz; 宽带频率范围为50hz--7000hz,相应的采样频率为16000hz,用16k采样的语音就称为高清语音了。现在主流的语音采样频率为16khz。
采样位数:
数字信号是用0和1来表示的。采样位数就是采样值用多少位0和1来表示,也叫采样精度,用的位数越多就越接近真实声音。如用8位表示,采样值取值范围就是-128--127,如用16位表示,采样值取值范围就是-32768--32767。现在一般都用16位采样位数。
声道(channel)
通常语音只用一个声道。而对于音乐来说,既可以是单声道(mono),也可以是双声道(即左声道右声道,叫立体声stereo),还可以是多声道,叫环绕立体声,多用于影院中。
音频采集和播放
一般用专门的芯片(通常叫codec芯片)采集音频,做a/d转换,然后把数字信号通过i2s总线(主流用i2s总线,也可以用其他总线,比如pcm总线)送给cpu处理(也有的会把codec芯片与cpu芯片集成在一块芯片中)。当要播放时cpu会把音频数字信号通过i2s总线送给codec芯片,然后做d/a转换得到模拟信号再播放出来。这部分对语音和音乐是通用的,只是用的采样率有可能不一样,音乐的采样率用的高一些。
编解码
如果把采样值直接保存或者发送,会占用很大的存储空间或者很大的流量。以16khz采样率16位采样位数单声道为例,一秒钟就有32000(2字节*16000)字节。通常需要把采样后的数字信号压缩后才保存或者发送。把采样值压缩叫编码(encode),形成比特流(bitstream). 把比特流还原出采样值叫解码(decode),统称编解码(codec)。
音频的编解码
通常也把音频采样过程叫脉冲编码调制编码,即pcm(pulse code modulation)编码,采样值也叫pcm值。为了节省保存空间或者发送流量,会对pcm值压缩。
目前主要有三大技术标准组织制定压缩标准:
a)itu,主要制定有线语音的压缩标准(g系列),有g711/g722/g726/g729等。
b)3gpp,主要制定无线语音的压缩标准(amr系列等), 有amr-nb/amr-wb。后来itu吸纳了amr-wb,形成了g722.2。
c)mpeg,主要制定音乐的压缩标准,有11172-3,13818-3/7,14496-3等。
一些大公司或者组织也制定压缩标准,比如ilbc,opus。
无损压缩和有损压缩:把pcm数据压缩后无任何损伤叫无损压缩,不过压缩程度不高。把pcm数据压缩后有损伤叫有损压缩,最多可以压到几十分之一,不过音频质量差些。
音频前后处理
音频处理是指对pcm数据(也叫线性数据)进行处理,从而达到想要的效果,如回声消除。
对音频编码前的pcm数据进行处理叫音频前处理,主要用于语音中,来去除各种干扰,使声音更清晰,主要有回声消除、噪声抑制、增益控制等。
对音频解码后的pcm数据进行处理叫音频后处理,主要用于音乐中,来产生各种音效,使音乐更动听,主要有均衡器、混响等。
音频传输
这里主要是指网络传输,通过网络把音频数据传给对方。语音和音乐两种场景下有明显的区别。
对于语音来说,实时性要求很高,主要用rtp/udp做承载,由于udp是不可靠传输,会丢包乱序等,影响语音质量,所以要采取相应的措施,主要有plc(丢包补偿)、fec(前向纠错)、重传、jitter buffer等。
对于音乐来说,以前是播放本地音乐文件,近些年随着网络带宽的加大,可以播放云端的音乐文件了。播放时要把音乐文件传给播放器,一般是边播放边下载,播放音乐对实时性要求不高,一般用http/tcp做承载,也就不存在丢包乱序等问题了。
在软件实现时,语音的传输要做好是不容易的,尤其在无线网络环境下。个人觉得它是除了音频算法外最难的部分(算法是有门槛的,需要精通数字信号处理)。

AWE 2018电视新品前瞻:外资向左,国产在右
用PAC-Designer 设计滤波器
魅族又将发布魅蓝新机:有点不一样
第九届“医疗器械科技创新奖”总决赛于在杭州国际博览中心召开
2019年的自动驾驶发展会是怎样的
一文读懂音频开发入门基础知识
汽车与电子激荡后的商机
WiFi可以控制窗户透明度 透明度水平随自己心意而定
上网本是要高性能还是要低功耗?
!销售/回收!CMD60 CMD60 综合测试仪 CMD60
如何有效消除蓄电池的硫化现象(三)
大立科技在重点型号高端装备领域的增长可持续性
半导体集成电路非破坏性键合拉力试验原理、程序、失效判据介绍!
华为云耀云服务器 L 实例:中小企业小程序开发的高效解决方案
农研汇总:十项智慧畜牧养殖科研成果,推动养殖智能化
箱式变压器的故障及排除方法
安森美半导体NCL30160和NCL30161驱动器的特性及应用设计
中国移动全面实施“5G+”计划,助力5G高速发展
食品中色素快速检测仪的技术参数
由开关器件的材料变革带来的高压电气部件的能力提升