李建文,王咿卜
(陜西科技大學 電子信息與人工智能學院,陜西 西安 710021)
語音是人與人傳遞信息和表達情感最有效的方式之一。中國漢字大約有十萬個,是一種獨特的聲調表意語言[1-2]。在計算機對字符進行編碼過程中,漢字在眾多語言中所占存儲空間最大,導致編碼過程中極為不便,但若從拼音角度出發,按不同聲調對漢字進行歸類,卻可以把漢字數目縮減到約原始容量的1/4,極大的縮減了工作量且保證了語音的逼真度。在如今人工智能高速發展的時代,語音識別及語音合成要做的不僅是算法準確度的提高,更應該注重其智能化和逼真度[3-4]。語音識別與合成的結果固然重要,但忽略了不同情景下語音相關合適聲調的選擇,就難以真正實現智能化。個性化的語音合成,需要把話語中聲調所表達的情感狀態作為考察的特征之一[5-8]。同樣的語言,不同環境、情緒,會使語音發出者使用不同聲調。在醫學中,針對聽力障礙者推出的人工耳蝸產品也并未考慮聲調、語調等特征的感知[1-2]。因此,從數學角度出發,考慮漢語4種聲調的特征參數以及之間參數的變換很有必要。
劉夢媛設計了基于HMM的語音合成系統,選取緬甸語事物聲母及帶聲調事物韻母作為合成基元,解決了變音和變調問題[9];王國梁設計了端到端的語音合成系統Tacotron 2,在語料不足的情況下使用預訓練解碼器,并通過多層感知機代替變線性變化對停止符進行預測[10];宋剛基于Target模型進行語調分析,總結了4種聲調的基頻曲線變化規律,采用分段擬合方法,將各個聲調分為兩段來研究,擬合過程中所需特征參數有各段音調的斜率、音高變化的調域及所占時間[11];薛健采用線性多項式進行聲調模型的構建,主要從歸一化的規范模型出發,建模的參數需要從原始語音得到中值頻率、不同音調基頻變化的調域、同一音調但調型不同的變化調域[12]。上述研究中,前兩者基于深度學習進行語音合成,但深度學習需要極大容量語料包,過程繁瑣,且失去了對語音音調的數理本質的探究,而基于Tacotron的方法現在更適合對英語的處理,目前對漢語等多文字的語言應用尚不成熟。后2篇論文從基頻軌跡出發,討論了基頻曲線與漢語4種音調的關系,并未涉及到基頻軌跡擬合4種聲調在語音合成方面的實際應用。文中研究旨在從漢語4種聲調的角度出發,基于歸一化模型的思想,研究并提取漢語4種聲調基頻軌跡之間的共性,采用高次多項式對其進行擬合,最終以函數形式實現一種音高和音長變化可控、所需參數少且適應于各種發音的聲調變換模型,以期在語音合成、情感分析領域對語音逼真度和情感度的提高方面提供參考,以及在醫學領域對人工耳蝸的構造和聲調康復訓練方面提供參考[1]。
聲音的形成,主要由肺、氣管、喉和聲道等器官參與,語音發音原理如圖1所示。空氣通過肺器官輸出直流氣流,產生發音的動力,進入喉,喉部位的聲帶作為聲源,產生振動,輸出交流氣流,再通過聲道對交流氣流產生諧振,對聲音進行調整,從聲道輸出的速度波最終經過口唇輻射輸出聲壓波,產生了人耳中聽到的聲音[8]。

圖1 語音的發音原理
從圖1可得,聲音的發出主要是由聲帶周期性的振動產生。無論是漢語還是其他語言,語音都可按照聲帶的參與分為濁音和清音。濁音的發出伴隨著聲帶的振動,清音是氣流與空氣摩擦產生,沒有聲帶振動的參與,因此,從濁音角度出發進行語音聲調研究。
語言之所以能夠體現人類的情感,最主要的特征就在于說話人對于聲音聲調的選擇。相同的話語,不同的抑揚頓挫也會使得情感的偏重點有所差別。雖然每個人說話的腔調與講話節奏都不同,但相同聲調在走向上都是大體一致的,拼音ɑ和拼音o的4種聲調的語音頻譜圖(稱語譜圖),如圖2、圖3所示。

