2012-04-07 128 views
0

我正在爲Android創建一個應用程序,它將保存用戶的語音命令,然後在應用程序運行時;將麥克風輸入的實時數據與保存的數據進行比較。到目前爲止,我已經在wav文件中保存了聲音,現在我想將其與輸入流進行比較。我已經使用這個API,因爲它與Android兼容應用FFT:使用FFT比較兩個音頻文件,然後進行實時比較

http://code.google.com/p/musicg/

我不知道太多關於這個API要麼但是,我認爲FFT數據存儲在FrequencyTimeDomainRepresentation對象。我在互聯網上搜索,發現我必須使用一個窗口來比較數據,但我無能爲力。 我不知道如何比較數據。

請告訴我如何比較FFT數據,以及如何將保存的文件數據與輸入流數據相匹配,我的意思是代碼。同時,我正試圖比較兩個使用java的音頻文件,而不是現在的android。

任何幫助,將不勝感激, 謝謝。

+2

您需要了解信號處理,因爲這個問題對於SO來說太廣泛了。 – 2012-04-07 22:10:08

回答

0

正如在評論中提到的,這是一個dsp相關的問題。您應該在dspexchange詢問詳細信息。

但給你一個quick'n'dirty的答案。準確定義你的algortihm應該做什麼。它應該做語音識別嗎?如果你只是想有一個簡單的衡量方法使用互相關(問谷歌)。你也不需要FFT(最近FFT似乎被過度使用,每個人都不知道自己在做什麼)。一旦你知道你想要做什麼,並且你知道你真的需要它,FFT可能會起作用;也許是爲了應用一些心理模型。但即使如此,一個簡單的哈勃變換可能會更充分,更簡單,更快速,特別是在移動設備上。