我已经使用了几个音频程序,如SDL mixer,audacity等,但我想看看这些小音频玩具里面是什么。音频数据是如何处理的等等。我还看过C++中的MP3播放器的一些示例代码,它使用void*存储音频数据。
但所有这些都不能帮助我从总体上理解音频在计算机中的工作原理。那么谁能给我解释一下(或者给我介绍几本书)关于计算机是如何存储和处理数字音频数据的?(例如,如果将一个三角形波形存储到.wav文件中,如何将此波形存储为位模式?)
发布于 2011-03-27 04:12:56
波形的表示方式
关于音频在中的表示方式,有更详细的解释:

每条垂直线的...the高度用带符号的数字表示。
关于数字音频的详细信息
您可能会注意到,所有这些链接都来自Audacity项目。这不是巧合。
发布于 2011-03-27 02:21:21
数字音频存储为一系列数字,称为样本。示例:
5、18、6、-4、-12、-3、7、14、4
如果将这些数字绘制为笛卡尔图上的点:采样值确定沿Y轴的位置,样本的序列号(0、1、2、3等)确定沿X轴的位置。X轴只是一条单调递增的数字线。
现在,在您刚刚绘制的点之间画一条线。
恭喜,您刚刚渲染了数字音频的波形。:-)
Y轴是振幅,X轴是时间。
“采样率”决定播放设备(例如声卡)在采样中前进的速度。这是样本的“时间值”。例如,CD质量数字音频每秒遍历44,100个采样,读取每个采样点的振幅(Y轴值)。
†上面的讨论忽略了压缩。压缩几乎不会改变数字音频的本质。就像压缩位图图像不会改变位图图像的核心性质一样。(音频压缩是一个丰富的主题-我不是想把它过于简单化,只是所有压缩的音频最终都是在它被呈现之前解压缩的--也就是说,作为可听的声音播放或作为波形绘制--在这一点上,它的压缩来源几乎没有什么影响。)
发布于 2011-03-27 01:44:36
以您的WAV文件为例:
WAV文件将有一个头文件,它向播放器或音频处理器指定关于通道数、采样率、位深度、数据长度等的关键信息。在头文件之后是原始的位模式,它存储音频样本(我假设你知道什么是采样-如果不知道,请参阅维基百科)。每个样本由多个字节(在标题中指定)组成,并指定波形在任何给定时间点的振幅。每个样本都可以以签名或未签名的形式存储(也可以在标题中指定)。
https://stackoverflow.com/questions/5444020
复制相似问题