在 Android 上阅读并理解 AMR 文件的内容
Read and understand contents of AMR file on Android
我想打开一个 AMR 文件,以便对内容执行信号处理算法(例如:音高是多少?)。我知道您可以在媒体播放器中打开这些文件,但我想获取文件的实际内容。
有一次我打印了内容并得到了一堆整数,但不知道它们是什么意思。
非常感谢任何帮助。谢谢!
听起来你能拿到数据,但对音频信号处理的基础知识却不是很了解。
您正在查看的数据可能是需要转换为 PCM(脉冲编码调制)的原始字节。 Java Overview of the Sampled Package 讨论了由特定格式确定的字节与 PCM 的关系。
例如,如果格式指定 16 位编码,则两个字节(每个字节为 8 位)将连接起来形成一个 PCM 值,范围从 -32767 到 32767。(有些人直接使用这些数字,其他人将数字缩放为范围从 -1 到 1 的浮点数)。
如果文件是 44100 fps,那么每秒将有 44100 "frames" 数据,其中帧很可能是单声道或立体声(每帧一个 PCM 或两个 PCM 值)
该教程确实很快进入了 Java 细节,但至少它给出了一个基本的画面,您将有更多的术语可用于搜索更具体到 Android 的内容。
如果您想更深入或更详细地了解,可以参考 Steve Smith 的 The Scientist and Engineer's Guide to Digital Signal Processing。这是一本免费的在线书籍,我发现它非常有用。
我想打开一个 AMR 文件,以便对内容执行信号处理算法(例如:音高是多少?)。我知道您可以在媒体播放器中打开这些文件,但我想获取文件的实际内容。
有一次我打印了内容并得到了一堆整数,但不知道它们是什么意思。
非常感谢任何帮助。谢谢!
听起来你能拿到数据,但对音频信号处理的基础知识却不是很了解。
您正在查看的数据可能是需要转换为 PCM(脉冲编码调制)的原始字节。 Java Overview of the Sampled Package 讨论了由特定格式确定的字节与 PCM 的关系。
例如,如果格式指定 16 位编码,则两个字节(每个字节为 8 位)将连接起来形成一个 PCM 值,范围从 -32767 到 32767。(有些人直接使用这些数字,其他人将数字缩放为范围从 -1 到 1 的浮点数)。
如果文件是 44100 fps,那么每秒将有 44100 "frames" 数据,其中帧很可能是单声道或立体声(每帧一个 PCM 或两个 PCM 值)
该教程确实很快进入了 Java 细节,但至少它给出了一个基本的画面,您将有更多的术语可用于搜索更具体到 Android 的内容。
如果您想更深入或更详细地了解,可以参考 Steve Smith 的 The Scientist and Engineer's Guide to Digital Signal Processing。这是一本免费的在线书籍,我发现它非常有用。