18

我想開發一個應用程序來檢測風的音頻流。
我在這裏需要一些專家的想法,只是爲了給我指導路線或一些鏈接,我知道這不是一件容易的事情,但我打算在這裏付出很多努力。檢測風噪音

我的計劃是檢測流中的一些常見模式,如果這些值接近這種常見的風噪聲模式,我會通知找到匹配,如果這些值更接近已知模式,那麼我可以肯定的是風被檢測到,如果這些值與圖案不匹配,那麼我估計沒有那麼多的風....

這是我的計劃,但我需要學習如何事情完成了。有沒有一個開放的項目已經這樣做?還是有人在研究這個話題?

我在這個論壇上寫的原因是因爲我不知道如何谷歌它,我發現的東西不是我一直在尋找。我真的不知道如何開始開發這種算法。

編輯1:
我試圖錄制風,當我打開保存的音頻文件對我來說只是一串數字:)。我甚至都沒有看到我應該保存這種格式,是否足夠好?我應該使用其他的東西,或者如果我在mp3中轉換風噪聲音頻文件:這是否有助於解析?

那麼我有很多問題,那是因爲我不知道從哪裏閱讀更多關於這種話題。我用指引標記我的問題,所以我希望有人能幫助我。

必須有可檢測的東西,導致風噪聲如此普遍,必須以某種方式來檢測這一點,我們只需要有人給我提示,熟悉這個話題的人。

+1

+1:有趣和誠實的問題。 – leppie

+1

你是否已經記錄了一些風噪聲樣本?他們看起來如何?我的意思是時間序列,功率譜... – kol

+3

風是自己沉默。這是與其他元素的互動,使噪音:葉子,房屋,雙簧管,麥克風......所以你首先要縮小你的環境。 – mouviciel

回答

3

您的問題的科學被稱爲「模式分類」,特別是「音頻模式分類」的子字段。該任務被抽象爲將錄音分爲兩類(風而不風)。你在信號處理方面似乎還沒有很強的背景,所以讓我插入一箇中心警告: 模式分類並不像它看起來那麼容易。人類擅長模式分類。電腦沒有。

好的第一種方法通常是計算信號和樣本的傅立葉變換的相關性。不過,不知道這將取決於風速。

你可能想看看bag-of-frames的方法,它被成功地用來分類環境噪聲。

2

正如@thiton所提到的,這是一個音頻模式分類的例子。

風的主要特性:它是一種形狀(帶/ hp濾波)白噪聲,其幅度和間距有小的半隨機波動。至少這是大多數合成器重現它的方式,聽起來很有說服力。

您必須檢查波形文件中的波譜內容和變化,因此您需要FFT。輸入格式並不重要,但顯然原材料(wav)更好。

一旦你得到了,你應該檢測到它接近某種有色噪聲,然後可能提取一系列的音調和幅度,並嘗試使用該數據集的經典模式分類算法。我認爲監督式學習可以在這裏發揮作用。

3

我剛剛遇到這篇文章,我最近做了一個庫,可以檢測錄音中的風噪聲。

我做了一個風噪聲模型,並創建了一個示例數據庫,然後訓練了一個機器學習算法,以感知加權的方式檢測和測量風級。

C++/C code is here如果它對任何人都有用!

+0

您能否介紹一下您的項目?我想知道代碼是如何獲得許可的(它是開放源代碼,許可證?)這個問題還要求提供關於如何實現這個的一些指導。你採取了什麼樣的一般方法? –

+1

嗨,我的項目被稱爲好記錄項目,它是英國索爾福德大學www.goodrecording.net的一個研究項目。我們正在研究如何自動確定音頻質量,尤其是在用戶生成的內容中。該代碼是開源的,它是根據MIT許可證授權的。我使用的方法是製作一個風噪聲模型,將噪聲添加到許多語音音樂和音景的例子中,然後提取音頻特徵(MFCC)並訓練具有量化信噪比的隨機森林分類器作爲類別標籤。 – Kenders2000

1

這實際上是一個難以解決的問題。

假設您只有一個麥克風數據。打開音頻文件(時域信號)時獲得的原始數據有一些,但沒有很多這類處理的信息。您需要使用FFT進入頻域,並查看頻率分檔的統計信息,並使用它來使用SVM或隨機森林構建分類器。

對於@ Karoly-Horvath的所有應有的尊重,我也不會使用經過壓縮的任何錄音,例如mp3。音頻壓縮算法總是會使較高頻率失真,因爲它現在是檢測風的重要特徵。如有可能,從麥克風獲取原始PCM數據。 您還需要確保您的錄音以至少24kHz採樣,因此您可以獲得高達12kHz的信號信息。

最後 - 頻域中的風形狀不是簡單的濾波白噪聲。其特點是它通常在低頻(隆隆型聲音)中具有高能量,並且在高頻中具有剪切和撲動聲音。 高頻能量是相當短暫的,所以如果你的FFT尺寸太大,你會錯過這個重要的特性

如果您有2個麥克風數據,那麼這會變得更容易一些。記錄時,風是一種局部現象。當然,在錄音中,您可以聽到葉子的沙沙聲或風聲引起的鐘聲。但這不是風噪聲,不應該被濾除。

您在錄音中聽到的實際惱人的風噪聲是空氣撞擊麥克風的膜。這種影響是本地事件 - 如果您有2個麥克風,則可以利用該事件。它可以被利用,因爲事件對於每個單獨的麥克風是本地的並且與另一個麥克風不相關。當然,2個話筒彼此之間的關係也很重要。他們必須相當接近對方(比如在8英寸以內)。

然後可以使用時域correlation來確定風噪聲的存在。 (所有其他錄製的聲音彼此相關,因爲麥克風彼此非常接近,所以高相關性意味着沒有風,低相關性意味着風)。如果您採用這種方法,您的輸入音頻文件不需要解壓縮。合理的壓縮算法不會影響這一點。

我希望這個概述有所幫助。