2011-03-06 46 views
1

如何上采样AMR音频数据。 amr文件由6个字节的头部 - “!#AMR”.getBytes()组成,之后有32bytes的帧,每个帧包含1个字节的头部和31个字节的音频。我应该怎样升级它?我读到了线性插值,但我不知道如何在这里应用它。 我应该在不同的帧之间插入还是在帧中的字节之间插入? 任何帮助将不胜感激:)AMR - 如何上采样

回答

1

您需要将AMR数据转换为原始PCM缓冲区,对PCM缓冲区进行重新采样,然后可选择将其转换回AMR。

+0

所以不可能直接上采样amr?那很糟。你可以给我一些关于如何上取样pcm的资料,也许可以提供pcm数据的结构?谢谢。 – 2011-03-06 18:45:46

+0

@gosho:PCM数据是一个连续的线性采样值的原始缓冲区。您可以将任何标准上采样算法应用于此数据,然后您将拥有更大的输出缓冲区,您可以将其转换回AMR数据。我想知道:你真的是指* upsample *?上采样意味着提高采样率,同时保留原始采样数据 - 这真的是你想要做的吗?在AMR数据的背景下,这似乎没有多大意义? – 2011-03-06 19:00:55

+0

@Paul R嗯,这是我的事情。我正在为移动设备制作voip应用程序,并从一台设备捕获AMR音频,将其封装在数据报中并发送到播放它的其他设备。我的问题是音频播放器有一些内部缓冲区(无法控制),在播放音频之前需要填充该缓冲区。这会导致2秒的延迟,其余的代码(网络和其他东西)足够快。所以我的想法是上样(在接收设备上),从而为玩家的缓冲区创建更多数据。在这里上升采样是一个好方法。 – 2011-03-06 19:16:10