有聲/靜音判別   一般來說,靜音時的訊號能量因為錄音環境的關係,並不一定等於0,不過聲訊號的能量通常會大於靜音時的訊號能量,所以我們以訊號能量去判別有聲音框與靜音音框,根據其去求取我們要合成的部分。其定義如下:

s(n)為原始音訊,En為環境周圍噪音能量。





尋找基頻   
  判斷出音框是否為有聲後,針對有聲的部分的音框使用自相關函數做基頻偵測






  其基頻為兩點峰值的(距離/取樣時間)*取樣頻率。取得音訊基頻後,可依此做為依據,調整音訊基頻以合成所需要的音訊。


合成方法   
  諧波加雜訊模型
(Harmonic plus noise model, HNM)簡介







 由圖二(b)所示,頻譜波形在2500Hz以前較具週期性,之後的峰值距離較不明顯且也不固定,HNM便是利用頻譜波形的此特性,對信號做分析。對一個語音信號的有聲部份,HNM會依據頻譜計算出最大有聲頻率Fm(t),以此分為兩部份:頻率值小於Fm(t)的為諧波部份h(t),頻率值大於Fm(t)為雜訊部份n(t)

  諧波部份我們可以看成是有倍數關係所組成的數個諧波,公式如下:


   

 其中ak(t)和ψk(t)為第k個諧波的振幅與相位,k(t)為諧波部份的弦波個數。而雜訊部份以自回歸模型(Autoregressive model, AR model)表示。

  最後合成信號s(t)便是以諧波h(t)加上雜訊n(t)可得,如下式所示:

   
   



語音合成

  本實驗我們使用
La音進行合成,而La由一子音與一母音組成,起始波形較中後段稍微不同,需分段擷取再做合成,以增加合成音的自然度。下圖三為La原始訊號波形:




 由圖三很明顯的可以看出前段波型(紅框標示)與中後段差很多,所以我們擷取的音框由有聲起始的前20ms,以用來和已經合成好的音段做語音合成。

  因合成後產生的音框相位不連續,所以將音框加上漢明窗後以疊加的方式形成最後合成波形,音長則由中後段的合成音框控制,結尾則漸小。


   

  語音相加模式如上圖四,以避免相位不同而產生的爆音。

 

  且合成過後的語音與原始音音量會不同,為了避免每段的聲音不齊,故以原始音量的最大值作為標準,合成音量以其作為標準乘上原本的振幅作為權狀值,使每個音的音量不會差異過大。