(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