我想对Mp3文件进行傅里叶变换。首先,我使用AudioInputStream
读取该文件,然后转换为必需的音频格式,
AudioFormat decodedFormat = newAudioFormat(AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
它给了我一个非常庞大的数组字节。现在将这个字节数组分成小块(4096字节)并将其传递给傅立叶变换函数并继续整个数组。这个过程减慢了我的系统。它需要15分钟来处理一首mp3歌曲。那我怎么能解决这个问题呢? 我正在使用此代码进行傅立叶变换 - http://introcs.cs.princeton.edu/java/97data/FFT.java.html
答案 0 :(得分:1)
如果需要900秒(15分钟)来生成9000个具有4k点的FFT(即每个FFT 100ms),那么您的FFT实现就会被破坏。
您需要找到(更高效)FFT实现。