音频文件是如何记录信息的?

以wav文件为例,我在读写wav文件时发现,音频文件是一系列整数排列成的,为了简化问题,以单通道,2字节长度为例。 我们都知道,声音包括声音的强度、音…
关注者
4
被浏览
2,463
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

声音都可以画成波形,音频文件就是连续的波形变成一个个数据点后记录下来的内容,还包括除波形外的信息。

其中波形的横轴上,我可以每秒钟取n个点,再把这些点的数值记录下来,这样记录下一个个点以后我就可以转换成近似连续的波形,这是音频采样率,单个点就是采样点,常用的有44.1kHz(每秒取44.1k个点),48kHz等等。

其中波形的纵轴上,我也可以用同样的方法,把纵轴化成n个量化级(在纵轴上画n个点),如果这个采样点落在这个量化级的区间内,这个点的值就是它(假如两个值是0.50000001和0.50000002,完全可以记成0.5,这相差的0.00000001在实际上根本听不出来,记下它也毫无意义)。这是波形的量化,是波形的位深度,常见的有16bit,24bit等,16bit代表纵轴被分成了2的16次方个量化级,24bit就是2的24次方个量化级。如果位深度太小,记录的波形就会失真,并且带有明显的量化噪声,16bit是常用的,可以完整记录波形并且听不出量化噪声的位深度。但是每个区间的大小不是完全平均的,现在有非线性量化技术,波形平缓的地方区间宽度就较大,陡峭的地方区间宽度就较窄,这样可以更完美的记录波形,量化噪声也会更小。

就这样通过采样和量化,记录下了音频的基本数据。但音频文件还能储存波形以外的数据,不同格式的音频文件在编码储存上也有些差别,详细可以自己了解下音频编码。