聲音跨界沙龍》聲音內容的科技跨界:中研院研究員王新民談自然語音與AI應用

中研院研究員王新民

聲音經濟是時代趨勢,除了專業聲音演員錄製的有聲書,電腦科技也提供了快速簡便的文字轉聲音服務。如何克服電腦合成語音常出現的聲調機械平板問題?如何讓AI理解文字中的多重語意,展現其中的感情和情緒?文化內容策進院與Openbook閱讀誌特別專訪電腦語音專家:中研院資訊科學研究所研究員王新民,解析聲音科技的目前進展與未來應用。

受訪人:王新民
中研院資訊科學研究所研究員,成功大學資工系合聘教授。目前擔任中華民國計算語言學學會監事,曾任該學會理事長。研究興趣包括語音處理、自然語言處理、多媒體資訊檢索及機器學習等。

***

語音合成vs人工錄製

Q:近年來「聲音經濟」大熱,有聲書市場看俏,請談談與人工錄製的有聲內容相較,語音合成的優點和缺點為何?

大陸因為此波肺炎疫情關係,2020年線上閱讀的流量爆增,也創造了驚人的有聲書市場。台灣「聽書」的市場才剛要起步,如果我們對有聲書需求是以自然、中性、不帶情感的語音讀出文本內容,那麼現今的科技已經可以做得很好了。

語音合成(Text To Speech,TTS,文字轉語音)是老技術了,因為人工錄製的成本高,很早以前的盲人有聲書就有利用語音合成來錄製的案例。早期TTS的技術有限,語音合成的聲音比較機械式,有點像《星際大戰》裡機器人說話的聲音,是用訊號處理的方式模擬生成的,所以語調都是平的。

也有一種方式是事先錄製需要的音檔片段,再串接播放,例如大家熟悉的台鐵到站廣播:

各位旅客您好,1615分經由南迴線開往枋寮的3672次普快車,請在1A月台候車,本次列車沿途停靠:康樂、知本、太麻里……

這類的播報聽起來還算自然,只要先將各站站名和車種、時間等預先錄下來,再串接播放。因為全台灣火車站的站名就那些,列車種類也是固定的,錄製語料的成本不會太高。串接式的做法若需要合成出任意文句,就需要先錄製大量語音資料,合成時從語料中選出需要的語詞來串接,並將串接點平滑化(smoothing)後輸出。語料庫愈大,串接點就可以越少,沒有太大的技術門檻。

現在不管是Google TTS、蘋果公司的Siri,或者中國的百度、騰訊、阿里巴巴、科大訊飛等公司的語音合成技術,在自然度上的表現都非常好,這跟近幾年的神經網路和深度學習有很大關係。

5、6年前神經網路和深度學習還沒有大量應用在語音合成時,除了從大型語音資料庫去挑選合適單元進行串接外,語音合成是以統計法為主,就是採取跟語音辨識類似的方法:為語音單元建模。

傳統統計式語音合成的結果會有過度平滑化的問題,聲音的抑揚頓挫不明顯,可以理解語義,但聽起來較平淡無趣。用神經網路做出來的TTS已經很自然了,但是中文的問題比較大,因為中文書寫的字詞之間沒有空格可以協助斷詞。斷詞涉及到語義和語法問題,現在做得還不夠好。

目前不少網站已經推出語音朗讀的功能,譬如《聯合報》網頁上的每一篇報導都有個「聽新聞」的功能,可以將新聞文字用語音播報出來,但顯然還有進步空間。

商業化TTS

Q:目前有哪些TTS資源可以應用在有聲書市場?

目前網路上有許多提供免費試用的TTS系統,例如台灣人工智慧實驗室(Taiwan AI Labs)的雅婷文字轉語音、Google TTS

2016年Google DeepMind團隊開發出WaveNet深度音訊生成模型,之後應用在文字轉語音時可以極為擬真,語調更生動自然,還能處理複雜的人名、日期、時間和其他文本。在Cloud TTS上可以自己定義音調、語速、音量等。還可以客製化,用自己錄製的音訊,訓練自己的語音合成模型。

微軟的雲端平台有文字轉換語音的服務,網頁上有試用精簡版,可以選擇讓語音聽起來快樂一點(說話風格)、越唸越慢(速率)、中間停頓(中斷),可以合成多角色、多情感的有聲書,把表情做出來。它的合成技術也是採用現在的神經網路,但前面的文字處理是走傳統的套路,也就是給一句話之後,要先做很多分析,當然目前這些分析也都是交由神經網路去建模。

