音频基础
声音
声音是波,靠物体的振动产生
声波的三要素,是频率,振幅,波形.频率代表音阶的高低,振幅代表响度,波形则代表音色.
-
频率越高,波长就会越短.而低频声响的波长则较长.所以这样的声音更容易绕过障碍物,能量衰减就越小.声音就会传播的越远.
-
响度,就是能量大小的反馈.用不同的力度敲打桌面,声音的大小势必发生变换.在生活中,我们用分贝描述声音的响度.
-
音色,在同样的频率和响度下,不同的物体发出的声音不一样.比如钢琴和古筝声音就完全不同.波形的形状决定了声音的音色.因为不同的介质所产生的波形不同.就会产生不一样的音色.
数字音频
将模拟信号转换为数字信号的过程,分别是采样,量化和编码.
音频采样
对模型信号进行采样,采样可以理解为在时间轴上对信号进行数字化. 而,根据奈斯特定理(采样定理),按比声音最高频率高2倍以上的频率对声音进行采样.这个过程称为AD转换.
比如,前面提到高质量音频信号,其频率范围是20Hz-20KHz.所以采样频率一般是44.1KHz.这样可以保证采样声音达到20KHz也能被数字化.而且经过数字化处理后的声音,音质也不会降低.44.1KHZ,指的是1秒会采样44100次.
量化
量化,指的是在幅度轴上对信号进行数字化.简单的说,就是声音波形的数据是多少位的二进制数据,通常用bit做单位.比如16比特的二进制信号来表示声音的一个采样.它的取值范围[-32768,32767].一共有65536个值.如16bit、24bit。16bit量化级记录声音的数据是用16位的二进制数,因此,量化级也是数字声音质量的重要指标。我们形容数字声音的质量,通常就描述为24bit(量化级)、48KHz采样,比如标准CD音乐的质量就是16bit、44.1KHz采样.
编码
编码: 按照一定格式记录采样和量化后的数据.
音频编码的格式有很多种,而通常所说的音频裸数据指的是脉冲编码调制(PCM)数据.
如果想要描述一份PCM数据,需要从如下几个出发:
-
量化格式(sampleFormat)
-
采样率(sampleRate)
-
声道数(channel)
举例:
以CD音质为例,量化格式为16bite,采样率为44100,声道数为2.这些信息描述CD音质.那么可以CD音质数据,比特率是多少? 44100 * 16 * 2 = 1378.125kbps
那么一分钟的,这类CD音质数据需要占用多少存储空间? 1378.125 * 60 /8/1024 = 10.09MB
如果sampleFormat更加精确或者sampleRate更加密集,那么所占的存储空间就会越大,同时能够描述的声音细节就会更加精确.
存储在这些二进制数据即可理解为将模型信号转化为数字信号.那么转为数字信号之后,就可以对这些数据进行存储\播放\复制获取其他任何操作.
音频压缩
压缩的本质
压缩编码的原理实际上就是压缩冗余的信号.冗余信号就是指不能被人耳感知的信号.包括人耳听觉范围之外的音频信号以及被掩盖掉的音频信号.
人耳掩盖效应
-
主要表现在频域掩盖效应与时域掩盖效应.无论是在时域还是频域上,被掩盖掉的信息都认为是冗余信息,不进行编码处理
-
掩蔽效应指人的耳朵只对最明显的声音反应敏感,而对于不明显的声音,反应则较不为敏感。例如在声音的整个频率谱中,如果某一个频率段的声音比较强,则人就对其它频率段的声音不敏感了。应用此原理,人们发明了mp3等压缩的数字音乐格式,在这些格式的文件里,只突出记录了人耳朵较为敏感的中频段声音,而对于较高和较低的频率的声音则简略记录,从而大大压缩了所需的存储空间。在人们欣赏音乐时,如果设备对高频响应得比较好,则会使人感到低频响应不好,反之亦然。
常用压缩编码格式
WAV编码
WAV编码的一种实现方式(其实它有非常多实现方式,但都是不会进行压缩操作).就是在源PCM数据格式的前面加上44个字节.分别用来描述PCM的采样率,声道数,数据格式等信息.
-
特点: 音质非常好,大量软件都支持其播放
-
适合场合: 多媒体开发的中间文件,保存音乐和音效素材
MP3编码
MP3编码具有不错的压缩比,而且听感也接近于WAV文件,当然在不同的环境下,应该调整合适的参数来达到更好的效果.
-
特点: 音质在128Kbit/s以上表现不错,压缩比比较高.大量软件和硬件都支持.兼容性高.
-
适合场合: 高比特率下对兼容性有要求的音乐欣赏.
AAC编码
AAC是目前比较热门的有损压缩编码技术,并且衍生了LC-AAC,HE-AAC,HE-AAC v2 三种主要编码格式.
-
LC-AAC 是比较传统的AAC,主要应用于中高码率的场景编码(>= 80Kbit/s)
-
HE-AAC 主要应用于低码率场景的编码(<= 48Kbit/s)
-
特点:在小于128Kbit/s的码率下表现优异,并且多用于视频中的音频编码
-
适合场景:于128Kbit/s以下的音频编码,多用于视频中的音频轨的编码
Ogg编码
Ogg编码是一种非常有潜力的编码,在各种码率下都有比较优秀的表现.尤其在低码率场景下.Ogg除了音质好之外,Ogg的编码算法也是非常出色.可以用更小的码率达到更好的音质.128Kbit/s的Ogg比192Kbit/s甚至更高码率的MP3更优质.但目前由软件还是硬件支持问题,都没法达到与MP3的使用广度.
-
特点:可以用比MP3更小的码率实现比MP3更好的音质,高中低码率下均有良好的表现,兼容不够好,流媒体特性不支持.
-
适合场景:语言聊天的音频消息场景