來源自rnnoise,但非rnn
很快又一年過去了。
自學音訊演算法也近一年了。
不記得有多少個日日夜夜,
半夜醒來,就為驗證演算法思路。
一次又一次地改進和突破。
傻逼樣的堅持,必然得到牛逼樣的結果。
這一年,主要扎音訊演算法上。
經常有網友聯絡我,幾乎都會問我同一個問題。
我是怎麼學習的?
說起來,其實很簡單。
就是先設一個小目標,而且必須是一個具有挑戰性的目標。
例如兩年前從原來做安全,轉去做影象演算法。
當年定的目標就是實現一鍵修圖的演算法。
當然,也是做到了。
雖然後來也有改進過多次,但是一直沒有整理出最後的版本。
有各種各樣的原因,一直沒時間梳理。
一鍵智慧降噪,智慧白平衡,智慧曝光,同時也兼顧了演算法效能。
沒有具體實測,但是實時是肯定沒有問題的。
一直有一個心願,就是將這個演算法梳理整理,
調優後,合入到視訊播放器中,
打造一個簡單而簡約的視訊播放器。
這個目標也漸漸靠近了,
近期一直在做ffmpeg的編碼轉碼方面的工作。
預計明年吧,也許這個播放器就可以跟大家見面了。
而今天寫的標題,主要是音訊降噪這個方向。
這個目標也是今年年初給自己定下的目標。
就在昨天 2018.12.1,這個音訊演算法,算是第一版完成了。
這之中經歷了很多很多,有很多細節。
真的有無數次嘗試和改進優化。
把學習的音訊演算法的精髓,運用起來。
最後,達到預期目標。
這裡要稍微說一下,
我是怎麼做的。
其實說簡單也簡單,說難也難。
定了一個目標之後,
肯定是去找最傳統的演算法資料。
一個一個演算法實現。
從中學習到每個演算法的優缺點,缺點當然就要嘗試改進。
優點就要考慮變通,讓優點更加突出。
每次都是從一個演算法延伸出很多待解決的困難,
然後發現一個問題,就找相關的資料,
嘗試解決,一次又一次攻克問題。
這裡面最重要的一點就是,
一定要堅持每一個演算法都要自己動手實現一遍。
而且除了編解碼外,不允許呼叫第三方庫。
純C實現。
這裡有一個我這一年最難啃的點,就是傅立葉變換。
整整花了我2-3個月時間,將所有開源的傅立葉變換看一遍。
重新用c語言實現他們的思路,
最後產出自用的傅立葉變換演算法。
這之間得到過一些朋友的幫助。
當然主要是討論,迸發思路。
最重要的經驗,莫過於,向成功者學習,向業內大牛學習。
不論是開源專案還是資料論文。
rnnoise這個開源專案,既然能得到很好的效果,
那就證明有一些演算法思路是可行的。
只不過深度學習的方案,
特徵需要依賴資料去訓練。
弊端特別明顯。
不採用深度學習的方法去做,肯定可以。
我一直堅信,只要有一個清晰的頭腦,
不需要依賴資料提取特徵,
理清楚演算法的思想,也能達到一定的效果。
就跟做影象演算法一樣,事實證明我是對的。
畢竟曾經做過智慧修圖的演算法,
有一定的成功經驗。
在做音訊演算法的時候,
就少走了不少彎路,
基本上都不用寫程式碼就能知道思路的可行性。
如果不是有影象演算法的積累和堅持,
音訊演算法,
真的不好啃。
但是,我一直堅信,一切都會落到實處。
千萬不要偷懶,你偷的懶最後還是要補回來的。
這個社會是很公平的,只有不努力的人才會覺得社會不公平。
當然現在音訊降噪演算法還沒達到我的最終要求。
但是作為一個階段性的成果而言,它已經達到了。
歡迎大家試用,然後給我提需求也好,
提bug也好,我會抽時間好好看看的。
音訊降噪演算法 linux示例程式:
ofollow,noindex">https://files.cnblogs.com/files/cpuimage/denoise.zip
我這個降噪演算法真的算是集傳統演算法優點,RNN深度學習演算法思路於一身。
向rnnoise學了不少思路,致敬!
整個演算法實現不到200行,
卻同時擁有高速效能和不錯的效果,
魯棒性極佳,
記憶體佔用也極低。
並且支援實時幀演算法,支援多通道。
由此,大家也能看出來,我在這個演算法上花了多少心血。
下層建築搭好了。
之於影象,之於音訊。
還有很多工作要做,好多方向的問題還沒攻克。
路漫漫其修遠兮。
近三年的防毒軟體開發經驗,
不到2年影象演算法經驗,
不到1年的音訊演算法經驗。
投過一些公司,
看了我的學歷,
近些年的研究方向,
短而雜。
然後就說一句,
學的東西太雜,
經驗不夠,
深度不夠。
人無完人,
確實不想發表太多評論,
我只做我自己。
國內太浮躁了,
從來沒想過要跟誰去爭什麼。
也不想評論誰好誰壞。
是的,我本人開源的程式碼都很垃圾。
那又怎麼樣呢,你有你的評論和觀點。
我有我的生活態度。
有些人翻垃圾桶的習慣真不好。
吃相太醜。
沒那個興趣和精力去做討論和點評,
因為沒有半點實際的意義。
更多的精力用來學習成長和分享。
獨樂了不如眾樂樂。
希望以此結交一些有志之士,一起玩耍。
吹吹水,嘮嘮嗑,打打噸。
巴普諾夫,很忙,很忙。
我還能睡,不要叫醒我。
若有相關問題或者需求可以郵件聯絡俺探討。
有空回得快一些,沒空可能就.......
郵箱地址是:
gaozhihan@vip.qq.com