變調不變速方法

2021-09-09 00:23:28 字數 1136 閱讀 3740

變調的方法也可以分為三類:時域法、頻域法、參量法。

時域法中,crochiere等人於2023年提出了重取樣的方法[42],該方法是實現變速變調最簡單、最常用的方法之一。

假設重取樣因子為p/q,其中,p為上取樣因子,q為下取樣因子。上取樣過程就是往原始訊號相鄰兩點間內插p-1個取樣點,這樣使得基音週期變為原來的p倍,頻譜壓縮為原來的1/p倍,時長變為原來的p倍,即基頻變為原來的1/p倍,音調降為原來的1/p倍,語速變為原來的1/p倍。

同樣地,下取樣過程就是每隔q-1個點進行抽取,這樣會使得基音週期長度為原來的1/q倍,頻譜擴充套件為原來的q倍,時長變為原來的1/q倍,即基頻變為原來的q倍,音調公升為原來的q倍,語速變為原來的q倍。

為了實現變調不變速,可以通過各種變速不變調處理與重取樣相結合的方法[44]。如圖2-4所示,變速不變調處理使語速變為原來的p/q倍,得到輸出訊號y(n),然後對y(n)進行p/q倍重取樣處理,這樣就得到語速正常,音調制為原來q/p倍的最終輸出語音z(n)。

圖2-4 時長規整結合重取樣實現變調

頻域法中比較簡單的處理就是直接對訊號頻譜進行插值或者抽取,實現各頻率分量的擴充套件或者壓縮。國內的研究者李力利、張曉蕊等人分別對頻域的插值和抽取的方法進行了研究和擴充套件,這種方法的缺點在於:內插會引入不需要的頻率,從而大大影響音質,變調後會有部分失真[43]。另外,比較典型的方法是利用短時傅利葉變換原理,估計出短時幀的瞬時頻率,再乘以伸縮係數進行頻譜伸縮[44]。

參量法中最具代表性的方法是基於正弦模型原理。正弦模型[45]是由quatier等人在2023年提出,它是目前應用最廣泛的語音模型。該模型將訊號看作是一系列隨時間變化的正弦訊號疊加。

(5-1)

其中、和分別表示第i個正弦訊號的瞬時幅值、瞬時相位、瞬時頻率。

假設變速不變調係數為,規整後的時間=,則規整後的語音為:

其中很顯然,時間規整後瞬時頻率仍然為,保證了音調不變,但是時間過程擴充套件為原來的倍。當》1時,對應降速,當<1時,對應加速。

同樣地,假設變調不變速係數為,則變調後的語音為:

其中很顯然,變調不變速處理後,各個頻率成分隨係數拉伸或者收縮。對應於濁音,為隨時間變化的第一諧波,即基頻;其他頻率成分對應於其它諧波。當》1時,對應公升調,當<1時,對應降調。

由上分析可知,基於正弦模型的變調方法最大難點在於提高諧波分析的精確度,降低引數估計的複雜度[46]。

語音變速和變調的實現

實現變聲的效果主要有兩種方式,一種是對語音的本身進行修改,通過修改語音的一些特性達到變聲的效果 另一種則是語音轉殖,直接將輸入語音特性轉化成模板的語音特性。這裡我們介紹第一種方式,語音轉殖後面有機會再介紹。其實如果沒有特定的變聲需求,直接用不同的取樣率讀取原來的檔案就會產生變聲效果。基音同步疊加 p...

SQLite刪除資料占用空間不變的解決方法

這幾天使用sqlite發現個問題,原空資料庫只有10k,往資料庫寫1m的資料,寫完資料之後,資料庫房有將近1034k左右,這時再將資料清空,發現資料庫的大小依然沒變,還是1034,我就奇了怪了,朋友告訴我應該是vacuum的原因,網上了查了下,網上的解釋如下 當你從sqlite刪除資料後,未使用的磁...