TTS解析
TTS文語轉換用途很廣,包括電子郵件的閱讀、IVR系統的語音提示等等,目前IVR系統已廣泛套用於各個行業(如電信、交通運輸等)。
TTS所用的關鍵技術就是語音合成(SpeechSynthesis)。早期的TTS一般採用專用的晶片實現,如德州儀器公司的TMS50C10/TMS50C57、飛利浦的PH84H36等,但主要用在家用電器或兒童玩具中。
而基於微機套用的TTS一般用純軟體實現,主要包括以下幾部分:
●文本分析-對輸入文本進行語言學分析,逐句進行辭彙的、語法的和語義的分析,以確定句子的低層結構和每個字的音素的組成,包括文本的斷句、字詞切分、多音字的處理、數字的處理、縮略語的處理等。
●語音合成-把處理好的文本所對應的單字或短語從語音合成庫中提取,把語言學描述轉化成言語波形。
●韻律處理-合成音質(Qualityof Synthetic Speech)是指語音合成系統所輸出的語音的質量,一般從清晰度(或可懂度)、自然度和連貫性等方面進行主觀評價。清晰度是正確聽辨有意義詞語的百分率;自然度用來評價合成語音音質是否接近人說話的聲音,合成詞語的語調是否自然; 連貫性用來評價合成語句是否流暢。
要合成出高質量的語音,所採用的算法是極為複雜的,因此對機器的要求也非常高。算法的複雜度決定了目前微機並發進行多通道TTS的系統容量。
除了TTS軟體之外,很多商家還提供硬體產品,其中包括以色列WizCom Technologies公司的 Quick Link Pen,它是一個筆狀的可以掃描也可以閱讀文字的設備;還有Ostrich Software公司的Road Runner,一個手持的可以閱讀ASCII文本的設備;另外還有美國DEC公司的DecTalk TTS,它是可以替代音效卡的外部硬體設備,它包含一個內部軟體設備,可以與個人電腦自己的音效卡協同工作。
TTS在CTI的套用中的基本構架
在一般的CTI套用系統中,都會有IVR(互動式語音應答系統)。IVR系統是呼叫中心的重要組成部分,通過IVR系統,用戶可以利用音頻按健電話輸入信息,從系統中獲得預先錄製的數字或合成語音信息。具有TTS功能的IVR可以加快服務速度,節約服務成本,使IVR為呼叫者提供7*24小時的服務。
目前常見的IVR系統大都是通用的工控機平台上插入語音板卡組成,並支持中文語音合成TTS等技術。
一個典型的包含TTS服務的電話服務流程可分為:
用戶電話撥入,系統IVR回響,獲得用戶按鍵等信息。
IVR根據用戶的按鍵信息,向資料庫伺服器申請相關數據。
資料庫伺服器返回文本數據給IVR。
IVR通過其TCP通訊接口,將需要合成的文本信息傳送給TTS伺服器。
TTS伺服器將用戶文本合成的語音數據分段通過TCP通訊接口傳送給IVR伺服器。
IVR伺服器把分段語音數據組裝成為獨立的語音檔案。
IVR播放相應的語音檔案給電話用戶。
一般的公網接入(IVR)大都採用工控機+語音板卡,而合成的語音數據則通過區域網路傳給IVR。這種結構只適用於簡單的套用場合。
中文TTS系統
包括中文語音處理和語音合成,利用中文韻律等相關知識對中文語句進行分詞、詞性判斷、注音、數字元號轉換,語音合成通過查詢中文語音庫得到語音。目前中文TTS系統,比較著名的有:NUANCE,IBM,Microsoft,Fujitsu,科大訊飛,捷通華聲等研究的系統。目前比較關鍵的就是中文韻律處理、符號數字、多音字、構詞方面有較多的問題,需要不斷研究,使得中文語音合成的自然化程度較高。
TTS文本轉語音技術的套用案例(TTSUU文本轉語音軟體)
TTS文本轉語音技術已經逐漸成熟,市場上也出現了一些優秀的TTS軟體,例如支持手機端的PDF Markup Cloud 等,比較有代表性是一款叫做TTSUU (Text-to-Speech Universal Utility) 的國產文本朗讀軟體,這個軟體能朗讀和復讀幾乎任何語言的文本內容,具有20級音調變聲和20級語速調節能力,在朗讀時能根據文本中的標點符號自動判斷朗讀停頓,也允許用戶在文本的任意位置設定任意長的停頓時間,TTSUU軟體能把文本導出成Wav和MP3檔案,同時能導出相應的LRC以及SMI同步歌詞字幕檔案,還能錄音並輸出Wav和MP3檔案。TTSUU軟體能夠通過切換語音引擎、重複朗讀、放慢或者加快朗讀速度、調高或者調低朗讀音調等功能幫助學生學習外語,提供包括中、英、日、韓、德、法、西、葡、俄等近30個語音引擎,發音標準,語氣感情色彩豐富,幾可亂真。TTSUU軟體允許您通過手工輸入、拷貝貼上、打開TXT文本檔案、Word檔案以及PDF檔案等方式對文本內容進行朗讀、導出音頻和字幕,您也可以從任何網頁、Email、電子文檔中拷貝任何文本內容,然後以隨機彩色標籤的方式貼上在主界面左右兩根柱子上供您隨時編輯、閱讀、或者進行語音檔案轉換,是工作、學習、聽小說,語音校對、語音廣告、音效素材製作等不可缺少的好幫手。
TTS與CTI
CTI技術使電信和計算機相互融合,克服了傳統電信和計算機服務相對單一的缺點,將兩者完美結合了起來。其套用領域非常廣泛,任何需要語音、數據通信,特別是那些希望把計算機網與通信網結合起來完成語音數據信息交換的系統都會用到CTI技術。
TTS即語音合成技術(Text To Speech),它涉及聲學、語言學、數學信號處理技術、多媒體技術等多個學科技術,是中文信息處理領域的一項前沿技術,實現把計算機中任意出現的文字轉換成自然流暢的語音輸出。
TTS在CTI系統中可以套用在IVR(互動式語音應答)伺服器上,以提供語音互動式平台,為用戶電話來訪提供語音提示,引導用戶選擇服務內容和輸入電話事務所需的數據,並接受用戶在電話撥號鍵盤上輸入的信息,實現對計算機資料庫等信息資料的互動式訪問。
在IVR中套用TTS可以自動將文本信息轉換為語音檔案,或者實時地將文本信息合成語音並通過電話發布。實現文本與語音自動雙向轉換,以達到人與系統的自動互動,隨時隨地為客戶服務。維護人員不必再人工錄音,只須將電子文檔引入系統中,系統可以自動將電子文檔轉換為語音信息播放給客戶。資料庫中存放的大量數據,無需事先進行錄音,能夠隨時根據查詢條件查出併合成語音進行播報,從而大大減少了座席人員的工作負擔。
那么應如何將TTS功能附加到CTI套用中呢?某些比較先進的交換平台,已經在交換機的內部實現了TTS的功能,並作為標準接口的一部分對外提供,業務開發商只需要簡單的調用他們即可以在業務中使用該功能。
對於未實現TTS功能的PBX,就需要業務開發商自己去選擇合適的平台,在此基礎上進行二次開發,即調用所選TTS平台提供的標準接口,實現語音合成功能。
目前CTI已經成為全球發展最為迅猛的產業之一,每年以50%的速度增長,CTI如同計算機產業一樣是一個金字塔形的產業鏈,從上到下會以至少20倍的幅度增值。TTS作為一種誘人的新技術,如果能很好的嵌入到增值業務的套用中去,必將形成一個更好的套用前景。
杭州音通軟體有限公司是由國家教育部和浙江省人民政府聯辦並依託浙江大學而成立的高新技術公司,音通公司主要致力於計算機語音技術的研發並逐步開拓語音識別、語音流媒體傳輸等其它語音領域的研究。其核心技術(Intone_TTS)是具有自主智慧財產權的中文語音合成技術,在由浙江省科技廳組織的鑑定中被專家一致鑑定為國內領先地位,並已申請多項國家專利。
Intone_TTS是一套把文本信息轉換為語音信息的開發工具包,為系統集成商、軟體開發商提供了完備的接口函式和編程示例,使用戶能夠靈活的進行調用,並集成到其它套用系統中。接口需要語音合成運行庫的支持,適合多種開發環境。開發者可以根據具體的套用場合進行選擇。
它能夠對所有的漢字、英文、阿拉伯數字進行語音合成;
支持繁體字及多音字的編輯;
合成效果:自然、平滑;
規範的函式調用接口,同時支持微軟SAPI的調用;支持同步調用和異步調用方式;
支持PCM Wave,uLaw/aLaw Wave,ADPCM,Dialogic Vox等多種語音格式;
支持GB2312碼(簡體中文)、BIG5碼(繁體)、UNICODE碼;
支持多路通道同時合成;
支持Dialogic、東進、三匯等主流語音板卡;
TTS漫談
TTS就是Text To Speech,文本轉語音,文本朗讀,差不多是一個意思。在語音系統開發中經常要用到。
目前市場上的TTS很多,實現方式也各式各樣,有的很昂貴,如科大訊飛,據說當初得到863計畫的資助,有很高的技術;有的相對便宜,如捷通華聲, InfoTalk;也有免費的,如微軟的TTS產品。
相對於ASR(Automatic Speech Recognition,自動語音識別)來說,實現一個TTS產品所需要的技術難度不算大,在我看來也就是個力氣活。
要是讓我們來做一個能夠把漢語句子朗讀出來的TTS,我們會怎么做呢?
有一種最簡單的TTS,就是把每個字都念出來,你會問,豈不要錄製6千多個漢字的語音?幸運的是,漢語的音節很少,很多同音字。我們最多只是需要錄製: 聲母數×韻母數×4,(其實不是每個讀音都有4聲),這樣算來,最多只需要錄製幾百個語音就可以了。
在合成的時候需要一張漢字對應拼音的對照表,漢字拼音輸入法也依賴這張表,可以在網上找到,不過通常沒有4聲音調,大不了自己加上,呵呵,要不怎么說是力氣活呢。
這樣做出來的TTS效果也還可以,特別是朗讀一些沒有特別含義的如姓名,家庭住址,股票代碼等漢語句子,聽起來足夠清晰。這要歸功於我們偉大的母語通常都是單音節,從古代的時候開始,每個漢字就有一個詞,表達一個意思。而且漢字不同於英語,英語裡面很多連讀,音調節奏變化很大,漢字就簡單多了。
當然,你仍然要處理一些細節,比如多音字,把“銀行”讀成“yin xing”就不對了;再比如,標點符號的處理,數字、字母的處理,這些問題對於寫過很多程式的你,當然不難了。
國內的一些語音板卡帶的TTS,不管是賣錢的還是免費的,大體都是這樣做出來的,也就是這樣的效果。
如果要把TTS的效果弄好一點,再來點力氣活,把基本的詞錄製成語音,如常見的兩字詞,四字成語等,再做個詞庫和語音庫的對照表,每次需要合成時到詞庫裡面找。這樣以詞為單位,比以字為單位,效果自然是好多了。當然,這裡面還是有個技術,就是分詞的技術,要把複雜的句子斷成合理的詞序列,也有點技術。這也要怪新文化那些先驅們,當初倡導白話文,引進西文的橫排格式、標點符號的時候,沒有引進西文中的空格分詞。不過即使分詞算法那么不高效,不那么準確,也問題不大,如前面所說,漢字是單音節詞,把聲音合起來,大體上不會有錯。
當然,科大訊飛的力氣活又乾的多了些,據說已經進化到以常用句子為單位來錄音了,大家可以想像,這要耗費更多的力氣,換來更好的效果。
至於增加一些銜接處的“詞料”,弄一些修飾性的音調,我認為是無關緊要的,對整體的效果改進不是太大。
市面上商品化TTS一般還支持粵語,請個粵語播音員錄音,把上面的力氣活重做一遍就是了。
再說句題外話,很多人覺得錄音最好找電台、電視台的播音員,其實找個你周圍的女同事來錄製,只要吐字清晰就可以了。在某種情況下,尋常聲音比字正腔圓的新聞聯播來得可愛。
再來說說文本的標識,對於複雜文本,某些內容程式沒有辦法處理,需要標識出來。比如,單純的數字“128”,是應該念成“一百二十八”還是“一二八”?解決辦法通常是加入XML標註,如微軟的TTS:"128"念成“一百二十八”,"128"將念成“一二八”。TTS引擎可以去解釋這些標註。遺憾的是,語音XML標註並沒有形成大家都完全認可的標準,基本上是各自一套。
再說說TTS套用編程,微軟的TTS編程接口叫SAPI,是COM接口,開發起來還是有點麻煩,還好MSDN的網站上資料很全面。微軟的TTS雖然免費,但其中文角色目前是個男聲,聲音略嫌混濁,感覺不爽。
國內一般的廠家提供API調用接口,相對比較簡單,可以方便地嵌入應用程式中去。
商品化的TTS還有個並發許可限制,就是限制同時合成的並發執行緒數,我覺得這個限制用處不大。無論哪種TTS,都可以將文本檔案轉換成語音檔案,供語音卡播放。大部分套用句子比較短小,一般不會超過100個漢字,合成的時間是非常短的,弄個執行緒專門負責合成,其它套用向該執行緒請求就是了,萬一句子很長,把它分解成多個短句子就是了,播放的速度總是比合成的速度慢。
也很多套用是脫機合成,沒有實時性要求,就更不必買多個許可了。
更多情況下,我們甚至沒有必要購買TTS,比如語音開發中常見的費用催繳,撥通後播放:“尊敬的客戶,您本月的費用是:212元”,前面部分對所有客戶都一樣,錄一個語音檔案就是了,而數字的合成是很簡單的,你只要錄製好10個數字語音,再加上十,百,千,萬,再加上金錢的單位“元”。