特定人物角色語音模擬技術 快速客製化你的聲音

by raymald

2020-04-20 17:32:211123 瀏覽次數


想到語音合成TTS(Text to Speech/文字轉聲音)技術,大部分的人聯想到的都是Google小姐或Siri,試想如果是自己喜歡或熟悉的聲音,例如林志玲聲音來代替Google小姐,將有更具溫度的對話!

客製化特定角色TTS:高成本問題

目前一個語音合成模型製作除了演算法技術外,大量的「錄音」與「標音」作業使得客製化一個特定角色聲音之成本高居不下,例如Siri中文聲音就是錄製2~3萬句才完成的TTS,成本要AI大廠才可負擔,做出的角色聲音,也未必適用所需的場景,資策會聽到業界有許多需求:是要小朋友或長者的聲音,同時希望不要有大陸口音,而台灣本土很少著墨這一塊。

少語料語音合成技術

資策會團隊花了兩年時間研發出「少語料」語音合成技術,大幅降低製作一個角色聲音所需錄製之語料,由2~3萬句減少到3000句,即可客製化一個你想要的角色TTS,作業成本減少60%以上,未來讓人人都有自己的TTS這件事成為可能,可以想像:未來可以讓自己的TTS代替忙碌的你說故事給小孩聽。

語料減少,語音合成品質是否就會降低呢?資策會所產出的每一個角色語音模型皆會由20位專家進行MOS聽測(mean opinion score),與其他2家國外大廠透過一則300字短篇故事合成做比較,分數無顯著差異,並可產出具多種情緒之聲調,包括開心、生氣及難過等。

如何錄製少語料: 平衡語料

透過錄製少語料可涵蓋所有1376發音單元在文脈中各發音的位置,挑選積分最高的300句/1000句/3000句平衡語料。

透過人工將每個字所對應到的聲音訊號標記起來,可用Waveform或Spectral方式,最怕連音(咬字不清/忽快忽慢),每個字發音掌握在0.25~0.35秒



中文音素模型

中文約有420個不含聲調(Tone)的基本單元(Syllable),加入五聲變化後,則有超過1,200個含聲調的單元(Tonal syllable),涵蓋了所有中文可能的發音。另一方面,HMM模型的參數選取包含了頻譜參數和音高參數兩部份,相同的基本單元在頻譜上呈現相似的參數特性,但五聲的變化反應在音高參數上,因此,在定義HMM的音素模型時,對於音高的描述顯得相當重要而不可馬虎。將所有含聲調的單元作為音素模型似乎是不錯的選擇,但是訓練1,200個模型勢必會造成部份模型資料量的不足,導致成效不彰的問題;若是僅以傳統的聲母及韻母當作音素模型,則無法在聲調加以描述,本系統以“Segmental Tonal Phone Model”作為設計及定義HMM音素模型的方式,此種模型定義的好處是能以最少的模型數,對中文五聲變化作詳盡的描述。首先觀察中文的基本單元,相同的“基本單元”,根據五聲的不同有如下變化,這邊提供了一個中文上聲調變化的範例,如圖所示:(由左至右:ㄓㄜ、ㄓㄜˊ、ㄓㄜˇ、ㄓㄜˋ、ㄓㄜ˙)




基頻的五聲變化區間範圍

由圖可以看出,基頻大致劃分為高音頻範圍(High F0 Region)、中音頻範圍(Middle F0 Region)以及低音頻範圍(Low F0 Region)加以描述,五聲的不同在基頻走勢上有明顯變化。

五聲的變化區間:一聲(Tone 1)由高至高(高→高),二聲(Tone 2)由低至高(低→高),三聲(Tone 3)由低至低(低→低),四聲(Tone 4)由高至低(高→低),輕聲(Tone 5)由中至中(中→中)。

另外,為了將這樣五聲的變化走勢,在HMM音素模型內有更好的描述,根據音系學上的解釋,我們將中文的每個基本單元切割成三個音素模型,C代表第一個音素模型(Extended initial),而括號內代表的是後兩個音素模型(Tonal final),每個tonal final的前後兩部分(V1、V2,V*:Segmental tonal final)都包含了音高的五聲走勢變化在內,亦即不含聲調的基本單元加上代表聲調變化的H(高)或M(中)或L(低)(一聲:H+H、二聲:L+H、三聲:L+L、四聲:H+L、輕聲:M+M)

中文韻律結構

韻律結構由上而下分為:句子(或稱語調短語,Utterance)、韻律短語(Prosodic Phrase, PP)、韻律詞(Prosodic Word,PW)



文字分析前處理器

文字分析處理器除了包含「斷詞」、「字轉音」、「轉調與破音字處理」等模組外,根據前面所描述的中文音素模型定義,以及在HMM模型建立所需之前後文相關的分類回歸樹需求,我們建立了如下格式的文脈訊息資訊。



ㄧ演算法API

https://platform.aihub.com.tw/algorithm/4e982fda-30f7-11ea-aecb-0242ac120002

<iframe width="944" height="531" src="https://www.youtube.com/embed/bbe-D8_q-SM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>