我已经使用了几个音频程序,如SDL混音器,大胆等等,但我想看看这些小音频玩具里面有什么.如何处理音频数据等.我还看到了一些void*用于音频数据的C++ MP3播放器的示例代码.
但所有这些并不能帮助我理解音频在计算机中的工作原理.那么有人可以向我解释(或介绍一些书籍)关于计算机如何存储和处理数字音频数据的问题?(例如,如果将三角波形存储到.wav文件中,该波形如何存储为位模式?)
Jam*_*ook 11
如何表示波形
有关如何在Audacity手册中表示音频的更详细说明:

...每条垂直线的高度表示为带符号的数字.
更多关于数字音频
您可能会注意到所有这些链接都来自Audacity项目.这不是巧合.
数字音频存储为一系列数字,称为样本.例:
5,18,6,-4,-12,-3,7,14,4
将这些数字绘制为笛卡尔图上的点:样本值确定沿Y轴的位置,样本的序列号(0,1,2,3等)确定沿X轴的位置.
现在在您刚绘制的点上追踪一条线.
恭喜,您刚刚渲染了数字音频的波形.:-)
Y轴是幅度,X轴是时间.
"采样率"确定回放设备(例如声卡)在样本中前进的速度.这是样本的"时间价值".例如,CD质量数字音频每秒遍历44,100个样本,读取每个采样点的幅度(Y轴值).
†上面的讨论忽略了压缩.压缩几乎没有改变数字音频的本质.就像压缩位图图像一样,不会改变位图图像的核心特性.(音频压缩的主题很丰富 - 我并不是要过度简化它,只是所有压缩音频在渲染之前最终都是未压缩的 - 即,作为可听声音播放或绘制为波形 - 在哪一点压缩起源的后果不大.)
以你的WAV文件为例:
WAV文件将有一个标题,它为播放器或音频处理器指定关于通道数,采样率,位深度,数据长度等的关键信息.标题出现之后是原始位模式,它存储音频样本(我假设您知道什么是抽样 - 如果没有,请参阅维基百科.每个样本由多个字节组成(在标题中指定),并指定任何给定时间点的波形幅度.每个样本都可以以有符号或无符号的形式存储(也在标题中指定).
你可以从Lothar Reichel 那里阅读这个讲座,在那里他解释了一下"数字音频压缩"这个主题,并发布了一些Matlab代码:
声音是一个复杂的现象.它通常由空气(或其他介质)中的移动物体引起,例如前后移动的扬声器锥体.这种运动反过来导致气压变化,像池塘中的波浪一样穿过空气.我们的耳膜将压力变化转化为我们的大脑处理为声音的现象.
计算机使用麦克风而不是耳膜"听到"声音.麦克风将压力变化转换成电势,其幅度对应于压力的强度.然后,计算机使用称为采样的技术处理电信号.计算机通过定期测量其振幅来对信号进行采样,通常为每秒44,100次.每个测量值都以固定精度存储,通常为16位.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
10414 次 |
| 最近记录: |