我想打开一个AMR文件,以便可以对内容执行信号处理算法(例如,音高是多少?)。我知道您可以在媒体播放器中打开这些文件,但是我想获取文件的实际内容。
有一次我打印了内容并得到了一堆整数,但不知道它们是什么意思。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
听起来像您能够获取数据,但对音频信号处理的基础知识一无所知。
您正在查看的数据可能是需要转换为PCM(脉冲代码调制)的原始字节。 Java Overview of the Sampled Package讨论了由特定格式确定的字节与PCM的关系。
例如,如果格式指定16位编码,则将两个字节(每个为8位)串联在一起,以形成一个范围从-32767到32767的PCM值。(有些人直接使用这些数字,其他则将数字缩放为-1到1)。
如果文件为44100 fps,则每秒将有44100个“帧”数据,其中该帧很可能是单声道或立体声(每帧一个PCM或两个PCM值)
该教程确实很快地涉及到Java细节,但是至少它给出了基本的图片,您将有更多的术语可用于搜索更特定于Android的内容。
如果您想更深入或更详细地讲,可以咨询史蒂夫·史密斯的The Scientist and Engineer's Guide to Digital Signal Processing。这是一本免费的在线图书,我发现它非常有帮助。