LP PSOLA演算法之(一) 語音變速

2021-08-01 07:04:23 字數 999 閱讀 9770

語音編碼,得到每幀訊號的lpc係數和基音頻率,就能**出語音。

該方法可算出共振峰等引數,方便做變調的時候,對共振峰進行調整。

通過lp-psola演算法,學習基音檢測的原理和演算法,方便開展更多工作。

1.聲學引數,如共振峰頻率,基頻,主要由聲道差異決定。

2.韻律學引數,如說話快慢,節奏,口音不同。

把語音在時間上縮短或者拉長,而語音的取樣頻率/基頻/共振峰不改變。

如圖,上半軸表示原始語音,下半軸表示變速後的語音。上半軸大圓點表示每一幀的起始位置,下半軸小圓點表示變速後的每一幀起始位置。

語音時間減少,語速增加,縮短語音幀數fn』比原幀數少,因此要對幀數fn進行插值。

縮短語音每一幀對應的原始訊號的時間,並不是原始訊號的時刻,因此要對基音週期進行插值。

同樣要對線性**係數進行插值。

ps. 這裡講一下插值函式interp1函式的使用:

matlab hep:1-d data interpolation (table lookup)

既然有interp1,那一定也有interp2/interp3,interp1用來對一維陣列進行插值,但是,interp1也可用用來做二維陣列的插值,也是一維一維地處理。

說明: 注意橫座標,原始訊號得時間長度大概為2.5秒,速度放慢一倍,語音長度變為5秒,在相同取樣頻率fs = 8000hz下,語音速度就變慢了。

[1] 宋知用. matlab在語音頻號分析與合成中的應用[m]. 北京:北京航空航天大學出版社:2013.

LP PSOLA演算法之(二) 語音變調

1.聲學引數,如共振峰頻率,基頻,主要由聲道差異決定。2.韻律學引數,如說話快慢,節奏,口音不同。改變語音基音頻率 pitch pitch變大 男聲變女生,pitch變小,女聲變男聲。所以問題就變得很簡單,只要在語音合成之前,根據變調要求改變pitch大小,合成後得語音就能達到變調得效果。值得注意得...

Haskell函式式程式設計之一 語言初體驗

如果你是使用面向對像語言進行程式設計的程式設計師,那麼你應該去了解掌握一門動態語言。而動態語言的魔力之一就是函式式程式設計。而要學習了解函式式程式設計,那麼haskell是乙個不錯的選擇。haskell是是一門純函式式程式語言 purely functional programming langua...

重寫排序演算法之一

1.快速排序 def partition a,p,q x a p i p for j in xrange p 1,q 1 if a j 0 and a j key a j 1 a j j 1 a j 1 key a 32,5,46,57,68,34,5,768,3,234,123,35,2,1 in...