2012-12-19 155 views
2

我正在做一個應用程序,我想檢測聲音頻率。如何檢測狗聲等特定聲音的頻率?有人有教程或一些示例代碼嗎?如何檢測iPhone中特定聲音的聲音頻率?

+3

狗吠沒有特定的*頻率* - 它有一個複雜的時變*頻譜*。 –

+0

您的權利,但如何比較兩個聲音是相同的 – Deepak

+0

這是一個非常複雜的主題 - 您通常將聲音轉換到頻域,然後執行特徵提取,以便您可以比較傳入聲音的特徵與參考特徵數據庫。 –

回答

0

要檢測頻率,可以使用基音檢測算法,如FFT。

這裏瞭解更多:http://en.wikipedia.org/wiki/Pitch_detection_algorithm

你可以看一下這個項目工作的源代碼,iOS設備上使用FFT算法來檢測頻率: https://github.com/hollance/SimonSings

+0

下面是一個更精簡的FFT音高跟蹤示例,附有教程說明:http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html –

+0

FFT是一個天真檢測音高的方法:即使您在頻域中發現全局最大值,仍可能是諧波。 –

+0

@ValentinRadu你是對的。 FFT只是其中一種方式,而不是最好的。 –

2

檢測單一頻率,甚至是計算一個FFT ,並不是一種可靠的方法,可以將狗皮與其他常見音量區分開來。

什麼可能工作是使用MFCC的聲音指紋分析,然後統計模式匹配足夠大的「狗」聲音數據庫。一些指向所需信號處理類型的指針可能會在這裏得到解答:Music Recognition and Signal Processing

這是非平凡的東西,比任何簡短的教程更適合多個大學教科書章節。