1

我正在制作一款 Iphone 游戏,我们需要对声音使用压缩格式,并且我们希望能够无缝地循环回音频文件中的特定样本(所以有一个介绍,然后它循环回一个偏移量)

目前我发现的唯一一个允许无缝循环的导出过程(报告正确的启动和填充帧号,循环时没有点击等)正在使用苹果的 afconvert 到 caf 文件中的 aac 格式。

但是当我们尝试编码以降低比特率时,它会自动重新采样声音!我们不想对声音进行重新采样,我遇到的每个其他编码器都有一个设置输出采样率的选项,但我找不到这个。

另一方面,如果有人在使用音频队列无缝循环压缩文件格式方面有任何运气,请告诉我。

目前我正在处理在以下位置找到的信息:

http://developer.apple.com/mac/library/qa/qa2009/qa1636.html

请注意,当我将编码的比特率保留为默认值(~128kbs)但当我将其设置为 32kbps(使用 -b 选项)时,它确实可以正常工作 - 它重新采样,并且现在循环点击。

4

2 回答 2

1

它需要至少为 48kbps。32kbps 将下采样到较低的采样率。

于 2011-09-30T16:03:56.480 回答
0

我认为您混淆了采样率(典型值:32kHz、44.1kHz、48kHz)和比特率(典型值:128kbps、160kbps、192kbps)。

对于比特率,32kbps 非常低。在此比特率下,声音质量会很差。您可能打算将采样率设置为 32kHz,这也不是典型的,但更有意义。

压缩为 AAC 并解压缩回 WAV 时,您将不会得到相同的音频文件,因为在 AAC 中,音频数据以与原始波形完全不同的格式表示。例如,您可以进行几微秒的转换,这是转换为压缩格式所必需的。任何高度压缩的格式都无法完全解决这个问题。

咔嚓声来源于两个连续播放的样本之间的突然变化。这很可能会发生,因为您在循环中跳回的偏移量最终在 AAC 文件中的位置与在 WAV 文件中的位置不同(如上所述,可能会有微秒的偏移)。

压缩时您将无法绕过这些细微的变化。相反,您必须在压缩后通过调整偏移量来补偿它们。这意味着您必须在音频编辑器(例如 Audacity)中打开压缩的声音文件,然后手动找到另一个接近原始偏移量的偏移量,该偏移量适合循环播放。

如何找到适合循环的偏移量?

放大到波形的末端。看看那里的波形如何。然后放大原始偏移处的波形并在其附近搜索波形无缝连接到波形末端的偏移。

例如,这应该是什么样子,在音频编辑器中打开未压缩的音频文件并检查波形的结尾和那里的偏移量。

于 2014-02-25T14:33:22.170 回答