2017-02-18 311 views
-1

需要一種能夠降低語音音頻信號的噪聲水平而不會使用Java來顯着扭曲信號的算法(或用於比較各種輸入數據的一組好的算法)。java中的音頻噪聲消除

輸入是一種音頻信號,包括語音以及一些背景噪音。噪音隨着錄音過程而變化。確實存在消除這種噪音的方法,這些方法是爲語音識別和電影製作而開發的。

理想的輸出是一個微小失真的語音信號,背景干擾對人耳來說是最低限度可聽的。定量標準被最小化

  1. 信噪比和
  2. 總諧波失真。
+0

你的問題不是很清楚。 Java編程沒有綁定到特定的IDE,如Eclipse或Netbeans或Intellij或...。所以在Java中的所有東西都可能有或沒有任何特定的IDE。此外,詢問在代碼中做一些工作被稱爲「以編程方式執行某些事情」而不是「使用編程語言」。 – STaefi

+0

感謝您指出 – suriyan

+0

您的歡迎。還有一點就是像這樣的問題會收集-1s,因爲在這裏問'如何做...'這個問題。你應該找到一些教程或書籍,並嘗試編寫一些代碼。那麼如果出現問題,您可能需要請專家來幫助您解決問題。不要忘記提供[MCVE]。祝你好運。 – STaefi

回答

3

您正在尋找自適應噪聲消除功能,以及可能適用於隨同時間改變相同流或文件內的噪聲條件的各種噪聲消除。

舊版的方法包括:使用帶通和/或陷波濾波器(其僅工作良好,如果所期望的信號和噪聲頻帶不交叉)

  • 掉落的含有大部分噪聲的

    • 刪除頻率在杜比噪音降低系統方案中,在單詞,音符或其他音頻事件(在死空間中)之間的點處的噪音級別
    • 使用Hamming窗口或其他窗口結合FFT降低整個文件的噪底圖書館
    • 個像步態或其 競爭對手

    這些方法的程序的音頻軌道的手工編輯部分已被發現比預期少試圖清理較大或多個文件或實時應用,如實時時語音識別或電話。

    我沒有親自嘗試過他的here的Java程序之一。儘管它具有一定程度的自動化,但是它是一種LSE(最小二乘估計器),它可以跨越一個數據塊工作,但不適合連續操作或具有不必要噪聲條件變化的音頻文件。 (它不像人們希望的那樣具有適應性。)

    經過大量調查發現並現在一直使用的解決方案不是用Java編寫的。這是一個MATLAB程序,可以在最小修改的情況下運行在開源Octave中。我開始將它移植到C++,但沒有及時完成。

    它實現的算法類稱爲MMSE(降噪使用最小均方估計)。 MATLAB版本由Hendricks博士多次完善,最後以the 2010 version結束。

    我已經將它與競爭對手的對話和音樂進行了比較,它在所有我嘗試過的情況下都等於或超過其他競爭對手。 (我和Hendricks博士或MATLAB沒有任何關係,除了我喜歡他在該平臺上實現的結果。)