我正在分析音乐 mp3 文件。我正在做的是从文件中提取音频数据并计算音乐相似度。
我一直在使用 javazoom 来处理 mp3 文件。通过使用 audioFormat 我从 mp3 文件中提取原始数据:
byte[] audioBytes = new byte[numBytes];
in_format_init = AudioSystem.getAudioInputStream(musicFile);
AudioFormat formatInit = in_format_init.getFormat();
AudioFormat formatFinal = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
formatInit.getSampleRate(),
16,
formatInit.getChannels(),
formatInit.getChannels()*2,
formatInit.getSampleRate(),
false);
AudioInputStream streamIn = AudioSystem.getAudioInputStream(formatFinal, in_format_init);
while (((numBytesRead = streamIn.read(audioBytes)) != -1))
{...}
通过这样做,我将音频数据(没有标题或标签)存储在 audioBytes 中,然后处理存储在数组中的信息。
我的问题是:是否可以从 mp3 音频文件中提取音频信息并像我在示例中那样存储它?我一直在阅读有关 JMF 的信息,但这让我感到困惑。
谢谢。