(Chinese text in Big-5 code) GUTTS 國語文句翻語音軟體 V 2.0 ============================== 作者: 古鴻炎博士,許文龍,楊仲捷等, 國立台灣科技大學 資訊(電機)工程系 E-mail: guhy@mail.ntust.edu.tw ●若只想透過網際網路進行線上測試,請連至 http://guhy.ee.ntust.edu.tw/gutts ●以下是關於在本地(local)測試之說明: 已知的問題: (a) 呼吸群、破音字之處理仍需改進,有時會唸錯音, 但有提供補救作法,如下面的 (e)項 說明。 (b) 英文之合成,已整合到GUTTS,但本版程式未提供英文合成之測試, 有興趣,則請約時間到我們的實驗室來測試。 (c) 測試版之音源檔案,是由男生錄音的。正式版的音源是由女生錄音,較好聽。 (d) 未提供原始碼,因為牽涉到國科會、與專利問題。不過,歡迎測試、傳播 本軟體之執行檔,測試期限為 3個月。若欲長期使用,請來信洽商正式版。 ----------------------------------------------------------------------------- 測試環境需求: ------------ 裝有音效卡、喇叭、i486 相容 cpu 之個人電腦,執行 MS Windows NT,ME,2000,XP, 作業系統。(主記憶體容量建議 32MB 以上,CPU 建議 pentium 以上。) 從 ftp://guhy.ee.ntust.edu.tw 取回 gtswin.zip 之壓縮檔, 放入一個子目錄裡(如 mkdir gts; move gtswin.zip gts), 然後下 cd gts 到 gts 之目錄去,作解壓縮之動作(如 pkunzip gtswin.zip)。 若解出短檔名,則要將 yan-code 改名成 yan-codebook,yan-mode.dat 改成 yan-model.dat。 測試音效卡: ---------- 以滑鼠點選 ntust.wav 檔案,看是否能聽到聲音。 GUTTS 國語文句翻語音程式之使用: ------------------------------- (1) 使用方法: 在欲合成出語音的文句前,加上大寫之GUTTS 五個字母, 然後把GUTTS開頭之文句複製到剪貼簿裡,本軟體就會自動 進行語音合成之處理。所以可和其它應用程式,藉由剪貼簿來溝通。 (請參考 clip_brd.cpp 檔) 或者,把欲合成出語音的文句,複製到剪貼簿裡, 然後以滑鼠點選 開始合成 之按鈕。 (2) 參數設定: 參數 -8 在 gts.ini 檔案的第一列,可加入 -8 之參數,以選擇輸出 8 bits/sample 之 信號樣本,內定是輸出 16 bits/sample 之信號樣本。 參數 -11 在 gts.ini 檔案的第一列,可加入 -11 之參數,選擇使用以 11,025Hz 取樣率 所錄製之信號波形檔(base.dic),合成出來的語音信號也是 11,025Hz 之取樣率。 內定是使用 22,050Hz 取樣率之信號波形檔(base_.dic),合成出的語音信號也是 22,050Hz 取樣率。(若欲加快合成速度,可加上 -11 之參數) 參數 noanti noanti 表示不做反假象(anti-aliasing)之處理,以減低 CPU 負擔(時間花費)。 內定是要做反假象之處理,以使男聲轉成女聲、小孩聲之語音信號維持清晰度。 (由於不做反假象處理,通常也不會感覺到信號品質退化,因此可在 gts.ini 裡加入此參數) 改變音色、音長(duration)、音高(tone height)、聲道長(vocal-track length): ----------------------------------------------------------------------- 可在中文文句中夾雜如下之控制訊息,而令 gtswin 程式 機動合成出 不同音色、特性之語音信號。可參考附隨的 .txt 檔案。 (a) @>0, 將各個控制參數的數值重新設定為內定值。 (b) @>dxxx 或 @>1xxx 上列之xxx表示三位十進位數,單位是毫秒(ms),意義是設定一個音節的參考音長 為xxx毫秒,xxx的數值範圍要在140至990之間。 (c) @>txxx 或 @>2xxx 上列之xxx表示三位十進位數,單位是赫玆(Hz),用以設定合成語音之聲音高度 xxx的數值範圍要在060至400之間。 (d) @>vxxx 或 @>3xxx 上列之xxx表示三位十進位數,單位是百分率(%),意義是將合成語音之聲道長度 調整為原始信號聲道長度之x.xx,xxx的數值範圍要在050至200之間。 (e) 破音字 轉錯音之補救 如文句 "韓國人參加了", 被斷詞成"韓國人"、"參加", 但是想斷成 "韓國"、 "人參", 此時,可將該文句改成 "韓國@(ㄖㄣˊㄕㄣ @)加了",或改成 "韓國@(人參@)加了"。 也就是可以 @(XXXX@) 之寫法,來直接寫Big-5注音符號,其中 XXXX 可以是 一個單字詞或雙字詞的注音。 (f) @>Bxxx (版本 Ver. 1.8 以後) 上列之xxx表示三位十進位數,單位是百分率(%),意義是將音調的起伏度調整 為內定值的 x.xx,xxx的數值範圍要在050至250之間。 (g) @>axxx (版本 Ver. 1.8 以後) 上列之xxx表示三位十進位數,單位是百分率(%),意義是將合成語音的振幅 乘上 x.xx 倍,xxx的數值範圍要在003至900之間,小心大於100時會發生 clipping現象。 (h) 阿拉伯數字之語音合成 (版本 Ver. 1.8 以後) 如 TEL:27376684,遇到句子以 TEL 或 Tel 開頭,則以國語唸出"電話"及其後的 數字;以 tel 開頭,則只以國語唸出其後的數字,如tel:123。 如 NT$1,002,000,遇到句子以 NT$ 或 US$ 開頭,則以國語唸出"新台幣" (或美金)及其後的數目。 如 2000/06/26,遇到句子以 yy/mm/dd 開頭,則以國語唸出相對的年、月、日。 如 9:25AM 或 15:18PM,遇到句子的開頭有 cc:mm 及 AM 或 PM,則以國語唸出 相對的時刻。 如 2/3,遇到句子以 y/x 開頭,則以國語唸出 x 分之 y。 如 1:2,遇到句子以 y:x 開頭,則以國語唸出 y 比 x。 如 31.789,遇到句子以 y.x 開頭,則以國語唸出 y 點 x。 如 123678,遇到句子以數字開頭,則以國語唸出該數目。 (i) @>MSMike @>MSMary (版本 Ver. 1.8 以後, 且要在實驗室測試) 設定英文合成時,使用 Mike 或 Mary 之音色。 !!! 整合 中文、英文語音合成: !!! 前述的 @>txxx , @>vxxx 命令也可用來改變英文合成語音的音色。 !!! 前述的 @>dxxx 命令也可用來改變英文合成語音的速度。 (j) WVabc.wav (版本 Ver. 1.8 以後, 且要在實驗室測試) 表示從 abc.wav 檔案讀取信號樣本,當作合成之語音來播出,如此可達到 播放其它語言(如閩南語、客家語)的語音之功能。 !!! 也可先下 @>v090 或 @>v110 之命令來改變音色,但duration會受影響。 誌謝: ---- 感謝國科會對本軟體相關計畫之支援! 多媒體系統聲訊輸出入介面之設計與製作(1), 計畫編號:NSC85-2213-E011-046 基於時域波形操作之快速國語語音合成器, 計畫編號:NSC86-2213-E011-066 以隱藏式馬可夫模型為基礎之中文文句翻語音韻律模式之研究, 計畫編號:NSC89-2213-E011-058 GUTTS 軟體發展記載: ----------------- V1.0, 1996/12 信號波形之合成,使用發明專利上的方法,能夠由一個原始音色轉換出豐富的音色; 大幅增進音調高低,聲道長,音長(duration)三個因素的獨立控制之彈性, 這是本程式的特點. 以音節波形串接的方式來合成語句,原始錄進來的第一聲408個音,是由一個成年 男性以各音節分開唸的方式來錄音,切割後共佔用記憶體 2.23 MegaBytes, 取樣率11,025Hz, 位元數16bits/sample. 由於韻律參數(基週軌跡,音長,音量)值,是以rule-based方式來設定,且規則不夠 完整,如每個聲調的基週軌跡只有兩個樣式,所以,合成出的語音信號自然度不好. V1.2, 1999/05 以 VQ/HMM 模型來掌握一個中文句子的基週軌跡變化(句調),每個聲調使用了八個 由向量量化得到的軌跡樣式,因此使得自然度得到大幅的改進. 不過,其它的韻律參數尚未作進一步處理. 而破音字、呼吸群之處理也仍待改進, 所以不必訝異有時會唸錯音. V1.4, 1999/06 自然度不夠的另一個原因是,分開地唸各個音節之錄音方式,因此在這個版本中, 請一個成年男性重新錄製各音節之信號波形,讓發音者每次唸約五個字的虛擬中文 句子(無特殊語意之音節組合),再從其中將各音節切割出來. 取樣率仍是11,025Hz, 16bits/sample, 信號波形佔用記憶體2.70 MegaBytes. 使用新的音節波形後,自然度又得到了一些改進. 不過,由於未謹選發音者,事後 才發現他的鼻音太重,使得合成出的語音都有很強的鼻音; 另外,錄音時麥克風 太靠近嘴唇, 也使得合成出的語音有很強的氣音參雜其中. 加入信號波形的 anti-aliasing 處理,以使男聲轉成女聲、小孩聲之語音信號 維持清晰度。 基週軌跡之外,其它的韻律參數仍然使用rule-based的方法來設定. V1.5, 1999/09 為了提高信號的清晰度,將取樣率提升至 22,050Hz,重新錄製各音節的信號波形, 信號波形佔用記憶體6.3 MegaBytes。 V1.6, 2000/2 修改 clip_board 處理(copy/paste)之方式,以減少發生 exception。 增加短 duration 之處理,以配合播報新聞之速度。 V1.7, 2000/6 將 二次多項式內差 改成 band-limited 內差,來作 signal-waveform resampling. V1.8, 2000/7 增加處理數種阿拉伯數字格式之功能。如 Tel:27376684, NT$1,002,356.
2000/06/26, 9:23AM 5:45PM, 2/3, 2:3, 3.14, 314. 增加 @>Bxxx 之 Pitch Bending 命令,用以調整音調的起伏度,如 @>B150 表示 音調的起伏度改為內定值的 150%,可使合成語音顯得較有精神,而不那麼平淡。 完成 Linux 平台 英文text-to-speech之整合(不是唸字母),可選擇使用 festivalIBM ViaVoice(2001/01/03) 英文TTS軟體。 MS-Windows 平台 英文text-to-speech 之整合已於 2000/06/26 完成。 V1.9, 2001/05 加入人聲歌唱聲合成之功能。 V2.0, 2002/03 關於合成語音之 信號清晰度 退化的問題,研究出一種避免清晰度退化的 合成處理方法。