另外,台灣的網際智慧公司提供TTS的服務,號稱有超過30種語音選擇,每個語言有不同的發音人,譬如中文還分成台灣口音、北京口音以及廣東話,英文也分美國、英國、澳洲三種口音。

中文 (台灣口音)

中文 (北京口音)

廣東話

目前市面上也有些公司,提供文字掃描辨識後直接轉換成有聲書的服務,只要取得出版社授權並提供紙本書籍或是文字檔案,就可以大量、快速且低成本地製作有聲書籍。有些還可以選擇男女聲、調整速度、音調、停頓、快速修改、增減等。一本內容4到5萬字的書,快則7到10個工作天即可完成。

但這些公司使用的大多是大陸的TTS模型,語音大都是大陸口音,而且可能不是中國那幾家科技大廠的系統(大陸的百度、騰訊、阿里巴巴、科大訊飛這幾家的聲音都已經很好聽了),感覺音質沒有很好。

有聲書製作流程

Q:假若出版社想借助TTS來製作有聲書,要如何進行?

現在有很多很厲害的模型架構,都把程式碼釋出了,只要受過基本訓練的工程師都可以操作。所以首先你要找一名工程師,再來上網去下載語音合成模型的開源碼(open source),以及搭配的資料集,譬如公開的字典、公開的錄音檔(語料集),裡面甚至會有操作的指引(recipe)。照著操作手冊一步一步走,最後輸入一個句子進去,就可以聽到語音了。只要驗證播出來的聲音是正確的,就表示你學會操作了。

但這個公開的模型可能是英文的,因此下一步是,建立自己的語料集,譬如找人錄製20個小時的語音,下載教育部的線上字典,上面有幾萬詞,每個詞的發音也都已定義清楚了,可以用於將中文句子斷詞,轉換成漢語拼音或通用拼音序列,然後訓練模型。完成之後就可以合成任意文句,聽到初步的結果。

但這時候的聲調可能還是怪怪的(因為英文不管聲調),就再微調。或去找中文語音處理系統的論文或技術報告,看他們怎麼處理聲調,學習一下,最後就可以做出一個還不錯的中文TTS系統。

建立語料集時,如果你要做的是讀報TTS,那就拿報紙讓配音員讀;要做虛擬的氣象主播,就讓配音員讀氣象預報的文本。

Google TTS的語料庫是找專業配音員錄製,通常一定是找聲音好聽、清晰、發音清楚的配音員,找專業錄音師,在專業錄音室進行。

微調的方法不外乎:卡到問題時就上網去查詢,看看相關論壇有沒有討論過,或者能不能找到國內外發表的會議論文、期刊論文可參考。現在很多人寫了論文之後,會把模型和方法全部開源。這些步驟不是很難,現在的門檻很低了,大體來說一個工程師就可以做得到。

語音合成技術

Q:電腦合成的語音往往會出現不自然的停頓或怪怪的聲調,技術上是如何克服這些問題?

我們先舉一個例子:

今年是2021年,我的電話是0800-012345,我的存款有123,456,789元,身分證字號是J987654321,首字母是J,後九碼是987654321,地址是台北市研究院路二段128號。

傳統語音合成是先處理文字,先知道每個字要怎麼發音,遇到數字時該怎麼唸——是數字或金錢,用什麼樣的速度唸,每個音要發多長,在什麼地方停頓,停頓多久……這些標記做出來後,就可以把需要的聲音合成出來。

中文除了斷詞之外,還需要判斷各種詞性、韻律。如果有大量的文本,並且標示好該怎麼停頓,機器自然可以學習,建立起一個階層的模型,但這樣做的時間成本很高。

在神經網路時代,也有人認為只要資料夠多,用大量文本、大量語料,就可以讓機器學會自然語音,根本不必大費周章浪費時間去處理語義,做斷詞分析、語法分析。譬如現在流行的「端到端」(end to end),意思即是:給你一個字串,不必加任何標記,即可直接輸出語音。

端到端的做法就是「硬做」,只要資料量夠大,就能做出很不錯的東西。對技術開發的廠商來講,這是最簡單的做法:找1000篇新聞報導,請一個聲音演員把它全部讀出來,就可以訓練出一個端到端的系統,應用在較中性的需求,譬如讀報、聽書已綽綽有餘。

