首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机如何处理音频数据?

计算机如何处理音频数据?
EN

Stack Overflow用户
提问于 2011-03-27 01:37:28
回答 4查看 12.8K关注 0票数 19

我已经使用了几个音频程序,如SDL mixer,audacity等,但我想看看这些小音频玩具里面是什么。音频数据是如何处理的等等。我还看过C++中的MP3播放器的一些示例代码,它使用void*存储音频数据。

但所有这些都不能帮助我从总体上理解音频在计算机中的工作原理。那么谁能给我解释一下(或者给我介绍几本书)关于计算机是如何存储和处理数字音频数据的?(例如,如果将一个三角形波形存储到.wav文件中,如何将此波形存储为位模式?)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-27 04:12:56

波形的表示方式

关于音频在中的表示方式,有更详细的解释:

每条垂直线的...the高度用带符号的数字表示。

关于数字音频的详细信息

  • Audacity维基上有一些关于的信息。如果在Audacity中有一个特定的音频效果,你想了解更多,但还没有涉及到,你可以在那里留下一个问题。
  • 如果您正在查看源代码,是一个很好的起点。
  • 有关数字音频的更多信息,请单击上您感兴趣的链接的维基百科按钮。该页面底部的页面对于深入研究不同的音频文件格式特别有用。

您可能会注意到,所有这些链接都来自Audacity项目。这不是巧合。

票数 13
EN

Stack Overflow用户

发布于 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轴值)。

†上面的讨论忽略了压缩。压缩几乎不会改变数字音频的本质。就像压缩位图图像不会改变位图图像的核心性质一样。(音频压缩是一个丰富的主题-我不是想把它过于简单化,只是所有压缩的音频最终都是在它被呈现之前解压缩的--也就是说,作为可听的声音播放或作为波形绘制--在这一点上,它的压缩来源几乎没有什么影响。)

票数 12
EN

Stack Overflow用户

发布于 2011-03-27 01:44:36

以您的WAV文件为例:

WAV文件将有一个头文件,它向播放器或音频处理器指定关于通道数、采样率、位深度、数据长度等的关键信息。在头文件之后是原始的位模式,它存储音频样本(我假设你知道什么是采样-如果不知道,请参阅维基百科)。每个样本由多个字节(在标题中指定)组成,并指定波形在任何给定时间点的振幅。每个样本都可以以签名或未签名的形式存储(也可以在标题中指定)。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5444020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档