圖2 拼音ɑ的4種聲調的語譜

圖3 拼音o的4種聲調的語譜
a1,a2,a3,a4分別代表拼音ɑ一聲、二聲、三聲、四聲。o1,o2,o3,o4分別代表拼音o一聲、二聲、三聲、四聲。將圖2和圖3相同的音調進行對比,可以看出相同音調語譜圖的曲線走向大致相同。在漢語中,普通話可以按照聲調分為4種,分別是陰平、陽平、上聲、去聲4種音調[11]。漢語的五度制音高標記法,如圖4所示。

圖4 五度制音高標記法
從圖4可以看出,五度最高,一度最低,根據聲調的不同,選擇的音高也不同,每個漢語都有其對應的音調,即相應的音高走向,但相同音調曲線走向具有同樣的共性。
在分析語音信號時,主要考察2個重要的參數,其中之一為基頻。已知聲音的發聲源是由聲帶的周期性振動產生,聲帶一次的開啟與閉合稱為一個周期,這種周期的倒數稱為基音頻率(簡稱基頻)[8,13-14],人們所說的聲調指的是基頻關于時間的曲線。在語譜圖上,橫坐標為時間,縱坐標為頻率,基頻指的是位置最低的一條橫線對應的縱坐標的值,該值稱為基音頻率[15-17]。
提取基頻,首先對語音信號進行加窗與分幀的處理,連續信號被分為時域離散信號,m為起始時間量,得到第i幀的語音信號為xi(m),長度為M,對第i幀的語音信號xi(m)進行自相關運算[17-18],得到Ri(k),見式(1)。
(1)
式中k為時間的延遲量;N為語音信號經過分幀處理后每一幀的長度;xi(m+k)為移位k步的語音信號。
已知周期性函數進行自相關計算后,得到的函數同樣具有周期性,一個周期內自相關函數圖像為遞增函數,在周期的整倍數位置處獲得最大值[18-20]。由于語音信號的基頻具有周期性,周期值為P,因此采用自相關計算得到的函數也具有周期性,周期仍為P,且在P的整倍數位置處自相關函數會達到最大值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]。根據這一原理,采用式(1)進行對語音信號進行自相關函數運算,在R(k)中通過尋找最大值的周期性來確定每一幀語音信號的周期值P[15]。
語音信號另一個重要的參數為共振峰。在發音過程中,基頻由聲帶振動產生,由于傳輸到聲道發生諧振會產生各次諧波,這些諧波同一時刻所對應的頻率值為相應基頻的整倍數[8]。在語譜圖上,各次諧波有亮有暗,亮區域的波對應的頻率值便是共振峰的頻率值[16]。從圖1可知,當不考慮口唇輻射作用時,語音信號是由n時刻的聲門脈沖激勵u(n)(即基頻的周期信號)經聲道響應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)|,經過運算,得式(7)
(7)

window(n)=
(8)
式中n=0,1,…,N-1,n0為窗函數寬度。
(9)
(10)
某一幀信號進行共振峰提取步驟,如圖5所示。最終獲得的一聲拼音ɑ語音包絡線,如圖6所示,虛線對應的橫坐標的值為共振峰頻率。

圖5 倒譜法獲取語音包絡線

圖6 語音包絡線
從圖2、圖3可以看出,語音的聲調由基頻曲線的頻率走向決定,因此采用基頻提取的方式對聲調進行分析。實際情況下提取出來拼音ɑ的4種聲調基頻散點圖,如圖7所示。
當吃飽的羊羔羔在羊舍里盡情撒歡的時候,科爾沁沙地在靜悄悄地改變著模樣。當然,農民的生產和生活方式也在靜悄悄改變著。

