我们这里所说的音频,是指模拟信号的声音转化成的数字信号。
音频数据所承载的方式最常用的是脉冲编码调制PCM。
声音本身是模拟信号,是一种波,有自己的振幅和频率,PCM将模拟的声音信号转化成数字信号需要进行以下步骤:
模拟信号->采样->量化->编码->数字信号
也就是模拟信号经过一系列变化,转换成一串0和1所组成的数字,整个过程如下图所示:
为了不失真地恢复模拟信号,采样需要遵循奈奎斯特采样定理:采样频率应该不小于模拟信号频谱中最高频率的2倍。
人耳能听到的声音频率范围为20Hz-20kHz,所以采样频率应至少为40kHz,通常采用44.1kHz,更高的通常为48kHz。
采样也就是对波形振幅进行量化。波形振幅在模拟信号上也是连续的样本值,而在数字信号中,信号一般是不连续的,所以模拟信号量化以后,只能取一个近似的整数值,为了记录这些振幅值,采样器会采用一个固定的位数来记录这些振幅值,通常有 8 位、16 位、32 位。位数越多,记录的值精度越高,还原度越高。但是占用的硬盘空间越大。
每一个采样到的数据该表示成什么样一个数字呢,表示成什么数字跟上面提到的采样位数有关系,如果是16位的采样位数,那么采样的数据所表示的范围即[-32768, 32767]。
编码就是对采样到的音频数据进行存储,按照一定的格式记录采样和量化后的数字数据,比如顺序存储或者压缩存储等等。
我们通常所说的音频裸数据就是脉冲编码调制数据,即PCM数据。我们描述PCM数据最常用的几个属性如下:
n 根据人耳能听到的声音频率,通常采用44.1kHz,最高的通常为48kHz。
n 采样数,跟采样率和时间有关系,比如采样率44100Hz,采样时间是1s,那么1s内的采样数就是44100个。
单声道,只能使用一个扬声器发生,或者也可以处理成两个扬声器输出同一个声音,当通过两个扬声器回放单声道信息的时候,可以明显感觉到声音是从两个音响中间传递到我们耳朵的,无法判断声源的位置。
双声道(立体声),就是有两个声音通道,其原理是人们听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果,立体声也可以有更多通道数。
下图是通过MediaInfo查看的MP4文件基本信息
图中可以看出该文件由1路视频流,2路音频流