AMR - 如何上采样
如何对 AMR 音频数据进行上采样。 amr 文件由 6 字节标头组成 - "!#AMR".getBytes(),之后有 32 字节的帧,每个帧有 1 字节标头和 31 字节音频。我应该如何对其进行上采样?我读过有关线性插值的内容,但我不确定如何在这里应用它。 我应该在不同的帧之间或帧中的字节之间或其他内容之间进行插值吗? 任何帮助将不胜感激:)
How can I upsample AMR audio data. The amr file consists of 6 bytes header - "!#AMR".getBytes() and after that there are frames 32bytes each with 1 byte header and 31bytes audio. How am I supposed to upsample it? I read about linear interpolation but I am not sure how to apply it here.
Should I interpolate between different frames or between bytes in a frame or something else?
Any help will be highly appreciated :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要将 AMR 数据转换为原始 PCM 缓冲区,对 PCM 缓冲区进行重采样,然后可以选择转换回 AMR。
You need to convert your AMR data to a raw PCM buffer, do the resampling on the PCM buffer, and then optionally convert back to AMR.
将 AMR 解码为线性 PCM。然后,您可以使用 https://github.com/dataandsignal/libhdsp 对其进行上采样
:完整的代码片段可能看起来像这个:
这是我的一篇文章写了有关使用 libhdsp 进行上采样/下采样和过滤的文章(我是该库的作者):
https://dataandsignal .com/blog/static/audio_upsampling_downsampling_and_filtering_with_libhdsp/
Decode AMR to linear PCM. Then you can upsample it with https://github.com/dataandsignal/libhdsp this way:
A more complete snippet may look like this:
Here is an article I wrote about upsampling / downsampling and filtering using libhdsp (I am author of this lib):
https://dataandsignal.com/blog/static/audio_upsampling_downsampling_and_filtering_with_libhdsp/