實作文字轉語音(Text-to-Speech).docVIP

  • 4
  • 0
  • 约4.61千字
  • 约 8页
  • 2016-04-02 发布于天津
  • 举报
實作文字轉語音(Text-to-Speech).doc

以注音拼音法實作文字轉語音(Text-to-Speech) 資訊三 鍾以千 資訊三 鄒志鴻 使用裝置與程式撰寫環境: 硬體設備:麥克風 × 1 (輸入裝置),喇叭 × 1(輸出裝置),個人電腦 × 1 (訊號錄製、前置處理與程式執行) 執行環境 / 編譯語言:Windows XP / GNU C 錄放/語音資料庫編輯程式(playback):Goldwave v5.09、Cooledit v2.0 注音語音資料庫來源:自行錄製 國字(Big-5)轉注音資料庫:Big5-ZhuYin.map.txt Syllable、Phone與Diphone 中文字的特色是每個字元恰好都是單個音節(monosyllable),而在拼音的結構上,每個字均包含一至兩個韻母(Final)、一個子音(Initial)以及一聲到五聲的聲調(tone),這三者共同構成的差異再加上文字在詞句中的關係,便可以讓我們分辨每個中文字的不同。Phone是構成語音特性的單位,其由數個語音中最小的基本單位──音素(phoneme)所組成;Diphone則指的是兩個相異的Phone與Phone之間的轉換,對於不同特性的語言,有時Diphone是比Phone來得少的(例如西班牙文的Diphone僅有800種),故我們可以使用Diphone來減少語音資料庫的容量,可以增進語音生成的效率與減低實作複雜度。 實作方式 在這次文字轉語音(Text-to-Speech)的實作中,我們採用串接(Concatenated Synthesis)的方式來生成語音。在Front-End processing的部分,我們將Big5碼與注音符號、種聲調的對應建表,於是完成初步的Text-to-Syllable。而在Back-end processing的部分,考量資料庫的大小、語音串接的難易度與語音生成的品質與自然流暢(Naturalness),我們決定混合使用Phone和Diphone來作為拼音的基本單位,將音節(syllable)中的聲母(initial)、韻母(final)拆解成更小的phone再做串接。處理方向大致上有如下三方面: 拆解聲母(Initial)成為新的phone:經由觀察「ㄅㄆㄇ」這類聲母的波形,我們發現其是由一個子音(聲帶沒有振動,波形沒有週期性)和一個母音(聲帶有振動,波形有週期性)組成。以「ㄆ」為例:我們發現其實是由[p]這種嘴唇蹦出的無聲氣音再接上一連串有週期性的「ㄜ」的母音。故對於聲母我們只取前面子音的部份做為串接的基本單位。 將韻母(Final)與五種聲調(tone)結合成為新的phone:經由觀察波形我們認為韻母是與母音相同大小的單位,便不再對其做拆解。相反的,我們將每個韻母與五聲結合,成為特殊的母音(vowels)。 將韻母(ㄧㄨㄩ)與其他韻母做可能的結合成為Diphone:我們將部份母音(Vowels)兩兩再做組合,希望能讓母音之間轉換聽起來更自然,於是結果就形成diphone(例如我們將ㄨ當作一個phone,ㄥ也是一個phone,然後我們將其組合成為「ㄨㄥ」這樣的diphone)。 使用Big5編碼與注音對應表:綜合(1)到(3)的方式,我們可以得到一組注音符號(以37個聲母、韻母為單位)結合聲調轉成phone、diphone(共226個)的對應關係。而在中文字轉成注音符號的部份,我們使用Big5-ZhuYin.map.txt資料庫裡的對應關係,下圖為本次語音生成實作的流程圖。 實作過程: 子音(Consonant)的錄製與波型分析(以「ㄆ」為例): 圖一是注音符號「ㄆ」的波形,我們將其切成圖二中[p]的子音(Consonants)與圖三中「ㄜ」的母音。然後只取圖二中的子音來做為語音串接的Phone。而之後其它聲母如ㄅ、ㄇ、ㄈ、ㄉ、ㄊ…(共21筆資料)等都依照此種模式拆解。 另外若我們將單獨錄製的韻母「ㄜ」與「ㄆ」後半部的母音兩者相比(圖五為圖三振幅減小20%的波形):我們不難看出其波形是非常相似的。 圖四 圖五 母音(Vowels)的錄製與波型分析: 在錄製母音(Vowels)時,我們從三個方面著手處理: 單韻母母音(16 × 5 phones):「ㄧ、ㄨ、ㄩ、ㄚ、ㄛ、ㄜ、ㄝ……ㄦ」我們全部配合五聲予以錄製,而在裁切適當的波型時,我們會選擇中間偏後的部分,以去除聲帶剛開始震動的非週期性震動(如下圖六所示)。 雙韻母母音(22 × 5 phones):在中文字裡「ㄨㄥ」、「ㄧㄣ」、「ㄩㄢ」…等這類雙韻母疊合的文字相當難處理。對於此種母音我們試了兩種方法:第一是將「ㄨ」、「ㄣ」兩種單母音做串接,但兩種語音之間波形的差距過大!於是「串接」後的結果沒有任何一點拼起來的感覺。於是我們又試

文档评论(0)

1亿VIP精品文档

相关文档