基於減少計算量的MFCC提取

2021-07-05 09:08:46 字數 938 閱讀 7729

1.傳統的mfcc

提取流程圖如下:

在特徵提取過程的模組,如預加重,加窗,框架,fft

,過濾器,對數能量,余弦變換中都含有大量的乘法運算,其中,在

fft耗費了大量的計算量。太多的乘法導致系統的能力要求高,能源消耗大,穩定性較低,應用範圍窄。所以希望在不改變結果的條件下,對mfcc提取過程進行優化。

1.我們在處理語音時幀移一般會取50%

,目的是為了幀與幀之間的平穩過渡。因此,在

mfcc

提取過程中也引入了大量的計算。

改進方法:在第一次分幀(幀長為實際幀長的一半)時,幀移為0

,之後進行

fft、

mel濾波,之後補回到原來的幀長。流程圖如下:

圖中fn為原始幀長,帶有幀移。sn為改進後第一次分幀的幀長,幀移為0

。fn為拼接後的結果。

改進後的mfcc提取流程圖如下:

文中還對預加重係數做了改進用31/32

代替0.97

,使大量的乘法運算轉為加法和移位預算。

2012 international workshop on information and electronics engineering (iwiee)

algorithm of abnormal audio recognition based on improved mfcc

chuan xie,xiaoli cao,lingling he

動態規劃為什麼可以減少計算

摘自leetcode 動態規劃背後的基本思想非常簡單。大致上,若要解乙個給定問題,我們需要解其不同部分 即子問題 再根據子問題的解以得出原問題的解。動態規劃往往用於優化遞迴問題,例如斐波那契數列,如果運用遞迴的方式來求解會重複計算很多相同的子問題,利用動態規劃的思想可以減少計算量。通常許多子問題非常...

求x到y的最少計算次數 (BFS)

時間限制 1秒 空間限制 262144k 給定兩個 100到100的整數x和y,對x只能進行加1,減1,乘2操作,問最少對x進行幾次操作能得到y?例如 a 3,b 11 可以通過3 2 2 1,3次操作得到11 a 5,b 8 可以通過 5 1 2,2次操作得到8 輸入描述 輸入以英文逗號分隔的兩個...

減少冗餘計算的優化對比

優化前的 如下所示,這是乙個旋轉點的函式,其中sin angle cos angle 都各運算了兩次,因此存在冗餘計算。通過2次優化 效率有 2.2秒 提公升到 1.7秒,再提公升到1.5秒。冗餘計算優化還是非常有效果的 using system using system.drawing names...