CUI三部曲之語音合成——機器如何回答你的話?
在智能時代,以對話為主要交互形式的CUI會應用到越來越多的場景中,這時機器往往需要能夠完成「聽懂——理解——回答」的閉環。它們相應地涉及到三類技術:語音識別、自然語言處理以及語音合成。
語音識別的任務是將用戶所說的話從音頻形式轉變為文字形式,自然語言處理的任務則是理解這些文字所要表達的意思(語義)。機器針對用戶的語義會給出相應的回答,並以語音的形式說給用戶聽,這就需要用到語音合成。
語音識別、自然語言理解與語音合成三者環環相扣,任何一環的失誤都無法使產品獲得良好的用戶體驗。
如果說語音識別是CUI交互的基礎,自然語言處理是它的靈魂,那麼語音合成則讓用戶獲得更加流暢和一致的體驗:當用戶說了話,就需要同樣通過說話去回答。
語音合成原理
語音合成(Text to Speech,TTS)是指將文本通過一系列的信號處理轉換為「人造」語音。與簡單的錄音播放不同,機器進行語音合成時,往往並沒有這些文本的人聲錄音,而是通過音節拼接與參數調整來生成儘可能接近人聲的合成語音。
語音合成一般會經過文本與韻律分析、聲學處理與聲音合成三個步驟,分別依賴於文本與韻律分析模型、聲學模型與聲碼器。其中文本與韻律分析模型一般被稱為「前端」,聲學模型和聲碼器被稱為「後端」。
↑↑↑語音合成的處理過程↑↑↑
文本與韻律分析中,首先對文本進行分詞和標註:分詞會將文本切成一個個詞語,標註則會註明每個字的發音以及哪裡是重音、哪裡需要停頓等韻律信息;然後根據分詞和標註的結果提取文本的特徵,將文本變成一個個文本特徵向量組成的序列。
聲學模型建立了從文本特徵向量到聲學特徵向量的映射:一個個文本特徵向量經過聲學模型的處理,會變成一個個聲學特徵向量。聲碼器則會將一個個聲學特徵向量通過反變換分別得到相應的聲音波形,然後依次進行拼接就得到了整個文本的合成語音。
聲學特徵反映了聲音信號的一些「關鍵信息」,反變換則可看作用關鍵信息還原全量信息。所以在反變換的過程中可以有人為「操作」的空間(如參數的調整),從而改變合成語音的語調、語速等。
反變換的過程還可以讓合成的語音具備特定的音色。錄製某個人少量的語音片段,在合成時即可據此調整參數,讓合成的語音擁有這個人的音色。老司機們最愛的「林志玲導航語音包」就是這麼來的。
↑↑↑別傷心,你們的女神還是多少錄了幾句話的↑↑↑
紅遍宇宙的深度學習技術同樣可以運用在語音合成中。無論是文本與韻律分析模型、聲學模型還是聲碼器,都可以採用通過大量的文本和語音數據訓練出的深度神經網路。
語音合成在功能上可以看作語音識別的「逆過程」。語音識別是通過語音波形提取得到聲學特徵向量,再變為文本特徵向量,最後得到文本;而語音合成則是通過文本提取得到文本特徵向量,再變為聲學特徵向量,最後反變換得到合成語音波形。
然而,語音識別和語音合成在每個步驟的技術原理卻差異很大。語音識別可以看作是一個分類問題(連續到離散),而語音合成則應看作回歸問題(離散到連續);前者希望儘可能排除個體發音的差異獲得其中的「共性」,後者則是從「共性」出發,希望儘可能還原個體發音的特色,獲得更有表現力的合成語音。
像一點,再像一點
和語音識別不同,對語音合成質量的評價標準相對主觀。對於一段合成語音,一些人耳中的「發音錯誤」對其他人來說可能只是「發音不準」;同時,什麼樣的聲音像人聲,像到什麼程度,都很難通過幾個像「準確率」這樣的簡單指標來進行評價。
所以,語音合成的質量一般通過人工根據一系列規則打分來評價;而讓合成的語音聽起來像真實的人聲,則是語音合成真正的難點所在。現代語音合成的研究可以追溯到數十年前,但這個問題直到現在也沒有完全解決。
語音合成的難點主要來自前端的文本與韻律分析以及後端的聲碼器,它們也成為了目前各家公司語音合成技術實力的體現。
文本與韻律分析中的分詞與標註往往需要結合文本語義以及上下文的有關的內容才能作出準確的判斷,而這些也正是自然語言處理中的難點。如果這一步的處理出了問題,那麼合成語音的節奏、語調等聽起來就會比較奇怪。
↑↑↑重音會隨著語義的變化而變化↑↑↑
聲碼器反變換得到語音波形時,由於聲學特徵只反映了語音波形的少量關鍵信息,所以還需要通過參數調整,添加大量信息,才能使合成語音聽起來圓潤細膩、沒有機械感。真實的人聲擁有非常豐富的細節信息,所以會使反變換的過程變得困難。
得到聲學特徵向量之後,也可以不用聲碼器,直接通過錄音拼接的方法進行合成。這種方式需要事先錄製大量的真人語音片段,然後根據聲學特徵向量找到它們所對應的那些語音片段直接進行拼接。
錄音拼接的方式相當於規避了聲碼器中參數合成的難度,所以更容易獲得高質量的語音,但所需要的語音片段數據量可能會非常龐大。所以,這種方法一般用在機器需要播放的合成語句的數量比較有限的場景中。
硬幣的正反面
語音合成和語音識別在應用層面也很像一枚硬幣的「正反面」。在過去,語音合成與語音識別一樣,主要是作為一項工具層面的技術來應用,比如聲訊台的有聲內容、軟體提示音等。近年來隨著技術的發展與應用門檻的降低,語音合成正和語音識別一起,逐漸拓展人機交互層面的應用。
↑↑↑是不是很像硬幣的正反面↑↑↑
在新司機之前的文章《CUI三部曲之語音識別——機器如何聽懂你的話?》中分析過,聲音作為信息傳遞的載體(無論是輸入還是輸出),效率明顯低於屏幕顯示,而且在CUI中也並非必需(可以文字對話)。所以,語音交互需要從單純通過屏幕操作難以順利完成交互的場景切入,比如智能家居和智能車載。
在特定場景的交互中,用戶選擇的輸入方式,往往也是他最希望的輸出方式。比如我們玩手機時,輸入通過觸摸屏來實現,如果這時機器突然通過語音來回應我們的操作,小心臟實在受不了;另一方面,如果我們對機器說出的指令需要通過一個屏幕才能獲得回應,就會覺得它非常不智能。
所以,語音合成在交互層面的應用切入點和語音識別一樣,同樣應該是通過屏幕操作難以順利完成交互的場景。語音合成和語音識別技術在這些場景中相互配合,可以使用戶獲得更加流暢、更加一致的交互體驗。
有意思的是,語音合成在工具層面和交互層面的應用有時並不完全獨立,而是無縫融合的。比如內容(文章、故事等)的朗讀,雖然是將語音合成當作一種工具來應用,但卻是不少智能音箱的功能之一。這時用戶說希望聽故事,那麼把故事朗讀出來就是一種回答;語音合成的「工具性」和「交互性」就融合在了一起。
無論在工具層面還是交互層面,語音合成的質量,也就是合成語音與真實人聲的接近程度直接決定了它的應用範圍。質量不高的合成音很容易讓人疲勞,也會讓用戶沒有與之進行對話的慾望,很難進行大規模的應用。
比如在智能音箱在交互中會大量使用合成語音,它的質量也是產品成功的關鍵要素之一,但其中內容的朗讀就是個例外。儘管目前的技術已經可以合成非常接近人聲的語音,但大部分內容仍然通過人聲直接錄製;合成語音和真實人聲的細微差別仍會影響長時間下的聽覺體驗。
總結
語音合成是CUI交互「聽懂——理解——回答」閉環中使用戶獲得更加流場、更加一致的體驗的關鍵技術:當用戶說了話,機器就需要通過說話去回答。
語音合成會經過文本與韻律分析、聲學處理與聲音合成三個步驟,將文本變成文本特徵向量再變成聲學特徵向量最後反算得到聲音波形。語音合成在功能上可以理解為語音識別的逆過程,但各個步驟的具體技術有很大差異。
語音合成的評價指標相對主觀,一般通過人工根據一系列規則打分進行評價。讓合成的語音聽起來像真實的人聲,是語音合成真正的難點所在,直到今天也沒有完全解決。
語音合成和語音識別在應用層面非常像一枚硬幣的「正反面」。它們曾經都是工具層面的技術,現在分別作為輸入與輸出的方式應用於CUI交互當中。語音合成和語音識別都需要選擇單純通過屏幕操作難以順利完成交互的場景作為切入點,比如智能家居和智能車載。
至此,CUI的三部曲——語音識別、自然語言處理以及語音合成就介紹完了。老規矩,用一幅圖來對它們進行總結和對比。
歡迎關注微信公眾號「AI從入門到xx」,用一看就懂的語言分享AI知識與見解,篇篇原創。
推薦閱讀:
※AI老法師教你如何拍照
※關於情感討論的結語
※「可視化音樂」登場!讓你開始用眼睛「聽」音樂
※人工智慧即將取代我們?面對AI,我們該怎麼保持競爭力?