在音頻前端處理算法中,beamforming算法是一個沒法繞過的存在,隨着AI技術的普遍發展,前端語音技術的需求也在呈現個性化的動態範圍。做爲一個深耕音頻算法多年的老兵,發現站在巨人的肩膀上,才能作出對得起客戶的產品。今天就分析一下一個開源的beamforming算法。html
步驟一:預處理前端
預處理內容:算法
A 加窗:爲傅里葉變換作準備,防止頻譜泄露。
B 傅里葉變換:經過傅里葉變換,獲取每路麥克風的頻域值大小.
C 求權重因子:獲取每路麥克風的權重因子.3d
步驟二:beamforming流程orm
beamforming算法流程htm
A 加載加權過的頻譜數據
B 計算不一樣麥克風之間的互相關係數
C 尋找音頻方向源頭: 計算每一個麥克風的最大能量
D 復位最大值相關的延時係數.
E 計算人聲可能範圍的機率係數blog
步驟三:跟蹤人聲聲源文檔
跟蹤算法效果:get
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