(Chinese text in Big-5 code) GUTTS 國語文句翻語音軟體 V 2.0 ============================== 作者: 古鴻炎博士,許文龍,楊仲捷等, 國立台灣科技大學 電機系 E-mail: guhy@mail.ntust.edu.tw ●測試期限為 3個月。 若要作為商業上之使用,必需付費取得授權。 ●若只想透過網際網路進行線上測試,請連至 http://guhy.ee.ntust.edu.tw/gutts ●以下是關於在本地(local)測試之說明: 已知的問題: (a) 呼吸群、破音字之處理仍需改進 (有時會唸錯音,但有提供補救作法); (b) 英文之合成,已整合到GUTTS,但本版程式未提供英文合成之測試, 有興趣,則請約時間到我們的實驗室來測試。 (c) 只提供執行檔,未提供原始碼,因為牽涉到國科會、與專利問題。 不過,歡迎使用、傳播本軟體之執行檔。 ----------------------------------------------------------------------------- 測試環境需求: ------------ 裝有音效卡、喇叭、i386 相容 cpu 之個人電腦,執行 Linux 作業系統。 從 ftp://guhy.ee.ntust.edu.tw 取回 gutts.tar.gz (9.7 MBytes) 之壓縮檔, 以 tar -zxvf gutts.tar.gz 命令作解壓縮之動作,然後下 cd gutts 到 gutts 之目錄去。 測試音效卡: ---------- 在命令列打入如下命令,看是否能聽到聲音。 play ntust.wav GUTTS 國語文句翻語音程式之操作: ------------------------------- (1) ./gutts -h 顯示出本程式提供之選項。 其中 anti-aliasing 是內定要作的處理,以使男聲轉成女聲、小孩聲之語音 信號維持清晰度。 不過,不做反假象處理(即加上 noanti 參數), 通常也不會感覺到信號品質 退化,並且可加快合成的處理。 (2) ./gutts noanti abc.txt 依 abc.txt 文字檔裡的中文文句,合成出國語語音,語音信號送到音效卡 播出,合成完 abc.txt 裡的文句後,gutts程式就自動結束。 abc.txt 可改成 poem.txt, joke3.txt, joke9.txt, 或 news0.txt 來測試。 (3) ./gutts noanti & 將 gutts 程式放到背景執行,而以 cat abc.txt > /tmp/.synfifo 命令來將欲合成之文句送給gutts程式去合成,可一再執行如上所示之 cat ... 命令,來反覆地合成。 (4) kill -10 (gutts之process-id) 中斷掉目前gutts程式正在進行之合成處理,gutts 的 process id可由 ps 命令 來查出。若要結束背景執行之gutts程式,可下 kill (gutts之process-id) 命令。 (5) ./gutts stdin stdout < abc.txt > abc.raw 從標準輸入讀入中文文句,而由標準輸出送出合成的語音信號,輸出的信號資料 只是一序列的二進(binary)樣本值,沒有檔頭(file header),若要轉成 .wav 格式,可用 sox 命令。 (6) 參數 -8 在前述的 gutts 命令中,可加入 -8 之參數,以選擇輸出 8 bits/sample 之 信號樣本,內定是輸出 16 bits/sample 之信號樣本。要注意的是,8 bits 樣本 是以無號數(unsigned)表示,而 16 bits 樣本是以2的補數表示。 (7) 參數 -11 在前述的 gutts 命令中,可加入 -11 之參數,選擇使用以 11,025Hz 取樣率 所錄製之信號波形檔(base.dic),合成出來的語音信號也是 11,025Hz 之取樣率。 內定是使用 22,050Hz 取樣率之信號波形檔(base_.dic),合成出的語音信號也是 22,050Hz 取樣率。 改變音色、音長(duration)、音高(tone height)、聲道長(vocal-track length): ----------------------------------------------------------------------- 可在中文文句中夾雜如下之控制訊息,而令gutts程式 機動合成出 不同音色、特性之語音信號。 (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 上列之xxx表示三位十進位數,單位是百分率(%),意義是將合成語音之音調 起伏度改為內定值的 xxx%,xxx的數值範圍要在050至250之間。 (g) @>axxx 上列之xxx表示三位十進位數,單位是百分率(%),意義是將合成語音的振幅 乘上 x.xx 倍,xxx的數值範圍要在003至900之間,小心大於100時會發生 clipping現象。 (h) 阿拉伯數字之語音合成 如 TEL:2737-6684,遇到句子以 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,遇到句子以數字開頭,則以國語唸出該數目。 誌謝: ---- 感謝國科會對本軟體相關計畫之支援! 多媒體系統聲訊輸出入介面之設計與製作(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/02 增加短 duration 之處理,以配合播報新聞之速度。 V1.7, 2000/05 將 二次多項式內差 改成 band-limited 內差,來做 signal waveform resampling. V1.8, 2000/07 增加處理數種阿拉伯數字格式之功能。如 Tel:27376684, NT$1,002,356. 2000/06/26, 9:23AM, 5:45PM, 2/3, 2:3, 23.14, 2314. 增加 @>Bxxx 之 Pitch Bending 命令,用以調整音調的起伏度,如 @>B150 表示 音調的起伏度改為內定值的 150%,可使合成語音顯得較有精神,而不那麼平淡。 (內定是 @>B120) 完成英文 text-to-speech 之整合(不是唸字母),可選擇使用 festival, 或IBM ViaVoice(2001/01/03) 英文TTS軟體。 V1.9, 2002/04