(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之整合(不是唸字母),可選擇使用
festival
或IBM ViaVoice(2001/01/03)
英文TTS軟體。
MS-Windows 平台 英文text-to-speech 之整合已於 2000/06/26 完成。
V1.9, 2001/05
加入人聲歌唱聲合成之功能。
V2.0, 2002/03
關於合成語音之 信號清晰度 退化的問題,研究出一種避免清晰度退化的
合成處理方法。