一、数字音频
自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过采样、量化和编码三个步骤将连续变化的模拟信号转换为数字编码,即模拟信号数字化
1、采样
采样就是在时间轴上对信号进行数字化,即对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。
根据采样定理,按比声音最高频率高两倍以上的频率对声音进行采样,对于高质量的音频信号,其频率范围(人耳能听到的频率范围)是20Hz-20kHz,所以采样频率一般为44.1kHz,代表1秒会采样44100次
2、量化
量化是指在幅度轴上对信号进行数字化,用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。
比如用16比特的二进制信号来表示声音的一个采样,则共有65536个可能取值,因此最终模拟的音频信号在幅度上也分为了65536层
3、编码
编码就是按照一定格式记录采样和量化后的数字数据。
这涉及到了很多种格式,通常所说的音频的裸数据格式就是脉冲编码调制(PCM)数据。描述一段PCM
数据一般需要以下几个概念:量化格式、采样率、声道数。比如量化格式为16
比特(2
字节),采样率为44100
,声道数为2
,这些数据就描述了音质
而对于声音格式,可以用数据比特率来描述其大小,即1s时间内的比特数,它用于衡量音视频数据单位时间内的容量大小
44100 x 16 x 2 = 1378.125kbps
则一分钟该音质的数据占用的存储空间则为:
1378.25 x 60 / 8 / 1024 = 10.09MB
所以一首无损音质的歌往往有几十M
麦克风是如何采集声音的?
麦克风里面有一层
碳膜
,非常薄并且十分敏感。声音实际是一种纵波,会压缩空气也会压缩这层碳膜,碳膜在收到挤压时也会发出振动,在碳膜的下方就是一个电极,碳膜在振动时会接触电极,接触时间的长短和频率与电波的振动幅度
和频率
有关,这就完成了声音信号
到电信号
的转换,之后在经过放大电路处理,就可以实施后面的采样量化编码
了。
二、音频编码
上边说到一分钟的音频数据就有10M,这个数据量要想在网络中在线传播的话,就必须对其进行压缩编码。
压缩编码的基本指标之一就是压缩比,压缩比通常小于1。压缩算法包括有损压缩和无损压缩。
- 无损压缩是指解压后的数据可以完全复原。
- 有损压缩是指解压后的数据不能完全复原,会丢失一部分信息,压缩比越小,丢失的信息就越多,信号还原后的失真就越大。
在实际应用中,有损压缩用的更多.
可以选用不同的压缩编码算法,比如PCM、WAV、AAC、MP3、Ogg
压缩编码的原理实际上就是压缩冗余的信号.冗余信号就是指不能被人耳感知的信号.包括人耳听觉范围之外的音频信号以及被掩盖掉的音频信号
1、WAV编码
WAV编码的一种实现方式就是在源PCM数据格式的前面加上44个字节.分别用来描述PCM的采样率,声道数,数据格式等信息
- 特点:音质非常好,大量软件都支持
- 适合场合:多媒体开发的中间文件,保存音乐和音效素材
2、MP3编码
MP3编码具有不错的压缩比,使用LAME编码(MP3编码格式的一种实现)的中高码率的MP3文件,听感非常接近于源WAV文件,当然在不同的环境下,应该调整合适的参数来达到更好的效果.
- 特点:音质在128Kbit/s以上表现不错,压缩比比较高.大量软件和硬件都支持.兼容性好
- 适合场合:高比特率下对兼容性有要求的音乐欣赏
3、AAC编码
AAC是新一代的有损压缩编码技术,它通过一些附加的编码技术(比如PS、SBR等),衍生出了LC-AAC、HE-AA、HE-AAC v2三种主要编码格式.
- LC-AAC 是比较传统的AAC,主要应用于中高码率的场景编码(>= 80Kbit/s)
- HE-AAC(相当于AAC+SBR) 主要应用于中低码率场景的编码(<= 80Kbit/s)
- HE-AAC v2(相当于AAC+SBR+PS) 主要应用于低码率场景的编码(<= 48Kbit/s)
事实上,大部分编码器都设置为<=48Kbit/s自动启用PS技术,而大于48Kbit/s则不加PS,相当于普通HE-AAC
- 特点:在小于128Kbit/s的码率下表现优异,并且多用于视频中的音频编码
- 适合场景:128Kbit/s以下的音频编码,多用于视频中的音频轨的编码
4、Ogg编码
Ogg编码是一种非常有潜力的编码,在各种码率下都有比较优秀的表现.尤其在中低码率场景下.Ogg除了音质好之外,还是完全免费的。此外Ogg有着非常出色的算法,可以用更小的码率达到更好的音质。128Kbit/s的Ogg比192Kbit/s甚至更高码率的MP3还要出色。但目前因为还没有媒体服务软件的支持,因此基于Ogg的数字广播还无法实现。Ogg目前受支持的情况还不够好,无论是软件上的还是硬件上的支持,都远无法与MP3相提并论
-特点:可以用比MP3更小的码率实现比MP3更好的音质,高中低码率下均有良好的表现,兼容不够好,流媒体特性不支持。
-适合场景:语言聊天的音频消息场景