Java 阅读并理解Android上AMR文件的内容

Java 阅读并理解Android上AMR文件的内容,java,android,audio,signal-processing,Java,Android,Audio,Signal Processing,我想打开一个AMR文件,以便对内容执行信号处理算法(例如:音高是多少?)。我知道你可以在媒体播放器中打开这些文件,但我想得到文件的实际内容 有一次我打印了内容,得到了一堆整数,但不知道它们的意思 非常感谢您的帮助。谢谢 听起来你似乎能够获取数据,但对音频信号处理的基础知识却知之甚少 您正在查看的数据可能是需要转换为PCM(脉冲编码调制)的原始字节。Java讨论了由特定格式确定的字节与PCM的关系 例如,如果格式指定16位编码,则两个字节(每个字节为8位)将被串联以形成单个PCM值,范围从-327

我想打开一个AMR文件,以便对内容执行信号处理算法(例如:音高是多少?)。我知道你可以在媒体播放器中打开这些文件,但我想得到文件的实际内容

有一次我打印了内容,得到了一堆整数,但不知道它们的意思


非常感谢您的帮助。谢谢

听起来你似乎能够获取数据,但对音频信号处理的基础知识却知之甚少

您正在查看的数据可能是需要转换为PCM(脉冲编码调制)的原始字节。Java讨论了由特定格式确定的字节与PCM的关系

例如,如果格式指定16位编码,则两个字节(每个字节为8位)将被串联以形成单个PCM值,范围从-32767到32767。(有些人直接使用这些数字,另一些人将数字缩放为-1到1之间的浮动)

如果文件为44100 fps,则每秒将有44100“帧”的数据,其中帧很可能是单声道或立体声(每帧一个PCM或两个PCM值)

本教程确实很快就涉及到了Java的细节,但至少它给出了一个基本的图片,您将有更多的术语用于搜索更特定于Android的内容

如果你想更深入或更详细,你可以咨询史蒂夫·史密斯。这是一本免费的在线书,我发现它非常有用