音訊演算法之我思
很長一段時間,紮根在音訊領域,各種玩耍。
漸漸上了軌道。
一切的一切僅僅因為相信自己能做好,也必須做好。
不懂就去查,去問,去找資料,去找視訊。
漸漸的,我開始懂了,也慢慢有了系統性的理解。
隨後經常能發散思維。
最近,
在自動增益,
音訊降噪,
語速檢測,
相位譜重建各個演算法之間穿梭。
慢慢有所產出,有所突破。
特別是在音訊降噪領域,
不能算質的飛躍,
但是確實摸到了一些規律。
而寫完相位譜重建演算法之後,
我也突發奇想,
相位譜既然能通過高斯分佈的思路進行重建,
那是不是可以說明,
高斯分佈可以用來作為音訊演算法的訊號標準化,歸一化。
這是一個值得去研究的方向,
音訊訊號的高斯歸一化。
前面面試了一家公司的時候,
提到說音訊通過能量譜可以重建相位譜,
那面試官好像認定我是傻子,
就好像覺得我是在胡扯一樣。
真的懶得解釋,
實操是驗證真理的唯一標準。
而語速檢測,
其實有點類似音樂的節拍檢測,
只不過一定要去除空白幀,
因為空白從另一個角度來說,
可以認為是停頓,或者說換氣。
所以語速檢測的思路也可以基本確認。
而自動增益方面,
找資料的時候發現一個神奇的標準,EBU R128,
這裡就不科普展開了,感興趣的可以維基一下。
這個演算法在FFMPEG裡面有很詳細的實現,
摳出來演算法程式碼,直接應用,
效果不要太好。
近期,終於回到廣東,
在南京接受了太多的負能量,回來之後真的有獲得新生的感覺。
世界頓時和平。
相對於深度學習而言,
我還是比較堅持採用傳統演算法去實現降噪增益等處理,
原因也很簡單,音訊時效性特別重要。
採用深度學習很多時候要做大量的工作才能保證時效性了,
從軟體,硬體的角度來說,音訊不比影象好處理。
自然挑戰也多了起來,
不過慶幸的是,
在傻逼一樣的堅持之後,
不採用深度學習方案的音訊降噪,
終於達到近乎可以商用的程度了。
當然最近也在思考演算法的下一步優化方案。
繼續驗證思路,繼續改良。
這裡放出linux系統下的可執行檔案,供大家評測。
下載地址:ofollow,noindex">https://files.cnblogs.com/files/cpuimage/denoise.zip
解壓後採用命令列: ./denoise sample.wav
執行後生成降噪後的檔案sample_out.wav
現在是自適應降噪強度,
降噪後自動做增益,
後續計劃加上降噪的強度控制。
噪聲樣本自行尋覓,
比較好找。就不提供了。
在音訊這條路上,
如果我走偏了,大家記得把我拉回來。
當然若有其他相關問題或者需求也可以郵件聯絡俺探討。
郵箱地址是: