我使用过多种音频程序,例如 SDL Mixer、Audacity 等,但我想看看这些小音频玩具里面有什么。音频数据如何处理等等。我还看到了它使用的 C++ MP3 播放器的一些示例代码void*
对于音频数据。
但所有这些并不能帮助我总体了解音频在计算机中的工作原理。那么有人可以向我解释(或向我介绍一些书籍)计算机如何存储和处理数字音频数据吗? (例如,如果将三角波形存储到 .wav 文件中,该波形如何存储为位模式?)
数字音频存储为一系列数字,称为样本。例子:
5、18、6、-4、-12、-3、7、14、4
如果将这些数字绘制为笛卡尔图上的点:样本值确定沿 Y 轴的位置,样本的序列号(0、1、2、3 等)确定沿 X 轴的位置。 X 轴只是一条单调递增的数轴。
现在,通过刚刚绘制的点绘制一条线。
恭喜,您刚刚渲染了数字音频的波形。 :-)
Y 轴是幅度,X 轴是时间。
“采样率”决定播放设备(例如声卡)在采样中前进的速度。这是样本的“时间价值”。例如,CD 质量的数字音频每秒遍历 44,100 个样本,读取每个样本点的幅度(Y 轴值)。
† 上面的讨论忽略了压缩。压缩对数字音频的本质变化不大。就像压缩位图图像一样,不会改变位图图像的核心性质。 (音频压缩的主题是一个丰富的主题 - 我并不是想过度简化它,只是所有压缩的音频最终在渲染之前都会被解压缩 - 也就是说,作为可听声音播放或绘制为波形 - 在从这一点来看,它的压缩起源并不重要。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)