2016-01-20 96 views
0

我正試圖創建一個程序來查找用戶添加的.mp3文件的註釋。我到目前爲止是:Java - 從.mp3音頻獲取筆記?

public void audioToNotes(String path){ 
    File f = new File(path); 
    AudioInputStream ais = AudioSystem.getAudioInputStream(f); 
} 

然後我卡住了。 對不起,如果這是一個noob問題,我在這裏學習,而我只是一個初學者。

編輯: 我網上衝浪了一下,發現這個代碼:

AudioInputStream din = null; 
     final AudioFormat baseFormat = in.getFormat(); 
     final AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 
       baseFormat.getSampleRate(), 
       16, 
       baseFormat.getChannels(), 
       baseFormat.getChannels() * 2, 
       baseFormat.getSampleRate(), 
       false); 
+0

你想要音符,就像你想要440赫茲註冊爲A4? MP3文件是純音還是實際音樂?這可能對StackOverflow問題太模糊。 – guitarsteve

+0

你有谷歌嗎?你讀過「mp3格式」嗎? – Andremoniy

+0

例如,用戶給出Darude - Sandstorm的mp3文件或其他東西,並且該程序找到音符。例如:C D E C C F D B – winterfox

回答

2

頻率檢測有沒有直接做的MP3格式。

沒有,我知道,一個API可以讓你做到這

notes = analyze(audioSignal) 

其中票據是音高的集合。

對於週期性波形,您可以對此音頻信號進行FFT。那裏有DSP庫。仍然不是自動的。

N.B.信號處理並不容易,而且涉及到相當多的數學問題。

+0

我從來沒有和那些人一起工作過:你能舉個例子,還是給我提供一個鏈接?這將是非常有用的:) – winterfox

+1

喜歡這個? http://stackoverflow.com/questions/636686/signal-processing-library-in-java – winterfox

+0

我同意!我正在學習電子和信息通信技術,發現這個項目非常困難,特別是對於12年。音調識別本身不應該那麼困難,但是我認爲OP想要讀取mp3並且不用演奏就能得出音符。 –