iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
AI & Data

AI與語音辨識系列 第 25

DAY25 語音辨識的前端—VAD篇 part6

  • 分享至 

  • xImage
  •  

安安~


三、基於神經網路的VAD之二

關於昨天的VAD,來用例子補充說明一下:

在64子頻的Gammatone這個例子中,訊號中64個濾波器的中心頻率在對數上均勻分布,公式如下:
https://chart.googleapis.com/chart?cht=tx&chl=f_c(i)%3D-228.7%2B%5Cfrac%7Bf_s%2F2%2B228.7%7D%7B%5Cmathrm%7Bexp%7D(0.108i%5Ccdot%20sf)%7D%20

其中,i是子頻的序號fs是採樣頻率,sf是對數域上的頻率間隔,由下式舉出:
https://chart.googleapis.com/chart?cht=tx&chl=sf%3D%5Cfrac%7B1%7D%7BN%7D%20%5Cleft%20%5C%7B%209.26%5Cleft%20%5B%20log(%5Cfrac%7Bf_s%7D%7B2%7D%2B228.7)-log(f_min%2B228.7)%20%20%5Cright%20%5D%20%20%5Cright%20%5C%7D%20

其中,N是子頻的個數fmin是最低頻率,對語音訊號而言,最低頻率可取50,由於濾波器是在頻域上計算,且只計算幅度譜而捨棄相位,因此我們可以用下面的近似公式來計算每個子頻的幅頻回應:
https://chart.googleapis.com/chart?cht=tx&chl=%5Cleft%20%7C%20H(f)%5E2%20%5Cright%20%7C%20%5Capprox%20%5Cleft%20%5B%20%5Cfrac%7B2%7D%7Bc%7D%20(n-1)!(2%5Cpi%20b)%5E%7B-n%7D%20%5Cright%20%5D%20%5E2%5Cleft%20%5B%201%2B%5Cfrac%7B(f-f_c)%5E2%7D%7Bb%5E2%7D%20%20%5Cright%20%5D%5E%7B-n%7D%20

其中,c為常數;n是濾波器的階數;b是衰減係數,它直接決定了濾波器的等效矩形頻寬(Equivalent Rectangle Bandwidth,ERB),所謂等效矩形頻寬是指等效矩形濾波器的頻寬。

在完成特徵提取後,需要對特徵進行歸一化操作。為了使演算法能夠追蹤和適應不同的場景,以及變化的訊號增益,可以在執行過程中根據提取的特徵即時更新歸一化參數。

接下來,音訊訊號的64維特徵被輸入神經網路模型。結合歷史資訊,模型會對當前訊號幀進行預測,輸出訊號幀中含有語音的機率。根據實際需求,該推理可以每一幀或者多幀進行一次。該模型包括一個一維卷積層,兩個LSTM 層,以及一個帶Softmax啟動函數的全連接層。首先一維卷積層對輸入的頻譜進行頻域方向上的卷積,提取頻域能量蘊含的特徵。接下來兩個LSTM層對輸入特徵在時域上的變化情況進行建模。在每次推理時,LSTM層都需要接收該層上一次推理時輸出的隱狀態,並且輸出當前推理結束後的隱狀態,供下一次推理使用。因為有隱狀態的前後傳遞,所以每次的輸入視窗可以很短(可以短至一幀),以降低整個VAD演算法的延遲。LSTM 層的輸出狀態透過全連接層和Softmax函數進行二分類,輸出當前幀含有語音的機率。輸出的機率透過一些後處理步驟(如中值濾波器等)進行平滑,濾除過短的突波訊號,並輸出最終的判決值,即決定該訊號幀是否包含語音。


參考書籍:Hey Siri及Ok Google原理:AI語音辨識專案真應用開發
參考網站:今日無
學習對象:ChatGPT 


上一篇
DAY24 語音辨識的前端—VAD篇 part5
下一篇
DAY26 語音辨識的前端—單通道降噪篇 part1
系列文
AI與語音辨識30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言