Ⅰ 璇闊寵瘑鍒甯哥敤鐨勮В鐮佹柟娉曟湁鍝浜
璇闊寵瘑鍒甯哥敤鐨勮В鐮佹柟娉曟湁璐蹇冩悳緔錛圙reedy Search錛夌畻娉曘侀泦鏉熸悳緔錛圔eam Search錛夌畻娉曚互鍙婄淮鐗規瘮錛圴iterbi錛夌畻娉曘
璐蹇冩悳緔㈢畻娉 鏄涓縐嶇浉瀵圭畝鍗曞拰鐩磋傜殑瑙g爜鏂規硶銆傚畠姣忎竴姝ラ兘閫夋嫨褰撳墠鐘舵佷笅鏈濂界殑涓涓緇撴灉錛岀劧鍚庡熀浜庤繖涓緇撴灉榪涘叆涓嬩竴姝ャ傝繖縐嶆柟娉曠殑闂棰樺湪浜庯紝瀹冨彲鑳戒細鍥犱負灞閮ㄦ渶浼樼殑閫夋嫨錛岃岄敊榪囦簡鍏ㄥ矓鏈浼樼殑瑙c
闆嗘潫鎼滅儲綆楁硶 鍒欐槸涓縐嶆敼榪涚殑鎼滅儲綆楁硶錛屽畠姣忎竴姝ュ苟涓嶅彧閫夋嫨涓涓鏈浼樼殑緇撴灉錛岃屾槸閫夋嫨鍓嶅嚑涓鏈浼樼殑緇撴灉錛堣繖涓鏁伴噺琚縐頒負闆嗘潫瀹藉害錛夈傝繖鏍峰彲浠ュぇ澶у噺灝戞悳緔㈢殑絀洪棿錛屽悓鏃朵篃鑳藉湪涓瀹氱▼搴︿笂淇濊瘉鎼滅儲鍒板叏灞鏈浼樿В銆傞泦鏉熸悳緔㈠湪璇闊寵瘑鍒涓寰楀埌浜嗗箍娉涚殑搴旂敤錛屽畠鐨勬晥鏋滀竴鑸瑕佹瘮璐蹇冩悳緔㈠ソ銆
緇寸壒姣旂畻娉 鏄涓縐嶅姩鎬佽勫垝綆楁硶錛岀敤浜庡湪闅愯棌椹灝旂戝か妯″瀷錛圚idden Markov Model錛孒MM錛変腑瀵繪壘鏈鍙鑳界殑闅愯棌鐘舵佸簭鍒椼傚湪璇闊寵瘑鍒涓錛岃傚療緇撴灉錛堟瘮濡傞煶棰戜俊鍙風殑鐗瑰緛錛夎瑙嗕負鍙瑙佺姸鎬侊紝鑰屾枃瀛楀簭鍒楀垯琚瑙嗕負闅愯棌鐘舵併傜淮鐗規瘮綆楁硶鍦ㄦ瘡涓鏃墮棿鐐逛笂閮戒繚鐣欎簡瀵歸殣鈃忕姸鎬佺殑鏈浼樼寽嫻嬶紝騫跺湪鍚庣畫鐨勬椂闂寸偣涓婃牴鎹鏂扮殑瑙傚療緇撴灉鍜屼箣鍓嶇殑鏈浼樼寽嫻嬫潵鏇存柊鐚滄祴銆傝繖縐嶆柟娉曞湪璇闊寵瘑鍒涓鏁堟灉寰堝ソ錛屼絾涔熺浉瀵瑰嶆潅銆
浠ヤ笂涓夌嶈В鐮佹柟娉曞悇鏈変紭緙虹偣錛屽湪瀹為檯搴旂敤涓錛岄渶瑕佹牴鎹鍏蜂綋鐨勫簲鐢ㄥ満鏅鍜岄渶奼傛潵閫夋嫨閫傚悎鐨勮В鐮佹柟娉曘傛瘮濡傚湪涓浜涘瑰疄鏃舵ц佹眰杈冮珮鐨勫満鏅涓錛屽彲鑳戒細閫夋嫨鐩稿圭畝鍗曠殑璐蹇冩悳緔㈡垨闆嗘潫鎼滅儲錛涜屽湪涓浜涘硅瘑鍒鍑嗙『鐜囪佹眰杈冮珮鐨勫満鏅涓錛屽彲鑳戒細閫夋嫨鏁堟灉鏇村ソ鐨勭淮鐗規瘮綆楁硶銆
Ⅱ 語音合成效果優化
語音合成技術已經成熟的應用於各種實際場景中,大部分問題可以通過TTS解決,但是有些問題,在具體的場景中,總會出現一些合成音頻播報時的錯誤,所以在設計語音合成產品時,應該怎麼樣避免這些問題,以及用怎樣的方式進行優化。以下將根據實際問題分析具體的解決方案。
1. 數字播報問題
我們遇到比較多的是數字播報的問題,數字有很多不同的播報方式,可以按照數目讀法,例如,1234可以讀作「一千二百三十四」,也可以按照數字串的讀法,讀作「一二三四」,以及電報讀法「幺兩三四」,所以不同的場景有不同的讀法,需要在當前場景設置具體的讀法方式,具體方式如下:
1) 讀法規則設置
在TTS中,有些讀法是可以添加的讀法規則中的,例如:「請問您是尾號為4321的機主嗎?」可以添加「尾號為+數字」的讀法規則,讓數字按照數字串的方式播報。還有「數字+元」「數字+美元」等,這種就按照數目讀法的方式播報。所以在生活場景有一些場景的讀法是唯一的,可以通過設置讀法規則的方式,使得在TTS播報的時候播報正確。
2) 修改文本的方式
在一些場景中,會出現TTS播報錯誤的情況,例如,「請您來一下205會議室」,有時候會播報成「二百零五會議室」,這時候可以在文本的數字前面加一個標點來規定讀法,比如 「!+數字」,就按照數字串的方式播報數字。「請您來一下!205會議室」,則可以播報為「二零五會議室」;「*+數字」的規則就按照數目讀法來播報,「我住在*20層」,則播報為「二十層」。所以根據符號+數字的方式來確保數字的讀法,在實際應用場景中,如果某些數字播報方式錯誤,則可以通過修改文本添加符號的方式解決問題,這種方式也相對比較簡單。
3) 標記語言的方式
語音合成標記語言(SSML:Speech Synthesis Markup Language),它是W3C的語音介面框架的一部分,是關於語音應用和在萬維網上構建語音應用的一套規范,通過SSML,人們可以更多的通過行動電話、桌面計算機和其他設備來聆聽合成語音。通過標記語言可以設置數字的讀法,然後將xml格式的標記語言文本傳入給TTS,合成相應的音頻。
下面是ssml的語法圖
4) 加詞表
有些使用場景修改文本內容不太方便,例如用戶寫的地址信息,然後直接傳輸給TTS進行語音合成,這種文本內容不能進行添加修改,需要在文本上傳之後修改播報的音頻,在前一篇文章講到過語言分析部分,在文本轉音素時,可以檢測出對應的文本內容,文本的音頻強制轉換為需要正確播報的拼音,設置成想要合成的播報音,這樣可以使音頻播報正確且不需要修改文本。但是這樣在每次合成的時候都會按照這種設置好的規則合成,所以在設置的時候盡量確保文本的唯一性,可以用「文本+數字+文本」的形式,這樣其他場景用到同樣的數字時,不會受到此次設置的影響。
如下列出了在實際應該場景中,數字會出現的一些播報方式。
數目讀法
數字串讀法
地址
2. 多音字問題
在漢語中,多音字和數字的讀法一樣,有多種播報讀法,這時候也需要一些優化的方式設置,使其在特定的場景下按照特定的讀音去讀,確保能正確的播報。優化的方式和數字的優化方式基本是一致的,可以通過設置讀法規則,修改文本,標記語言,加詞表的方式。通過組合這幾種方式,可以避免常見的播報讀法的問題。在產品設計的時候,需要支持這幾種優化方式,且操作簡單,用戶可以自行操作,完成TTS的優化。
如下列出多音字姓氏列表,姓氏可以用特定的規則或者用添加標點的形式,確保其正確的播報。
3. 小結
簡單介紹了一些播報錯誤的優化方式,還有一些韻律也可以用上面提到的優化方式進行優化,例如停頓,重讀等一些節奏韻律的變化,可以用加標點的方式,標記語言的方式實現。也可以通過演算法優化,但是演算法優化時間久,難度大。所以可以在產品設計的時候加一些可以優化的功能,這樣可以規避掉一些播報錯誤,也不需要從底層演算法在進行優化,用戶易操作,提高用戶體驗。