但是當資料量不夠大時,就得靠前置的文字分析,在文字中加入tag,先把變調、破音字等需求標注進去,加入斷詞、句式結構、詞性分析等等,分析得越清楚,標記越多,語音合成的負擔就越輕。

腔調/情緒

Q:文字轉換為語音後,要如何控制諸如聲音表情、音色腔調等問題?

即使是神經網路時代也沒有白吃的午餐,腔調的調教基本上都是需要語料。譬如中國幅員那麼大,方言南腔北調,他們的作法是在各省收集不同的聲音,讓模型去學習各種腔調。如果沒有語料告訴你「今天天氣很好」這句話很快樂地講跟很哀怨地講差別在哪裡,模型就不可能學到這兩者有什麼不一樣。

要做情緒語音合成,比如要能合成出快樂的聲音,基本作法就是先有一個像Google TTS這樣的模型,然後請配音員錄製平行的語料庫:同一個文本,先唸一遍中性的聲調,再用快樂的方式唸一遍。接下來再用模型去學習這兩者之間有什麼不一樣。這是一種轉換的技術,一旦學會其間的差別之後,就可以在原有的模型上去轉換。

句子的情緒分析在自然語言處理上已經發展很久,也有不錯的效果了。一般正常的句子,可以透過簡單的語義分析,判斷它是正面的敘述,就合成出比較輕快、讓人聽起來較為正面的語氣。

一般的讀報或聽書,就是把文本讀出來,即使要求遇到正面的句子時唸輕快一點,在現在的技術上也並不是太困難,或許也不是太關鍵的需求。讀報或聽書的需求應該是能聽懂它在講什麼,而且不會不自然到你聽不下去,這樣就夠了。

但是像兒童故事這類需要表達情緒或角色置換的有聲書就比較麻煩,要決定什麼時候是大野狼的聲音,什麼時候是巫婆的聲音,這個一定要人力去控制文本標記。至於大野狼的聲音應該怎麼呈現,巫婆的聲音又該怎麼呈現,那應該在原來建立模型時就要收集聲音去訓練。

多語混用

Q:碰到文本出現多語混用,或者諧音梗、網路迷因語、顏文字等狀況,TTS會怎麼處理?

當一段文字裡混合了不同語言時,我們要求的是轉換出來的語音要無縫接軌。目前中英夾雜的句子,判讀上沒有太大問題,其他語言的混用則視情況而定。

中文的好處是,文字的數量是固定的(大五碼big5 code才一萬多個字),我們常會增加新詞,但一般不會有新字出現,所以中文TTS在對應新詞時,發音上不太會受到影響。

一個符號如果我們不知道它怎麼發音,語音合成就無法處理。但只要我們知道這個符號要發什麼音,即使組合成新詞,也不影響它的語音。譬如50年前還沒有電腦時,大家都知道「電」,也都知道「腦」,那時看到「電腦」兩個字即使不知道是指什麼,但還是都會唸。

顏文字(Emoji)如果本身有定義符號的讀音(譬如笑臉、哭臉),發音就沒有問題。因為這些符號不是我們講話的symbol,你必須先有定義:看到這個符號你會發出什麼聲音。只要有共同的發音定義,語音系統就能轉換。現在的問題是,顏文字越來越複雜,而且變化太快,一直新增。

諧音梗也不是太大的問題,因為讀出來的音跟它想要替換的原始文字是一樣的,讀出來不會有問題。只是楷音梗通常會牽涉到情緒,這就又回到語音的情緒判斷了,譬如若涉及反諷,那是個很難的問題。

文義脈絡

Q:合成語音如何掌握文義脈絡?

文義脈絡首先牽涉到斷詞的問題。舉例來說,中研院在做語音辨識系統時,納進了教育部的線上國語詞典,後來發現那裡面有一大堆古詞,譬如「與國」,出自《史記》和《三國志》,指友邦、相交好的國家。現在跟本沒有人這樣講,但因為有這個詞,當碰到類似「並與國際社會合作」這樣的句子時,系統若把「與國」兩個字視為一個詞,斷句就出現問題了。

每個句子都有句法,做自然語言處理時,除了斷詞,還會加上名詞動詞對不對(詞性標註Part-of-speech tagging)、符不符合文法(句法分析,Parsing)等處理步驟,自然就會修正最後的判斷,合成出來的語音就對了。斷詞斷對之後,每個詞彙再去分析它的情緒標記,一步一步來,有了這些標註後,你的語音模型要負擔的工作就會比較簡單。

