2015-12-14 130 views
8

我在一個項目中工作,我的任務涉及語音/音頻/語音比較。這個項目用來評判比賽中的獲勝者(模仿)。實際上,我需要捕捉用戶的語音/聲音,並將其與原始音頻文件進行比較並返回一個百分比匹配。我需要用R語言來開發它。與R的音頻比較

我已經嘗試過R(tuneR,audio,seewave)中的語音相關軟件包,但在我的搜索中,我無法獲取比較相關信息。

我需要你們的幫助,我可以找到與我的工作相關的信息,這是處理這類問題的最佳方法,如果有的話,處理這些類型的音頻相關的先決條件是什麼工作。

+0

我不是一個音頻處理專家,但你可以用'seewave'做很多事情,這可能對你有幫助。針對您的具體問題,我想到了譜圖和幅度歸一化 - 兩者都可以通過'seewave'輕鬆完成。 – cryo111

+0

ya感謝您的建議,我曾嘗試過Seewave軟件包中的幅度歸一化,但根據我的知識,我們需要在進行歸一化時擁有合理的值,我可以找到請讓我知道如果您對此有任何想法。再次感謝你。 – Dinesh

回答

5
  • 基本上,用於語音/語音比較的最佳功能是MFCC

有一些軟件可以用於提取這些係數:Praat website
您也可以嘗試找到一個lib提取這些係數。
[編輯:我在tuneR documentation,它有一個函數來提取MFCC發現 - 該函數melfcc()搜索]

  • 你提取這些功能後,您可以使用機器學習(SVM,RandomForests或類似的東西)來開發分類器。

我有一個研討會,我已經介紹了關於說話人識別系統,看看它,它可能會有所幫助。 (Seminar)

如果你有時間和興趣,你可以ALGO閱讀:
Authors: Kinnunen, T., & Li, H. (2010)
Paper: an overview of text-independent speaker recognition: From features to supervectors

後你會得到每個音頻樣本(帶MFCC和/或其他特徵)的特徵向量,那麼你」會需要(從A特點的B功能)比較特徵向量的對:
你可以嘗試使用它們之間的絕對差五個特徵構造函數:

  • ABS(特徵從A矢量 - 特徵向量從乙

上述操作的結果是一個特徵向量,其中每個元素是> = 0和它具有與A(或B)特徵向量相同的大小。

您還可以測試A和B的特徵之間的逐元素乘法:

  • A1 * B1A2 * B2...一種* BN

然後,你需要標記每個特徵向量
1,如果人A ==人物B0,如果人A!=人物B)。

通常的絕對差的性能比乘法特徵向量更好,但你可以追加載體和測試同時使用ABS DIFF,並在同一時間乘法功能分類的性能。

+1

很好的答案,但作者引用了一場比賽。我沒有音頻處理的背景,所以我覺得這很有趣。但是,難道你不想看看這兩個向量的規範那樣的功能嗎?一個向量就是你想要模仿的而另一個向量是競爭者,而不是嘗試分類? –

+1

我從來沒有與模仿過,但我已經與揚聲器識別系統(SRS)合作過。爲了解決這個模擬問題,我將使用與SRS中使用的方法相同的方法。在SRS中,我們開發了一個分類器,該分類器必須能夠抵抗欺騙(也是模仿)。處理欺騙的一種方法是使用分類器作爲預測器(獲得分類器的概率響應)。我不會去尋找一個規範,而是看看競爭對手和你想要模仿的東西之間的概率。最好的模仿者會在分類器中有更大的分數 –

+0

我會選擇上面的方法,因爲我認爲模仿問題類似於說話者識別系統中的欺騙問題。標準通常不是最好的方法,但它是最容易實現的方法之一。代替常規,更簡單的方法是計算A(競爭者)和B(試圖模仿)的特徵向量,然後計算兩個特徵向量之間的餘弦相似度(或相關度)。 –