概述
在音頻前端處理算法中,beamforming算法是一個無法繞過的存在,隨着AI技術的廣泛發展,前端語音技術的需求也在呈現個性化的動態范圍。作為一個深耕音頻算法多年的老兵,發現站在巨人的肩膀上,才能做出對得起客戶的產品。今天就分析一下一個開源的beamforming算法。
算法流程
步驟一:預處理
預處理內容:
A 加窗:為傅里葉變換做准備,防止頻譜泄露。
B 傅里葉變換:通過傅里葉變換,獲取每路麥克風的頻域值大小.
C 求權重因子:獲取每路麥克風的權重因子.
步驟二:beamforming流程
beamforming算法流程
A 加載加權過的頻譜數據
B 計算不同麥克風之間的互相關系數
C 尋找音頻方向源頭: 計算每個麥克風的最大能量
D 復位最大值相關的延時系數.
E 計算人聲可能范圍的概率系數
步驟三:跟蹤人聲聲源
跟蹤算法效果:
A 濾波器濾波:預測濾波器先進行濾波.
B 計算每個麥克風的先驗概率.
C 根據當前值計算概率
D 計算概率系數f的值.
E 計算並更新每個粒度的因子
F 添加或刪除跟蹤源
G 確認是否停止跟蹤某個源
H 計算每個源的位置
L 對每個源進行重采樣
步驟四:人聲分離
降噪處理流程:
A 加載分離后的源
B 噪聲統計
C 計算噪聲泄露
D 計算拉姆達因子
E 噪聲疊加
F 計算噪聲總量
G 提取人聲
H 增益因子應用
步驟四:后置濾波器
人聲提取流程:
A 加載跟蹤源
B 計算矩陣信息
C 計算每個幀信息
D 導出幀信息.
算法總結
總的來說,該算法還是比較新的,各項指標比較完善,並且代碼水平寫的比較高。筆者分析完成之后,真是受益很大。
參考文檔
1 經典書籍:http://www.labbookpages.co.uk/audio/beamforming/delaySum.html