客製化

Q:不少科技公司提供客製化的TTS服務,假設我們希望製作以某個作家的聲音讀自己作品的有聲書,該如何進行?

在學術研究上,我們通常用很少的語料(通常只用80句、40句,甚至5句)去轉換,用多人、非專業的錄音品質的語音混在一起去訓練語音合成模型,做出來的語音都已經有點樣子了,如果你有一個像Google這麼好的TTS,再有某個人講的100句、300句話,應該可以轉換出品質不錯的語音。

資策會去年推出的TTS服務,號稱可以提供「少語料」語音合成技術。資策會的說法是,Siri需要的語料是2~3萬句,他們的服務則降到3000句就能客製化一個你想要的角色TTS。這樣確實應該可以做到很好聽,但我覺得可能不需要到3000句,就能做出很好的聲音了。


資策會推出的TTS服務,可供客製化語音合成技術(翻攝自TTS 服務

客製化錄製的語料內容沒有限制,當然句子越長,資料量就越多,如果都只是yes或no這類的短句,資料量就太少了。以中文來講,一般句子大概至少10個字左右。

這是以不帶表情的中性敘述為前提,如果要帶有表情,那就得另外處理了——訓練時,必須讓你的模型知道現在餵給它的是哪一種表情,那個模型會複雜很多。

一般讀報或讀書的語音合成,客製化都不是太困難,所需成本也不算太高,前提是你已經有一個已經訓練好的語音合成系統,作家要花的成本其實很小,他只要錄製幾百句語料就夠了。或者如果他有20本書,只要錄其中一本,就可以完成全部20本書的有聲化。

學術案例

Q:除了科技公司之外,學術機構有沒有相關的TTS研究?

台灣有好幾個學術單位一直有投入相關研究。台北科技大學的廖元甫教授曾經做過一個資料庫,請台灣數位有聲書推展學會的前祕書長李秀鳳小姐,錄製洪蘭教授的《理所當為:成就公平正義的社會》,共500分鐘、85個音檔,約5萬多個字的電子書。這個資料是公開的,但後來幾乎沒有人在用,因為錄製的品質沒有控制好,可能因為是由學生操作,不是專業錄音師,許多設定沒設好,有時會出現爆音,非常可惜。

中研院近年的主力不在做語音合成,而在做轉換。轉換也是有聲書非常需要的技術。大約10年前,我們實驗室想用開發出來的語音技術,將有聲書的內容轉換成爸爸媽媽的聲音。譬如請爸爸媽媽唸書本前面的10句、20句內容,我們再透過技術,把整本有聲書全面轉換成爸爸媽媽的聲音。

後來我們實驗室也找了李小姐,租同一個錄音室,讀了5本義美聯電提供的故事書內容,每一句話都用中性語音唸一遍,又用情緒語音唸一遍,全部300句,5922個字,長度約為60分鐘。但實驗結果沒有成功,一方面同樣是因為錄音沒錄好,二方面那時的技術也沒那麼好,做出來的聲音雖然聽起來有快樂的感覺,但聲音會破音失真,不好聽,那就沒有用了。當時還沒有神經網路,我們是用統計式的方法來處理,現在如果有合適的語料,應該值得再試。

台語有聲書

Q:最近出版市場出現了幾部以台語創作的作品,如果想將這些文本用台語讀出來,目前的技術可以流暢產生出台語唸白的有聲書了嗎?

台語TTS技術上的原理是一樣的,需要先找到台語的文本,取得授權。我們實驗室也有台語語音辨識系統,不過辨識率比國語的差一些。譬如主播講普通話,辨識結果錯誤率在5%以下,但台語新聞主播即使講話字正腔圓,錯誤率還是在10%左右,甚至更高。

台語語音合成畢竟才剛開始嘗試,在變調上可能還無法太正確,聽起來的自然度會差一點,但應該還不至於聽不懂。據我所知,廖元甫教授正在籌畫進行兩男兩女各錄製10個小時的台語資料庫,將來會公開給各界使用,非常令人期待。


企劃:文化內容策進院、Openbook閱讀誌/文字整理:周月英/責任編輯:周月英、吳致良、郭正寧、陳愷昀/視覺構成:大象設計、林鈺馨


【聲音內容.延伸報導】

手指點一下,您支持的每一分錢
都是推動美好閱讀的重要力量