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

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

圖2 拼音a四種聲調的語譜圖

圖3 拼音o四種聲調的語譜圖
將圖2和圖3相同的音調進行對比,可以看出相同音調語譜圖的曲線走向大致相同。在漢語中,普通話可以按照聲調分為四種,分別是陰平、陽平、上聲、去聲四種音調[10]。圖4所示為漢語的五度制音高標記法。

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

(5)
由式(5)可得,在倒譜域中,聲門脈沖激勵與聲道響應兩者相分離[19-20]。為了提取共振峰,本文采用倒譜法來獲取共振峰的頻率值,具體操作如下。
x(n)是一個長度為M的語音信號,將第i幀的語音信號xi(n)進行N點傅里葉變換,其中j為復數的虛部單位,k為傅里葉變化的第k個頻譜,得到:
(6)
取Xi(k)的幅值|Xi(k)|,經過對數運算,得到:
(7)

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

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

圖6 語音包絡線
由圖2與圖3可以看出,語音的聲調由基頻曲線的頻率走向決定,因此采用基頻提取的方式對聲調進行分析。圖7為實際情況下提取出來拼音a的四種聲調基頻散點圖。

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

表1 多項式使用不同次數擬合結果對比
其中,誤差平方和(SSE)越小,說明函數擬合效果越好;確定系數(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進行四次擬合。令擬合函數為:
yl(x)=a0+a1x+a2x2+a3x3+a4x4l=1,2,3,4
(12)
則式(12)可化為線性代數形式:
yl(x)=XAl=1,2,3,4
(13)
為了保證擬合效果,尋找與原基頻曲線樣本點(xi,yi)距離平方和最小的擬合曲線,采用均方誤差Q求極小值來進行系數求解[23-24]:
(14)

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.4pitch模型
通過上述步驟依次可得四種聲調的擬合函數模型的參數分布及擬合結果,如表2所示。

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

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

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

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

圖12 拼音a上聲的原聲與合成結果對比圖

圖13 拼音a去聲的原聲與合成結果對比圖
可以看出,由于現實情況下,人受身體狀態與發音器官構造的差異,使得語音的發出在語譜圖上會呈現一些有干擾的陰影,影響發音效果[3]。對于越標準的發音,基頻與共振峰曲線越清晰,存在的陰影越少。為合成清晰度高、干擾小的語音,本文采用函數擬合方法可以很好地去除外界對發音的影響,使得發音結果更標準。圖10-圖12對應的一聲、二聲、三聲聲調都能夠得到很好的擬合結果,而四聲聲調存在偏差是因為在實際情況下,基頻的變化不是從剛開始就下降,一般先保持一段水平進而開始走低,由于這段水平發音時間很短且保持一聲,因此在進行函數擬合時,可以利用平緩的下降來進行擬合,最終得到擬合結果。
為直觀地檢測通過人耳后合成結果與原始語音的聽覺差,采用Sound-Similar Free軟件對兩種結果進行相似度檢測,該軟件通過做時域分析,獲取頻譜隨著時間變化的特征向量來計算相似度,最終得到四種聲調的相似度對比結果。圖14為拼音a上聲(a1)的合成結果與原始語音的相似度對比檢測結果。

圖14 拼音a上聲相似度檢測結果
采取同種方法測試四種聲調的合成結果,表3為四種聲調的檢測結果。表3分析結果與圖10-圖13頻譜分析對比結果貼合。

表3 四種聲調的相似度對比結果(%)
現在大部分考慮聲調的語音合成系統,主要采用Target模型及二次曲線擬合方法。在該模型中,四種聲調被簡單地劃分為斜率為零、上聲、下降不同且變化趨勢單一的直線,結合二次曲線計算基頻曲線拐點位置進行擬合[10]。由于三聲調曲線變化最復雜,因此以三聲調為例進行實驗對比。圖15所示為拼音a上聲的原聲和以Target模型為基礎的語音合成結果,圖16所示為對于拼音a上聲采用高次多項式和以Target模型為基礎的語音合成結果。

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

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

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