圖7 實際情況下拼音ɑ的四聲基頻
從圖4與圖7對比可得,實際情況下提取出來的四聲調散點圖與理論上的音高走向差異很大。主要區別有以下幾點:
1)陰平聲調的基頻走向并不是簡單的直線,在開始與結束位置存在小幅度的起伏變換。
為了使得2.2節的語音合成更具有逼真性,根據理論與實際相結合的方式進行語音聲調的函數擬合。
2.2.1 函數最高次數選擇
為了使得擬合曲線更接近實際情況下的聲調,采用n次多項式對實際情況下提取出來的各個音調基頻進行擬合。
(11)
式中yl為第l音調的擬合結果(l=1為陰平,l=2為陽平,l=3為上聲,l=4為去聲);i為次數;ai為次數為i次的系數;x為時間序列;ai為x的系數。
對于次數n,由多項式性質可得,當n選擇越高,函數擬合效果越好,誤差越小,但過高會導致過擬合越來越嚴重。為了防止過擬合且保證有較小的誤差,統一采用相同的有限次數對4種聲調進行擬合。在4種聲調中,由于上聲聲調的基頻曲線變化最復雜,因此選擇上聲調為例進行不同次數擬合,表1為多項式不同次數擬合結果。

表1 多項式使用不同次數擬合結果對比
SSE(sum of squares due to error):和方差。SSE越小,說明函數擬合效果越好。
R-square(coefficient of determination):確定系數。R-square越接近1,表明擬合函數中的變量對原函數y有越強的解釋能力,即模型對數據擬合效果越好。
RMSE(root mean squared error):均方根、標準差。
Adjusted R-square(degree-of-freedom adjusted coefficient of determination):自由度確定系數。
綜合分析各種次數的擬合結果,確定了當次數n大于等于4時擬合效果較好,由于當n大于4時,各項次數的系數值過于大,基本在e+04以上,且擬合效果的提高程度很小。因此,在擬合函數時,選擇n=4來進行函數擬合,不僅可以有效的保證了聲調的匹配程度,而且簡化了參數,減小了運算量。不同拼音的四聲調走向有其共性,選擇n=4來進行擬合,也可以更好的使擬合函數適應不同的語音,避免過擬合。
2.2.2 函數系數
由于采用多項式函數進行曲線擬合,因此在擬合過程中,采用最小二乘法進行n次擬合。
從原始曲線得數組(xi,yi),i=0,1,…,m-1,xi為第i點的時間值,yi為對應的頻率值。以多項式最高次數n為4進行4次擬合。
令擬合函數為
yl(x)=a0+a1x+a2x2+a3x3+a4x4,
l=1,2,3,4
(12)
式中
則上式(12)可化為線性代數形式
yl(x)=XA,l=1,2,3,4
(13)
為了保證擬合效果,尋找與原基頻曲線樣本點(xi,yi),i=0,1,…,m-1距離平方和最小的擬合曲線,采用均方誤差Q求極小值來進行系數求解[25-27]。
Q(a0,a1,a2,a3,a4)=
(14)

i=0,1,2,3,4,最終得到擬合函數。
2.2.3 擬合步驟
由于語音波形可以分解為多個三角函數,同樣,也可以經過三角函數的疊加構成語音波形。三角函數的頻率為基頻,其各次諧波為基頻的整倍數級,三角函數的幅值為基頻及各次諧波的強度,由此,進行曲線擬合,如圖8所示。

