soundtouch變速wsola演算法之改進

2021-09-08 11:24:44 字數 709 閱讀 6281

soundtouch變速演算法很類似sola演算法,細看才知道是wsola演算法。

上個星期有個需求,將該變速應用到直播的包處理,有點類似於webrtc的neteq處理機制。

直接使用soundtouch,會存在一些問題:

1.一段正常,一段變速,中間會出現不連續,有衝擊。或者不同速率的切換。

越頻繁,現象更明顯,有de,de的聲響。

2.soundtouch每次處理,會有殘餘,如果用flush,音質會受到影響,一般到結尾採用該函式。

也就是說輸入樣本有殘餘。

3.soundtouch變速的長度不能精確到樣本點級別,因為拼接的時候回尋找乙個最佳的位置,所以這個是變化的,

最終的變速長度還是可能存在幾百毫秒的偏差。

通過乙個星期的研究,終於解決了上述三個問題。

不會出現連續,輸入樣本點一次完全處理,不會有殘餘,精確輸出長度到樣本點級。

圖一:原始,圖二:soundtouch不同速率之間的切換  圖三:改進後的效果。

js 變速函式

step 目標值 走的路程 10 重點 當step為小數時,進行取整,正數向上取整,負數向下取整 function animate element,target 測試 console.log 目標位置 target 當前位置 current 每次移動的步數 step 20 屬性數字值的獲取,即為初始...

變調不變速方法

變調的方法也可以分為三類 時域法 頻域法 參量法。時域法中,crochiere等人於1983年提出了重取樣的方法 42 該方法是實現變速變調最簡單 最常用的方法之一。假設重取樣因子為p q,其中,p為上取樣因子,q為下取樣因子。上取樣過程就是往原始訊號相鄰兩點間內插p 1個取樣點,這樣使得基音週期變...

變速動畫函式封裝

function animate element,attr,target 測試 console.log 目標位置 target 當前位置 current 每次移動的步數 step 20 offset系列 scroll系列 scrollwidth 獲取元素的實際內容的寬度,如果實際內容沒有佔滿一行,獲...