我完成了從音頻文件中查找PCM數據的代碼。我應該如何將這些數據應用於快速傅里葉變換算法?在將字節數組應用到FFT算法之前是否還有更多的事情需要考慮。將WAVE PCM字節數組傳遞給FFT以進行音高檢測
public static void main(String[] args) throws FileNotFoundException, IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedInputStream in = new BufferedInputStream(new FileInputStream("adios.wav"));
int read;
byte[] buff = new byte[1024];
while ((read = in.read(buff)) > 0)
{
out.write(buff, 0, read);
}
out.flush();
byte[] audioBytes = out.toByteArray();
for(int i=0; i<audioBytes.length;i++){
System.out.println(audioBytes[i]);
}
}
第一:使用該代碼,您剛剛將adios.wav的內容存儲到數組中,但這並不意味着您已成功將該文件轉換爲數組數組。要做到這一點,您需要先讀取文件頭,然後使用頭數據類型(int,float,8 -16位)和最終壓縮來相應地解碼文件內容。其次,你想使用哪個FFT類?嘗試先使用它,然後告訴我們它是如何出錯的(如果是的話)。 – lCapp 2014-09-03 10:29:59