圖8 聲調擬合步驟
根據圖8流程,可將聲調合成分為以下幾步:
1)將獲取的基頻連續曲線y(t)進行預處理,首先對聲調經過分幀處理,得到離散點,初始橫軸位置為n0,聲調頻率最高位置為y0,將曲線移至橫軸初始位置y(n-n0),為使得擬合函數統一并且方便處理,將曲線縱軸初始位置設置為0,即y(n-n0)-y0,得y0(n)。
2)為了使擬合函數能夠根據實際情況進行音高控制,將得到的n時刻的y0(n)進行歸一化,讓曲線的頻率最高值為1,最低點為0。根據式(15)得y1(n)。
(15)
3)對y1(n)采用二項式定理確定多項式的系數,得到擬合函數。
4)由于音調的頻率變化差值較大,因此需要對擬合函數進行縱軸的擴頻以實現真實的幅度變化,通過獲取原始語音的音高差max(y(n))-min(y(n))來對擬合函數進行擴頻,以實現正確的音高變化,見式(16)得到y3(n)。
y3(n)=y2(n)·(max(y(n))-min(y(n)))
(16)
5)擴頻之后的擬合函數y3(n)與實際曲線y(n)的音高仍存在差異,因此要通過移位使得擬合函數的初始頻率達到原始音頻的初始頻率,由擬合函數y3(n)的中值頻率y3c與實際曲線y(n)的頻率中值yc的差值決定移位量,更好的保證了合成的基頻曲線不受原始語音基頻兩端不穩定點的影響。最終由式(17)得到擬合結果y41。
y41(n)=y3(n)+(y3c-yc)
(17)
將擬合結果進行語音參數讀取,得到聲調變化的時域信息(初始位置為t0,結束位置為t1),采用矩形窗進行時域截取,見式(18)。為了使得聲調變化時長可控,設最終發音時長為t2,fs為采樣率,N為語音信號分幀后的長度,進行擴展最終得到y4(n),見式(19)。
y42(n)=y41(n)·window(n)
(18)
(19)
2.2.4 Pitch模型
通過上述步驟依次可得4種聲調的擬合函數模型的參數分布及擬合結果,見表2。

表2 4種聲調的擬合參數分布及擬合結果
從表2可得,陰平的基頻曲線變化幅度較小,陽平次之,上聲和去聲的基頻曲線變化幅度較大。根據最終得到確定系數與極限值1相比可得,4次所多項式進行語音基頻擬合方法可行。
根據表2中4種聲調的擬合函數參數,令發音時長為1,基頻的頻率最大值為300 Hz,最終得到4種聲調基頻發音曲線,如圖9所示。

圖9 4種聲調擬合的基頻曲線對比
從圖9(a)可得,陰平的曲線在實際情況下并不是單一的直線,在最高頻率300 Hz時,有較小幅度的波動。圖9(b)中陽平的基頻曲線有拐點,拐點之前為斜率遞增,拐點之后斜率遞減。圖9(c)中上聲的基頻曲線有拐點,拐點之前為斜率遞減,拐點之后斜率遞增。圖9(d)中去聲基頻曲線在發音中間階段先有小幅度的頻率波動。
由文中2.2.2知,語音可以經過多個三角函數疊加構成,見式(20)。
output(t)=∑Amp·sin(wt+φ)
(20)
式中Amp(Amplitude)為幅度,控制聲音的響度,w為聲帶振動頻率,t為時間,φ控制聲音發音時間的移位。由于w=2·π·f,f為基頻周期。則式(21)變化為如下函數。
output(t)=∑Amp·sin(2·π·f·t+φ)
(21)
在語音合成過程中,要實現聲調控制,需要將固定的聲帶振動頻率即式(20)中的定值w變為隨著時間有相應聲調起伏變化的函數,即y1(n),實驗合成語音選取的采樣頻率為8 kHz,因此在合成過程中,時間的間隔n值非常小,即離散的采樣取值可以等效為連續時間變化yl(t)。
output(t)=∑Amp·sin(2π·k·y1(t)·t+φ)
(22)
式中yl(t),l=1,2,3,4為式(12)中4種聲調擬合函數;k為基頻的整倍數級;2·π·k·yl(t)為共振峰頻率。
根據上式(22)最終從數學原理角度出發實現了帶有音調控制的語音合成。經過Adobe Audition的分析,原聲和合成的拼音ɑ的4種音調的語譜對比,如圖10,11,12,13所示。(左側為原聲語譜圖,右側為合成語音語譜圖)。

