李建文,王咿卜
(陜西科技大學 電子信息與人工智能學院,陜西 西安 710021)
語音是人與人傳遞信息和表達情感最有效的方式之一。中國漢字大約有十萬個,是一種獨特的聲調(diào)表意語言[1-2]。在計算機對字符進行編碼過程中,漢字在眾多語言中所占存儲空間最大,導致編碼過程中極為不便,但若從拼音角度出發(fā),按不同聲調(diào)對漢字進行歸類,卻可以把漢字數(shù)目縮減到約原始容量的1/4,極大的縮減了工作量且保證了語音的逼真度。在如今人工智能高速發(fā)展的時代,語音識別及語音合成要做的不僅是算法準確度的提高,更應該注重其智能化和逼真度[3-4]。語音識別與合成的結(jié)果固然重要,但忽略了不同情景下語音相關(guān)合適聲調(diào)的選擇,就難以真正實現(xiàn)智能化。個性化的語音合成,需要把話語中聲調(diào)所表達的情感狀態(tài)作為考察的特征之一[5-8]。同樣的語言,不同環(huán)境、情緒,會使語音發(fā)出者使用不同聲調(diào)。在醫(yī)學中,針對聽力障礙者推出的人工耳蝸產(chǎn)品也并未考慮聲調(diào)、語調(diào)等特征的感知[1-2]。因此,從數(shù)學角度出發(fā),考慮漢語4種聲調(diào)的特征參數(shù)以及之間參數(shù)的變換很有必要。
劉夢媛設計了基于HMM的語音合成系統(tǒng),選取緬甸語事物聲母及帶聲調(diào)事物韻母作為合成基元,解決了變音和變調(diào)問題[9];王國梁設計了端到端的語音合成系統(tǒng)Tacotron 2,在語料不足的情況下使用預訓練解碼器,并通過多層感知機代替變線性變化對停止符進行預測[10];宋剛基于Target模型進行語調(diào)分析,總結(jié)了4種聲調(diào)的基頻曲線變化規(guī)律,采用分段擬合方法,將各個聲調(diào)分為兩段來研究,擬合過程中所需特征參數(shù)有各段音調(diào)的斜率、音高變化的調(diào)域及所占時間[11];薛健采用線性多項式進行聲調(diào)模型的構(gòu)建,主要從歸一化的規(guī)范模型出發(fā),建模的參數(shù)需要從原始語音得到中值頻率、不同音調(diào)基頻變化的調(diào)域、同一音調(diào)但調(diào)型不同的變化調(diào)域[12]。上述研究中,前兩者基于深度學習進行語音合成,但深度學習需要極大容量語料包,過程繁瑣,且失去了對語音音調(diào)的數(shù)理本質(zhì)的探究,而基于Tacotron的方法現(xiàn)在更適合對英語的處理,目前對漢語等多文字的語言應用尚不成熟。后2篇論文從基頻軌跡出發(fā),討論了基頻曲線與漢語4種音調(diào)的關(guān)系,并未涉及到基頻軌跡擬合4種聲調(diào)在語音合成方面的實際應用。文中研究旨在從漢語4種聲調(diào)的角度出發(fā),基于歸一化模型的思想,研究并提取漢語4種聲調(diào)基頻軌跡之間的共性,采用高次多項式對其進行擬合,最終以函數(shù)形式實現(xiàn)一種音高和音長變化可控、所需參數(shù)少且適應于各種發(fā)音的聲調(diào)變換模型,以期在語音合成、情感分析領(lǐng)域?qū)φZ音逼真度和情感度的提高方面提供參考,以及在醫(yī)學領(lǐng)域?qū)θ斯ざ伒臉?gòu)造和聲調(diào)康復訓練方面提供參考[1]。
聲音的形成,主要由肺、氣管、喉和聲道等器官參與,語音發(fā)音原理如圖1所示??諝馔ㄟ^肺器官輸出直流氣流,產(chǎn)生發(fā)音的動力,進入喉,喉部位的聲帶作為聲源,產(chǎn)生振動,輸出交流氣流,再通過聲道對交流氣流產(chǎn)生諧振,對聲音進行調(diào)整,從聲道輸出的速度波最終經(jīng)過口唇輻射輸出聲壓波,產(chǎn)生了人耳中聽到的聲音[8]。
圖1 語音的發(fā)音原理
從圖1可得,聲音的發(fā)出主要是由聲帶周期性的振動產(chǎn)生。無論是漢語還是其他語言,語音都可按照聲帶的參與分為濁音和清音。濁音的發(fā)出伴隨著聲帶的振動,清音是氣流與空氣摩擦產(chǎn)生,沒有聲帶振動的參與,因此,從濁音角度出發(fā)進行語音聲調(diào)研究。
語言之所以能夠體現(xiàn)人類的情感,最主要的特征就在于說話人對于聲音聲調(diào)的選擇。相同的話語,不同的抑揚頓挫也會使得情感的偏重點有所差別。雖然每個人說話的腔調(diào)與講話節(jié)奏都不同,但相同聲調(diào)在走向上都是大體一致的,拼音ɑ和拼音o的4種聲調(diào)的語音頻譜圖(稱語譜圖),如圖2、圖3所示。
圖2 拼音ɑ的4種聲調(diào)的語譜
圖3 拼音o的4種聲調(diào)的語譜
a1,a2,a3,a4分別代表拼音ɑ一聲、二聲、三聲、四聲。o1,o2,o3,o4分別代表拼音o一聲、二聲、三聲、四聲。將圖2和圖3相同的音調(diào)進行對比,可以看出相同音調(diào)語譜圖的曲線走向大致相同。在漢語中,普通話可以按照聲調(diào)分為4種,分別是陰平、陽平、上聲、去聲4種音調(diào)[11]。漢語的五度制音高標記法,如圖4所示。
圖4 五度制音高標記法
從圖4可以看出,五度最高,一度最低,根據(jù)聲調(diào)的不同,選擇的音高也不同,每個漢語都有其對應的音調(diào),即相應的音高走向,但相同音調(diào)曲線走向具有同樣的共性。
在分析語音信號時,主要考察2個重要的參數(shù),其中之一為基頻。已知聲音的發(fā)聲源是由聲帶的周期性振動產(chǎn)生,聲帶一次的開啟與閉合稱為一個周期,這種周期的倒數(shù)稱為基音頻率(簡稱基頻)[8,13-14],人們所說的聲調(diào)指的是基頻關(guān)于時間的曲線。在語譜圖上,橫坐標為時間,縱坐標為頻率,基頻指的是位置最低的一條橫線對應的縱坐標的值,該值稱為基音頻率[15-17]。
提取基頻,首先對語音信號進行加窗與分幀的處理,連續(xù)信號被分為時域離散信號,m為起始時間量,得到第i幀的語音信號為xi(m),長度為M,對第i幀的語音信號xi(m)進行自相關(guān)運算[17-18],得到Ri(k),見式(1)。
(1)
式中k為時間的延遲量;N為語音信號經(jīng)過分幀處理后每一幀的長度;xi(m+k)為移位k步的語音信號。
已知周期性函數(shù)進行自相關(guān)計算后,得到的函數(shù)同樣具有周期性,一個周期內(nèi)自相關(guān)函數(shù)圖像為遞增函數(shù),在周期的整倍數(shù)位置處獲得最大值[18-20]。由于語音信號的基頻具有周期性,周期值為P,因此采用自相關(guān)計算得到的函數(shù)也具有周期性,周期仍為P,且在P的整倍數(shù)位置處自相關(guān)函數(shù)會達到最大值max(Ri(k)),見式(2)、式(3)。
Ri(k)=Ri(k+P)
(2)
max(Ri(k))=Ri(±nP),n=1,2,3,…
(3)
從式(3)知,當k=0時,R(P)為最大值[18]。根據(jù)這一原理,采用式(1)進行對語音信號進行自相關(guān)函數(shù)運算,在R(k)中通過尋找最大值的周期性來確定每一幀語音信號的周期值P[15]。
語音信號另一個重要的參數(shù)為共振峰。在發(fā)音過程中,基頻由聲帶振動產(chǎn)生,由于傳輸?shù)铰暤腊l(fā)生諧振會產(chǎn)生各次諧波,這些諧波同一時刻所對應的頻率值為相應基頻的整倍數(shù)[8]。在語譜圖上,各次諧波有亮有暗,亮區(qū)域的波對應的頻率值便是共振峰的頻率值[16]。從圖1可知,當不考慮口唇輻射作用時,語音信號是由n時刻的聲門脈沖激勵u(n)(即基頻的周期信號)經(jīng)聲道響應v(n)濾波得到,即
x(n)=u(n)*v(n)
(4)
將上式(4)中3個分量求倒譜,得
(5)
由式(5)可得,在倒譜域中,聲門脈沖激勵與聲道響應兩者相分離[21-22]。為了提取共振峰,采用倒譜法來獲取共振峰的頻率值,具體操作如下。
x(n)是一個長度為M的語音信號,將第i幀的語音信號xi(n)進行N點傅里葉變換得式(6)
(6)
取Xi(k)的幅值|Xi(k)|,經(jīng)過運算,得式(7)
(7)
window(n)=
(8)
式中n=0,1,…,N-1,n0為窗函數(shù)寬度。
(9)
(10)
某一幀信號進行共振峰提取步驟,如圖5所示。最終獲得的一聲拼音ɑ語音包絡線,如圖6所示,虛線對應的橫坐標的值為共振峰頻率。
圖5 倒譜法獲取語音包絡線
圖6 語音包絡線
從圖2、圖3可以看出,語音的聲調(diào)由基頻曲線的頻率走向決定,因此采用基頻提取的方式對聲調(diào)進行分析。實際情況下提取出來拼音ɑ的4種聲調(diào)基頻散點圖,如圖7所示。
當吃飽的羊羔羔在羊舍里盡情撒歡的時候,科爾沁沙地在靜悄悄地改變著模樣。當然,農(nóng)民的生產(chǎn)和生活方式也在靜悄悄改變著。
圖7 實際情況下拼音ɑ的四聲基頻
從圖4與圖7對比可得,實際情況下提取出來的四聲調(diào)散點圖與理論上的音高走向差異很大。主要區(qū)別有以下幾點:
1)陰平聲調(diào)的基頻走向并不是簡單的直線,在開始與結(jié)束位置存在小幅度的起伏變換。
為了使得2.2節(jié)的語音合成更具有逼真性,根據(jù)理論與實際相結(jié)合的方式進行語音聲調(diào)的函數(shù)擬合。
2.2.1 函數(shù)最高次數(shù)選擇
為了使得擬合曲線更接近實際情況下的聲調(diào),采用n次多項式對實際情況下提取出來的各個音調(diào)基頻進行擬合。
(11)
式中yl為第l音調(diào)的擬合結(jié)果(l=1為陰平,l=2為陽平,l=3為上聲,l=4為去聲);i為次數(shù);ai為次數(shù)為i次的系數(shù);x為時間序列;ai為x的系數(shù)。
對于次數(shù)n,由多項式性質(zhì)可得,當n選擇越高,函數(shù)擬合效果越好,誤差越小,但過高會導致過擬合越來越嚴重。為了防止過擬合且保證有較小的誤差,統(tǒng)一采用相同的有限次數(shù)對4種聲調(diào)進行擬合。在4種聲調(diào)中,由于上聲聲調(diào)的基頻曲線變化最復雜,因此選擇上聲調(diào)為例進行不同次數(shù)擬合,表1為多項式不同次數(shù)擬合結(jié)果。
表1 多項式使用不同次數(shù)擬合結(jié)果對比
SSE(sum of squares due to error):和方差。SSE越小,說明函數(shù)擬合效果越好。
R-square(coefficient of determination):確定系數(shù)。R-square越接近1,表明擬合函數(shù)中的變量對原函數(shù)y有越強的解釋能力,即模型對數(shù)據(jù)擬合效果越好。
RMSE(root mean squared error):均方根、標準差。
Adjusted R-square(degree-of-freedom adjusted coefficient of determination):自由度確定系數(shù)。
綜合分析各種次數(shù)的擬合結(jié)果,確定了當次數(shù)n大于等于4時擬合效果較好,由于當n大于4時,各項次數(shù)的系數(shù)值過于大,基本在e+04以上,且擬合效果的提高程度很小。因此,在擬合函數(shù)時,選擇n=4來進行函數(shù)擬合,不僅可以有效的保證了聲調(diào)的匹配程度,而且簡化了參數(shù),減小了運算量。不同拼音的四聲調(diào)走向有其共性,選擇n=4來進行擬合,也可以更好的使擬合函數(shù)適應不同的語音,避免過擬合。
2.2.2 函數(shù)系數(shù)
由于采用多項式函數(shù)進行曲線擬合,因此在擬合過程中,采用最小二乘法進行n次擬合。
從原始曲線得數(shù)組(xi,yi),i=0,1,…,m-1,xi為第i點的時間值,yi為對應的頻率值。以多項式最高次數(shù)n為4進行4次擬合。
令擬合函數(shù)為
yl(x)=a0+a1x+a2x2+a3x3+a4x4,
l=1,2,3,4
(12)
式中
則上式(12)可化為線性代數(shù)形式
yl(x)=XA,l=1,2,3,4
(13)
為了保證擬合效果,尋找與原基頻曲線樣本點(xi,yi),i=0,1,…,m-1距離平方和最小的擬合曲線,采用均方誤差Q求極小值來進行系數(shù)求解[25-27]。
Q(a0,a1,a2,a3,a4)=
(14)
i=0,1,2,3,4,最終得到擬合函數(shù)。
2.2.3 擬合步驟
由于語音波形可以分解為多個三角函數(shù),同樣,也可以經(jīng)過三角函數(shù)的疊加構(gòu)成語音波形。三角函數(shù)的頻率為基頻,其各次諧波為基頻的整倍數(shù)級,三角函數(shù)的幅值為基頻及各次諧波的強度,由此,進行曲線擬合,如圖8所示。
圖8 聲調(diào)擬合步驟
根據(jù)圖8流程,可將聲調(diào)合成分為以下幾步:
1)將獲取的基頻連續(xù)曲線y(t)進行預處理,首先對聲調(diào)經(jīng)過分幀處理,得到離散點,初始橫軸位置為n0,聲調(diào)頻率最高位置為y0,將曲線移至橫軸初始位置y(n-n0),為使得擬合函數(shù)統(tǒng)一并且方便處理,將曲線縱軸初始位置設置為0,即y(n-n0)-y0,得y0(n)。
2)為了使擬合函數(shù)能夠根據(jù)實際情況進行音高控制,將得到的n時刻的y0(n)進行歸一化,讓曲線的頻率最高值為1,最低點為0。根據(jù)式(15)得y1(n)。
(15)
3)對y1(n)采用二項式定理確定多項式的系數(shù),得到擬合函數(shù)。
4)由于音調(diào)的頻率變化差值較大,因此需要對擬合函數(shù)進行縱軸的擴頻以實現(xiàn)真實的幅度變化,通過獲取原始語音的音高差max(y(n))-min(y(n))來對擬合函數(shù)進行擴頻,以實現(xiàn)正確的音高變化,見式(16)得到y(tǒng)3(n)。
y3(n)=y2(n)·(max(y(n))-min(y(n)))
(16)
5)擴頻之后的擬合函數(shù)y3(n)與實際曲線y(n)的音高仍存在差異,因此要通過移位使得擬合函數(shù)的初始頻率達到原始音頻的初始頻率,由擬合函數(shù)y3(n)的中值頻率y3c與實際曲線y(n)的頻率中值yc的差值決定移位量,更好的保證了合成的基頻曲線不受原始語音基頻兩端不穩(wěn)定點的影響。最終由式(17)得到擬合結(jié)果y41。
y41(n)=y3(n)+(y3c-yc)
(17)
將擬合結(jié)果進行語音參數(shù)讀取,得到聲調(diào)變化的時域信息(初始位置為t0,結(jié)束位置為t1),采用矩形窗進行時域截取,見式(18)。為了使得聲調(diào)變化時長可控,設最終發(fā)音時長為t2,fs為采樣率,N為語音信號分幀后的長度,進行擴展最終得到y(tǒng)4(n),見式(19)。
y42(n)=y41(n)·window(n)
(18)
(19)
2.2.4 Pitch模型
通過上述步驟依次可得4種聲調(diào)的擬合函數(shù)模型的參數(shù)分布及擬合結(jié)果,見表2。
表2 4種聲調(diào)的擬合參數(shù)分布及擬合結(jié)果
從表2可得,陰平的基頻曲線變化幅度較小,陽平次之,上聲和去聲的基頻曲線變化幅度較大。根據(jù)最終得到確定系數(shù)與極限值1相比可得,4次所多項式進行語音基頻擬合方法可行。
根據(jù)表2中4種聲調(diào)的擬合函數(shù)參數(shù),令發(fā)音時長為1,基頻的頻率最大值為300 Hz,最終得到4種聲調(diào)基頻發(fā)音曲線,如圖9所示。
圖9 4種聲調(diào)擬合的基頻曲線對比
從圖9(a)可得,陰平的曲線在實際情況下并不是單一的直線,在最高頻率300 Hz時,有較小幅度的波動。圖9(b)中陽平的基頻曲線有拐點,拐點之前為斜率遞增,拐點之后斜率遞減。圖9(c)中上聲的基頻曲線有拐點,拐點之前為斜率遞減,拐點之后斜率遞增。圖9(d)中去聲基頻曲線在發(fā)音中間階段先有小幅度的頻率波動。
由文中2.2.2知,語音可以經(jīng)過多個三角函數(shù)疊加構(gòu)成,見式(20)。
output(t)=∑Amp·sin(wt+φ)
(20)
式中Amp(Amplitude)為幅度,控制聲音的響度,w為聲帶振動頻率,t為時間,φ控制聲音發(fā)音時間的移位。由于w=2·π·f,f為基頻周期。則式(21)變化為如下函數(shù)。
output(t)=∑Amp·sin(2·π·f·t+φ)
(21)
在語音合成過程中,要實現(xiàn)聲調(diào)控制,需要將固定的聲帶振動頻率即式(20)中的定值w變?yōu)殡S著時間有相應聲調(diào)起伏變化的函數(shù),即y1(n),實驗合成語音選取的采樣頻率為8 kHz,因此在合成過程中,時間的間隔n值非常小,即離散的采樣取值可以等效為連續(xù)時間變化yl(t)。
output(t)=∑Amp·sin(2π·k·y1(t)·t+φ)
(22)
式中yl(t),l=1,2,3,4為式(12)中4種聲調(diào)擬合函數(shù);k為基頻的整倍數(shù)級;2·π·k·yl(t)為共振峰頻率。
根據(jù)上式(22)最終從數(shù)學原理角度出發(fā)實現(xiàn)了帶有音調(diào)控制的語音合成。經(jīng)過Adobe Audition的分析,原聲和合成的拼音ɑ的4種音調(diào)的語譜對比,如圖10,11,12,13所示。(左側(cè)為原聲語譜圖,右側(cè)為合成語音語譜圖)。
圖10 拼音ɑ陰平的原聲與合成結(jié)果對比
圖11 拼音ɑ陽平的原聲與合成結(jié)果對比
圖12 拼音ɑ上聲的原聲與合成結(jié)果對比
從處理結(jié)果看,由于現(xiàn)實情況下,人受身體狀態(tài)與發(fā)音器官構(gòu)造的差異,使得語音的發(fā)出在語譜圖上會呈現(xiàn)一些有干擾的陰影,影響發(fā)音效果[3]。對于越標準的發(fā)音,基頻與共振峰曲線越清晰,存在的陰影越少。為合成清晰度高、干擾小的語音,采用函數(shù)擬合方法可以很好的去除外界對發(fā)音的影響,使得發(fā)音結(jié)果更標準。圖10,11,12,13對應的一聲、二聲、三聲聲調(diào)都能夠得到很好的擬合結(jié)果,而四聲調(diào)存在偏差是因為在實際情況下,基頻的變化不是從剛開始就下降,一般先保持一段水平進而開始走低,由于這段水平發(fā)音時間很短且保持一聲,因此在進行函數(shù)擬合時,可以利用平緩的下降來進行擬合,得到擬合結(jié)果。
現(xiàn)在大部分考慮聲調(diào)的語音合成系統(tǒng),主要采用Target模型及二次曲線擬合方法。在該模型中,4種聲調(diào)被簡單地劃分為斜率為零、上聲、下降不同且變化趨勢單一的直線,結(jié)合二次曲線計算基頻曲線拐點位置進行擬合[11]。由于三聲調(diào)曲線變化最復雜,因此以三聲調(diào)為例進行實驗對比,拼音ɑ上聲的原聲和以Target模型為基礎的語音合成結(jié)果,如圖14所示。對于拼音ɑ上聲采用高次多項式和以Target模型為基礎的語音合成結(jié)果,如圖15所示。
圖13 拼音ɑ去聲的原聲與合成結(jié)果對比
圖14 拼音ɑ上聲的原聲與Target模型為基礎進行合成結(jié)果對比
圖15 拼音ɑ上聲的多項式擬合與Target模型為基礎進行合成結(jié)果對比
從圖14,圖15可以看出,由于語調(diào)曲線變化不是單一的,而是變化復雜且拐點較多,因此采用高次多項式,較以Target模型為基礎進行帶語調(diào)的語音合成結(jié)果得到的擬合效果更好。
利用支持向量機的方法對聲調(diào)擬合參數(shù)進行訓練、分類,最終得到2種方法關(guān)于4種聲調(diào)的識別結(jié)果,見表3。
表3 4種聲調(diào)的識別結(jié)果
從表3可知,對于陰平和去聲來說,由于2種聲調(diào)的基頻變化曲線都是單一的,因此2種方法的識別率幾乎沒有差別,而對于陽平與上聲音調(diào)來說,采用多項式進行基頻曲線擬合效果更好,總體識別率也更高。雖然采用多項式曲線擬合方法進行轉(zhuǎn)換之后,陽平和上聲較陰平和去聲識別結(jié)果的正確率較低。但總體上看,此曲線擬合技術(shù)已經(jīng)可以達到使用的效果。
1)語音發(fā)音2個重要的參數(shù):基頻和共振峰。對語音的某一幀頻率值進行自相關(guān)運算,在周期P處存在極大值?;l值采用自相關(guān)運算求極大值方法求得。共振峰的頻率值可根據(jù)倒譜法求得。
2)4種語調(diào)的基頻曲線在實際情況下,一聲語調(diào)存在波形變化,二聲與三聲語調(diào)基頻與五度制音高標記法描述的音高走向不同,拐點更接近前端,四聲語調(diào)基頻下降趨勢更快,時間更短。
3)采用多項式進行基頻曲線擬合,選擇四階多項式擬合與原始曲線相似度可達到97.98%,同時避免了曲線過擬合。
4)對發(fā)音的數(shù)學原理進行分析,提取了語音的基頻以及共振峰2個重要參數(shù),最終通過三角函數(shù)的疊加以及4種音調(diào)的控制實現(xiàn)了聲調(diào)可控的語音合成。相比傳統(tǒng)的基頻提取,文中能夠通過函數(shù)擬合來靈活調(diào)整語調(diào),相比機器學習,文中方法對語料包的要求更低。經(jīng)過驗證,達到了95.91%的識別率。對于今后語音合成、情感分析、語音識別的智能化、準確度有很好的參考價值,對探究發(fā)音的數(shù)學原理有參考意義。