2013-02-28 50 views
0

作爲機器學習的教育項目,我正在考慮從頭開始創建語音識別系統。它應該能夠在先前用他/她的聲音訓練之後從他/她的聲音中識別發言者。使用機器學習創建語音識別系統

我應該採取什麼方法來應對這一挑戰?具體來說,這樣一個系統如何在高層次上工作?

任何意見,將不勝感激:)

回答

2

要使用的機器學習算法,你必須首先定義你要養活它的功能。

要做的最簡單的事情就是計算音頻信號的傅里葉變換(使用任何你想要的FFT工具,它非常標準),並用頻率和振幅信息構建一個特徵向量。

如果還不夠,可以使用光譜圖添加時間信息。

一旦功能設置正確,您就可以開始使用您喜歡的分類算法!

如果您使用Python,我發現這個問題,說明如何做FFT部分: FFT for Spectrograms in Python

+0

頻譜圖是一個很好的功能,可以不變地區分說話者嗎?譜圖的哪些方面對每個說話者都是獨一無二的? – Chetan 2013-02-28 21:05:46

+0

我並不是一個真正的專家,但似乎這些頻率通常足以在人與人之間進行區分,因爲它們「產生於」的聲帶的「痕跡」。 頻譜圖將有助於區分頻率隨時間的調製,從而允許區分人類說話和其他噪音源,如音樂,例如 – bendaizer 2013-03-01 13:32:09

+0

您可以看到一些字母如何「映射到頻譜圖: http://home.cc.umanitoba.ca/~krussll/phonetics/acoustic/spectrogram-sounds.html – bendaizer 2013-03-01 13:36:59

1

我做了一個簡單的說話人識別一次。

你會想要使用諸如梅爾頻率倒譜系數(MFCC),其中考慮了頻譜週期性,諧波引起的和人耳感知的響度。

然後你可以在學習階段聚集特徵,得到一個統計模型。我爲此使用了VQ,這對於這種特定用途來說非常可怕,但仍然得到了可用的結果。在識別階段,您會嘗試將輸入數據擬合到代表不同說話人的不同模型上。擬合越好,誤差越低。請確保將分數標準化爲記錄長度。

此外,改善說話人識別的一個好方法是排除沉默和非言語聲音。