語音合成vocoder(三) spectral envelope參數


基本概念[1]

這裏寫圖片描述
spectral envelope的三個性質:
- 包絡線連接峯值,並且緊緊包裹幅度譜
- 包絡線不能震盪太劇烈,需要平滑
- 包絡線不能有corner

語音信號可以模擬爲激勵脈衝序列與聲道衝激響應的離散卷積,對於濁音信號 y(t) 可以簡化爲基音週期爲T0 脈衝串δ 和聲道衝激響應h(t) 的卷積:

y(t)=h(t)n=δ(tnT0)

Y(ω)=2πT0H(ω)n=δ(ωnω)

上式中的H(ω) 即爲需要估計的頻譜包絡;δ(ω) 是頻譜的諧波部分。

常用方法[1]

LPC

linear predictive coding一開始用於語音的傳輸壓縮,基本思想是n時刻的信號s(n)s(np1)s(n1) 的線性組合:

s^(n)=i=1pais(ni)

e(n)=s^(n)s(n)

要求預測誤差e 最小,這樣一幀的信號s 可以用e 和對應的LPC常數a 來表示,由於e 比較小,所以可以用更少的bit來表示,實現了信號的壓縮。可以用下面的濾波器對來表示編解碼的過程。
這裏寫圖片描述
從另外一角度理解,analysis filter的作用是壓縮輸入信號的高幅值的頻率分量,而synthesis filter的作用是放大這些分量,所以在一定程度上面synthesis filter體現了包絡的信息。
缺點是包絡有可能包含將peak之間的噪聲部分,尤其當兩個peak間距比較大的時候(f0比較大),如下圖。
這裏寫圖片描述

cepstrum

倒譜分析屬於同態解卷積的方法,對於卷積信號,不能通過線性方法進行分離,可以通過FFT變爲乘積信號,取log將乘積信號變爲加性信號,IFFT變換獲取倒譜,通過簡單的低通濾波即可獲得最後的頻譜包絡。
假設兩部分對應的時域信號分別是h(n)和e(n),那麼滿足:

x(n)=h(n)e(n)

X(k)=H(k)E(k)

此時我們是無法區分開h(n)和e(n)。
對頻域兩邊取log:
log(X(k))=log(H(k))+log(E(k))

然後進行反傅里葉變換:
IDFT(log(X(k)))=IDFT(log(H(k)))+IDFT(log(E(k)))

假設此時得到的時域信號如下:
x(n)=h(n)+e(n)

雖然此時獲得時域信號x’(n)即爲倒譜,已經和原始的時域信號x(n)不一樣,但是可以把時域信號的卷積關係轉化爲了線性加關係。
對應上圖的頻域信號,可以拆分成兩部分的乘積:頻譜的包絡和頻譜的細節。包絡部分對應的是頻譜的低頻信息,而細節部分對應的是頻譜的高頻信息。倒譜分析已經將兩部分對應的時域信號的卷積關係轉化爲了線性加關係,所以只需要將倒譜通過一個低通濾波器即可獲得包絡部分對應的時域信號h’(t)。

CheapTrick[2]

1. F0-adaptive windowing

參考pitch synchronous,語音分段的時候不再以傳統的定長幀爲單位,而是以f0對應的週期爲單位,以保證波形和頻譜的平滑連續。
一般使用長度爲3T0Hanning窗對語音進行切割,以當前時間點爲中心,左右各取1.5T0 長度的語音。

w(n)=0.5(1cos(2πnN)),0nN

清音沒有基頻,一般使用一個適當的常數。

2. smoothing of the power spectrum

對於加窗以後的時域信號進行FFT獲得對應的功率譜P(ω) ,由於後面第三步需要對功率譜取log操作,所以需要保證功率譜沒有零值,這裏在三角窗內對信號進行平滑

Ps(ω)=32ω0ω03ω03P(ω+λ)dλ

3. liftering in the quefrency domain

可以將功率譜看做是普通信號,求出信號的包絡也就是找到信號的低頻部分。
1. 首先對上一步求出來的功率譜做反傅里葉變換

ps(τ)=F1[log(Ps(ω)]

2. 過濾得到信號的低頻部分
ls(τ)=sin(πf0τ)πf0τ

sinc函數第一個作用,相當於一個低通濾波器;第二個作用,它在nT0 點對應的幅值爲0,相當於清除了原始週期脈衝串δ 的影響。
3. spectral recovery
lq(τ)=q0+2q1cos(2πτT0)

兩個參數的經驗值是1.18和-0.09。目的是爲了消除前面平滑帶來的畸變。
4. 獲取最後的頻譜包絡
Pl(ω)=exp(F[ls(τ)lq(τ)ps(τ)])

參考文獻

[1].Spectral Envelopes in Sound Analysis and Synthesis
[2].CheapTrick, a spectral envelope estimator for high-quality speech synthesis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章