李要芳 劉智
摘要:變聲器是通過對(duì)聲音的音色和音調(diào)的雙重復(fù)合改變,實(shí)現(xiàn)對(duì)輸出聲音的變聲?,F(xiàn)使用基于基音同步疊加(PSOLA)算法的波形編輯和拼接技術(shù),利用虛擬儀器軟件LabVIEW對(duì)采集的聲音信號(hào)進(jìn)行濾波、調(diào)頻處理,實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的變聲處理。該設(shè)計(jì)提供了一種變聲器設(shè)計(jì)的簡(jiǎn)便快捷方法,具有很好的應(yīng)用前景。
關(guān)鍵詞:基音同步疊加(PSOLA)算法;LabVIEW;變聲器設(shè)計(jì)
0 ? ?引言
近年來(lái),語(yǔ)音識(shí)別和基于語(yǔ)音段的建模方法逐漸成為研究熱點(diǎn)。在語(yǔ)音合成方面,基于基音同步疊加(PSOLA)算法的波形編輯和拼接技術(shù)就是最具有代表性的一種方法[1-2]。本設(shè)計(jì)通過LabVIEW[3]設(shè)計(jì)一個(gè)變聲器,利用PSOLA算法與重采樣技術(shù)結(jié)合,實(shí)現(xiàn)音頻的變調(diào)不變速以及多種頻段的變調(diào),從而達(dá)到變聲的功能。
1 ? ?變聲器的理論基礎(chǔ)
基音同步疊加(PSOLA)算法是利用短時(shí)傅里葉變換重構(gòu)信號(hào)的疊加法,主要有基音同步分析、基音同步修改以及基音同步合成三個(gè)部分[2]。
1.1 ? ?基音同步分析
設(shè)采集的音頻信號(hào)為X(n),選擇合適的時(shí)窗分析窗口hm(n)對(duì)原始合成單元做加窗處理,得到一組短時(shí)信號(hào)xm(n)如式(1)所示:
xm(n)=hm(tm-n)X(n) ? ? ? ? ? ?(1)
式(1)中,tm為基音標(biāo)注點(diǎn),hm(n)一般采用漢明窗(Hamming),窗長(zhǎng)大于原始信號(hào)的一個(gè)基音周期,因此窗間有重疊,窗長(zhǎng)一般取原始信號(hào)基音周期的2~4倍,即得hm(n)如式(2)所示:
hm(n)=h(n)(n/μp) ? ? ? ? ? ? (2)
式(2)中,h(n)為歸一化窗長(zhǎng),μ為窗覆蓋基音周期數(shù)的比例系數(shù),p為基音周期。通常情況下,取μ=2,能夠使合成簡(jiǎn)化。若要提高基頻,令p取為原始分析基音周期;若要降低基頻,令p取為合成基音周期,這樣能夠使得合成簡(jiǎn)化。
1.2 ? ?基音同步修改
基音同步修改分修改聲音的時(shí)域與頻域特性[4],對(duì)語(yǔ)音基頻的修改是通過對(duì)合成單元標(biāo)記間隔的增加來(lái)減少正在進(jìn)行的語(yǔ)音,對(duì)語(yǔ)音時(shí)長(zhǎng)的修改是通過合成單元同步標(biāo)記的插入來(lái)刪除正在進(jìn)行的語(yǔ)音。
首先,進(jìn)行語(yǔ)音基頻的修改,對(duì)短時(shí)分析信號(hào)xm(n)進(jìn)行傅里葉變換Xm(n),得到短時(shí)分析傅里葉變換,如公式(3)所示:
Xm(n)=Xm(ej2πn/N)=xm(n)e-j2πn/N ?(0≤n≤N-1) ? ? (3)
又Xm(n)有公式如下:
Xm(n)=E(n)V(n) ? ? ? ?(4)
式中:E(n)為分析音段激勵(lì)源信號(hào)頻譜;V(n)為頻譜的譜包絡(luò)部分。
然后,按照音高調(diào)整系數(shù)對(duì)音段激勵(lì)源信號(hào)頻譜E(n)進(jìn)行拉伸或壓縮,得到合成激勵(lì)源頻譜E′(n)。將E′(n)與原始頻譜的譜包絡(luò)V(n)相乘得到短時(shí)合成傅里葉頻譜Xm′(n)如式(5)所示:
Xm′(n)=E′(n)V(n) ? ? ? ? ? ?(5)
最后,進(jìn)行語(yǔ)音時(shí)長(zhǎng)的修改。首先對(duì)短時(shí)合成傅里葉頻譜Xm′(n)進(jìn)行傅里葉逆變換,得到中間短時(shí)合成信號(hào)xm′(n)。然后對(duì)原始拼接單元時(shí)長(zhǎng)進(jìn)行修改,得到新的中間短時(shí)合成信號(hào)xp′(n),這樣,新的基音標(biāo)注tp就取代了前面中間短時(shí)合成信號(hào)的基音標(biāo)注tm,當(dāng)時(shí)長(zhǎng)調(diào)整系數(shù)為λ時(shí),選擇合適的tm使之與λtp最接近,則xp′(n)=xm′(n)。當(dāng)時(shí)長(zhǎng)調(diào)整系數(shù)λ<1時(shí),則加快語(yǔ)音,需要去掉一些短時(shí)信號(hào);當(dāng)時(shí)長(zhǎng)調(diào)整系數(shù)λ>1時(shí),則放慢語(yǔ)速,需要重復(fù)一些短時(shí)信號(hào)。這樣就可以得到與新合成信號(hào)基音標(biāo)記同步的短時(shí)合成信號(hào)序列。
1.3 ? ?基音同步合成
采用合成信號(hào)譜與原始信號(hào)譜差異最小的最小平方疊加合成法,合成的信號(hào)如式(6)所示:
x(n)=∑papxp(n)hp(tp-n)/∑php2(tp-n) ? ? ?(6)
式中:分母是時(shí)變單位化因子,hp(n)是合成窗序列,是窗之間時(shí)變疊加的能量補(bǔ)償,ap是音強(qiáng)調(diào)整系數(shù),用來(lái)調(diào)整合成語(yǔ)音信號(hào)的強(qiáng)度。
式(6)也可簡(jiǎn)化如下:
x(n)=∑papxp′(n)/∑php(tp-n) ? ? ?(7)
公式(7)中的分母是時(shí)變的單位化因子,用來(lái)補(bǔ)償相鄰窗口疊加部分的能量損失。在寬帶條件下,當(dāng)合成窗長(zhǎng)為合成基音周期的兩倍時(shí),該因子也為常數(shù);在窄帶條件下該因子接近于常數(shù)。故式(7)可進(jìn)一步簡(jiǎn)化為如式(8)所示:
x(n)=∑papxp′(n) ? ? ? ? ?(8)
2 ? ?變聲器的設(shè)計(jì)
2.1 ? ?前面板的總體設(shè)計(jì)
為了使界面看起來(lái)簡(jiǎn)潔,變聲器的設(shè)計(jì)分為聲音采集模塊、聲音錄制模塊和聲音播放模塊。如圖1所示,左邊將聲音信號(hào)采集到LabVIEW并顯示波形,右邊將采集到的聲音信號(hào)進(jìn)行變聲處理后播放。此次設(shè)計(jì)設(shè)有五種聲音播放效果,如圖1所示。
2.2 ? ?后面板的程序設(shè)計(jì)
后面板程序設(shè)計(jì)主要分3個(gè)部分,即聲音采集程序設(shè)計(jì)、聲音播放程序設(shè)計(jì)與變聲處理程序設(shè)計(jì)。
2.2.1 ? ?聲音采集程序設(shè)計(jì)
聲音采集的程序由一系列聲音輸入VI和一系列聲音文件VI并列組成[5-6]。聲音采集程序框圖如圖2所示[7]。
2.2.2 ? ?聲音播放程序設(shè)計(jì)
聲音播放程序框圖是由聲音輸出VI和聲音文件VI組成,實(shí)現(xiàn)的功能為把聲音文件播放出來(lái)。程序框圖如圖3所示。
2.2.3 ? ?變聲處理程序設(shè)計(jì)
變聲處理程序如圖4所示。變聲之前先用數(shù)字IIR濾波器VI將寫入的聲音信號(hào)進(jìn)行濾波處理,然后用FFT頻譜(幅度-相位)VI將聲音進(jìn)行傅里葉變換,得到變換的頻譜。然后使用FFT功率譜和PSD VI,計(jì)算時(shí)間信號(hào)的平均自功率譜,最后用窗口函數(shù)縮放VI截取語(yǔ)音信號(hào)樣本,就得到了變聲處理后的聲音信號(hào)[4]。
3 ? ?程序運(yùn)行與分析
采集聲音效果測(cè)試時(shí),在界面中顯示采集的聲音波形。聲音采集播放程序運(yùn)行效果如圖5所示。
4 ? ?結(jié)語(yǔ)
本文使用基于基音同步疊加(PSOLA)算法的波形編輯和拼接技術(shù),利用虛擬儀器軟件LabVIEW對(duì)采集的聲音信號(hào)進(jìn)行濾波、調(diào)頻處理,實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的變聲處理。本設(shè)計(jì)能使變聲器的設(shè)計(jì)更加簡(jiǎn)便快捷,具有很好的應(yīng)用前景。
[參考文獻(xiàn)]
[1] 黎子芬,謝曉方,林麗娜,等.基于TD-PSOLA算法的語(yǔ)音合成方法研究[J].海軍航空工程學(xué)院學(xué)報(bào),2008,23(1):101-104.
[2] 涂相華,蔡蓮紅.用于語(yǔ)音合成的PSOLA算法簡(jiǎn)介[J].微型計(jì)算機(jī),1996(4):5-9.
[3] 劉君華,賈惠芹,丁暉,等.虛擬儀器圖形化編程語(yǔ)言LabVIEW教程[M].西安:西安電子科技大學(xué)出版社,2007.
[4] 彭柏,許剛.利用頻譜搬移控制語(yǔ)音轉(zhuǎn)換中的共振峰[J].電聲技術(shù),2007,31(1):39-43.
[5] 熊國(guó)華,羅頌榮,王耕耘.基于聲卡虛擬音頻信號(hào)分析儀設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2006,25(4):37-39.
[6] 于琳,陳健.基于Labview的聲卡信號(hào)采集及其分析系統(tǒng)設(shè)計(jì)[J].儀器儀表用戶,2009,16(4):39-41.
[7] 孟武勝,朱劍波,黃鴻,等.基于LabVIEW數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子測(cè)量技術(shù),2008(11):63-65.
收稿日期:2020-07-17
作者簡(jiǎn)介:李要芳(1987—),男,湖南常德人,碩士,工程師,主要從事液壓鑿巖機(jī)、頂錘式液壓鉆機(jī)、掘進(jìn)臺(tái)車、礦用振動(dòng)篩等方面的設(shè)計(jì)研究工作。
劉智(1986—),男,湖南岳陽(yáng)人,博士,講師,主要從事流體傳動(dòng)與控制、液壓鑿巖裝備方面的研究與教學(xué)工作。