2016-10-29 118 views
1

我正在進行個人研究項目。波形比較

我的目標是能夠識別聲音,並通過將其波形與我的數據庫中的波形進行比較來確定它是否屬於IPA。我有Mathematica,SciPy和PyBrain的一些技巧。

對於第一個階段,我只使用英語(美國)拼音字母表。 我有一個簡單的英語拼音字母聲音文件庫,我在網上找到。這裏的訣竅是:

我想將一個聲音文件分隔成對應於不同音節的波形 - 這需要一個學習算法。所以,'我喜歡蘋果'會被分割成組成句子的音節波形。

然後將每個波形與英文PA的波形進行比較。我不確定如何做到這一點。我正在考慮使用Praat來檢測波形,捕獲波形的圖像並將其與圖像分析中存儲的數據進行比較(這很有趣)。

這裏的損害是我不知道如何讓Praat自動生成一個波形文件,然後在音節之間將其剪切成波形塊。從邏輯上講,我只是準備一個學習算法的測試用例,然後教學員去做。

而不是需要一個波形圖像 - 我可以做快速傅立葉變換和比較兩個fft - 在x%的誤差範圍內認爲它是音節嗎?

任何意見或輸入讚賞!非常感謝您的寶貴時間。

回答

1

你可以試試Praat scripting

只使用FFT會給你帶來相當可怕的結果。很長的特徵向量,將很難分割和運行任何訓練。對於單個音節,這是幾千點。一些深度神經網絡能夠應付它,但只是假設你正確地設計它們並提供巨大的訓練集。使用神經網絡的優點是,他們可以從「原始數據」爲您創建功能(我會考慮fft也是「原始」)。但是,當您使用聲音工作時,並不是非常需要 - 您可以手動設計功能。在聲音的情況下,科學很清楚聲音有什麼樣的「特徵」。

您可以使用庫如Yaafe來計算這些功能。即使你沒有用C++或Python做它,我建議檢查它 - 我提供的鏈接還提供了用於計算它們的公式。我在我的kiwi classifier中使用了其中的一些。

另一個好方法來自scikit-talkbox,它提供了您可能需要的準確工具。

+0

我真的很感激輸入! 我今天早些時候在Matlab中嘗試過使用fft,你是對的 - 那是一個非常難看的矢量。我要查看鏈接。 我實際上更喜歡Python,我會查看鏈接。這是一個很好的開始。我查閱了一些在該領域的論文,並使用fft進行聲音分析是一項壯舉。 這是我在兔子洞裏結束的地方: https://core.ac.uk/download/pdf/35379497.pdf 我剛剛進入Talkbox(感謝你)和目前看起來非常有希望。 – Yarou

+1

你可以花費下個月只是回顧文學:)。我知道這不是你以後的樣子,但你可以嘗試相反的方式:語音到文本,然後簡單地提取音節。您可以使用Python中的現有庫在幾個小時內對其進行修補。通過這種方式,您可以利用已經放入語音識別的所有工作,然後應用正則表達式(是的,相當冗長的)來獲得您所需要的。你應該得到很好的結果。 –

1

坦率地說,我並不真正瞭解Praat,但我發現你的項目超級酷和有趣。我有使用它的聲音檢測汽車電機故障的經驗,這可能與您的項目有關。我使用神經網絡和支持向量機進行分類,因爲有多篇研究論文證明了它。因此,我對我選擇的方式毫無疑問。所以我的建議是,也許你應該研究和閱讀關於它的一些論文。當你有這樣的問題時它確實有幫助(它會工作嗎?,我可以使用它還是我使用最佳解決方案?等等)。祝你好運,這是真棒項目:)

+0

通過聲音檢測發動機故障 - 太酷了。 Lukasz給了一些很好的投入。 謝謝!我這樣做並在Google學術搜索中搜索了幾篇論文,並找到了很多信息,例如我分享給Lukasz的鏈接。 它確實表明修改過的轉換函數是可行的,並且產生了可靠的結果(離散Tchebichef變換),但它看起來像訓練過程可能會很長時間纏繞並且會與我可能結束的大量載體混淆。 你是非常正確的 - 研究這個問題,這個問題的元素是必不可少的。 – Yarou