圖10 拼音ɑ陰平的原聲與合成結果對比

圖11 拼音ɑ陽平的原聲與合成結果對比

圖12 拼音ɑ上聲的原聲與合成結果對比
從處理結果看,由于現實情況下,人受身體狀態與發音器官構造的差異,使得語音的發出在語譜圖上會呈現一些有干擾的陰影,影響發音效果[3]。對于越標準的發音,基頻與共振峰曲線越清晰,存在的陰影越少。為合成清晰度高、干擾小的語音,采用函數擬合方法可以很好的去除外界對發音的影響,使得發音結果更標準。圖10,11,12,13對應的一聲、二聲、三聲聲調都能夠得到很好的擬合結果,而四聲調存在偏差是因為在實際情況下,基頻的變化不是從剛開始就下降,一般先保持一段水平進而開始走低,由于這段水平發音時間很短且保持一聲,因此在進行函數擬合時,可以利用平緩的下降來進行擬合,得到擬合結果。
現在大部分考慮聲調的語音合成系統,主要采用Target模型及二次曲線擬合方法。在該模型中,4種聲調被簡單地劃分為斜率為零、上聲、下降不同且變化趨勢單一的直線,結合二次曲線計算基頻曲線拐點位置進行擬合[11]。由于三聲調曲線變化最復雜,因此以三聲調為例進行實驗對比,拼音ɑ上聲的原聲和以Target模型為基礎的語音合成結果,如圖14所示。對于拼音ɑ上聲采用高次多項式和以Target模型為基礎的語音合成結果,如圖15所示。

圖13 拼音ɑ去聲的原聲與合成結果對比

圖14 拼音ɑ上聲的原聲與Target模型為基礎進行合成結果對比

圖15 拼音ɑ上聲的多項式擬合與Target模型為基礎進行合成結果對比
從圖14,圖15可以看出,由于語調曲線變化不是單一的,而是變化復雜且拐點較多,因此采用高次多項式,較以Target模型為基礎進行帶語調的語音合成結果得到的擬合效果更好。
利用支持向量機的方法對聲調擬合參數進行訓練、分類,最終得到2種方法關于4種聲調的識別結果,見表3。

表3 4種聲調的識別結果
從表3可知,對于陰平和去聲來說,由于2種聲調的基頻變化曲線都是單一的,因此2種方法的識別率幾乎沒有差別,而對于陽平與上聲音調來說,采用多項式進行基頻曲線擬合效果更好,總體識別率也更高。雖然采用多項式曲線擬合方法進行轉換之后,陽平和上聲較陰平和去聲識別結果的正確率較低。但總體上看,此曲線擬合技術已經可以達到使用的效果。
1)語音發音2個重要的參數:基頻和共振峰。對語音的某一幀頻率值進行自相關運算,在周期P處存在極大值。基頻值采用自相關運算求極大值方法求得。共振峰的頻率值可根據倒譜法求得。
2)4種語調的基頻曲線在實際情況下,一聲語調存在波形變化,二聲與三聲語調基頻與五度制音高標記法描述的音高走向不同,拐點更接近前端,四聲語調基頻下降趨勢更快,時間更短。
3)采用多項式進行基頻曲線擬合,選擇四階多項式擬合與原始曲線相似度可達到97.98%,同時避免了曲線過擬合。
4)對發音的數學原理進行分析,提取了語音的基頻以及共振峰2個重要參數,最終通過三角函數的疊加以及4種音調的控制實現了聲調可控的語音合成。相比傳統的基頻提取,文中能夠通過函數擬合來靈活調整語調,相比機器學習,文中方法對語料包的要求更低。經過驗證,達到了95.91%的識別率。對于今后語音合成、情感分析、語音識別的智能化、準確度有很好的參考價值,對探究發音的數學原理有參考意義。