本文來自Rokid & 清帆聯合AI徵文比賽內容徵集入圍作品,在原文基礎上有做修改。
從計算機剛開始發展的命令行界面CLI,到廣泛使用幾十年的圖形交互界面GUI,再到現在的語音交互VUI,我們始終在探討一個問題,人與機器如何溝通。不同國家的人溝通,需要他們相互學習對方的語言和文化;同理,人與機器溝通也要學習對方的語言。既然機器是人發明的,那麼人是了解機器的語言的,只剩下一個問題,機器怎麼學習人的語言呢?這可能要從我們人類學習語言的方法開始。
學習語言,在幼兒身上是一個非常神奇的過程,我們神奇的大腦皮層會通過獨特的語言學習機制,藉助大腦億萬的神經網絡進行學習,在3歲的時候開始發生質的飛躍。
這是大腦帶給我們的禮物,遺憾的是心理學和神經科學的理論都不足以完整的解釋幼兒語言學習的方法。當成人學習第二種語言,就會遇到種種困難,人們開始研究語言學習的方法,諸如發音、字詞、句式、語法等,發展出了很多種語言學習的方法。但是我們又發現,我們人類是靠聽的,機器怎麼接收呢?所以,機器學習人的語言一共分四步:
第一步叫做語音識別,就是將麥克風採集到的用戶聲音轉化為文字的過程;
第二步叫自然語義理解,將用戶說的話轉化成機器能理解的話,例如把轉化成文字後的兩句話「給張三打電話」和「打電話給張三」理解成同樣的操作;
第三步叫自然語言生成,與自然語義理解相反,是將機器的語言轉化人的語言,這個階段的輸出是文字;
最後一個階段是語音合成,將文字合成聲音並播放出來,並儘可能的模仿人類自然說話的語音語調,給人以交談的感覺。
雖然只是普通的一句對話,但卻經歷了種種步驟,而且每個步驟其實都是一個龐大的領域。
1、語音識別(ASR)
語音識別簡稱ASR(Automatic Speech Recognition),如上文所說,主要工作是將聲音信息轉化為文字。
應用ASR技術的常見產品包括語音輸入法、語音錄音工具等,幫助用戶快速將語音信息記錄為文本。
ASR的技術原理,首先麥克風負責收集用戶聲音,軟體將音頻進行處理,包括VAD、分幀、mfcc特徵提取。特徵提取之後,結合大量數據訓練出的聲學模型和描述語句文字出現概率的語言模型,通過語音解碼和搜索算法最終將音頻輸出為文字。
一直以來,語音識別採用的算法技術以GMM-HMM(Gaussian Mixture Model - Hidden Markov Model)為主。2012年, DNN-HMM(Deep Neural Network- Hidden Markov Model)混合模型在語音識別聲學建模方面取得突破性的成果,一般地,比傳統的GMM-HMM模型有30%左右的相對提升,這是語音識別領域近幾十年以來最大的一個突破。
隨著識別率的逐漸提升,ASR在各個前沿方向都有了開拓性的進展,例如中文領域的的方言識別,長句和段落的連續識別和抗噪和遠場語音識別能力。值得一提的是遠場語音,遠場語音技術的難度主要在於遠距離聲音的噪聲過濾和人聲定位,它的解決方式是通過硬體配置麥克風陣列,採集多個方向不同聲道的音頻信息,從而進行有效信息和噪音的判斷,以提升長距離下語音識別的準確度。
2、自然語言處理(NLP)
自然語言處理簡稱NLP(Natural Language Processing),狹義上講包括自然語義理解(NLU,Natural Language Understanding)和自然語言生成(NLG,Natural Language Generation)兩個方面,前者是指將人類語言轉化為標註的機器語言,後者則是指將機器語言轉化為人類語言。在龐大複雜的漢語體系裡,NLP幫助產品正確理解人們想要表達的意思,並給出合理的反饋。NLP是語音產品的關鍵,也是主要難點。
NLP涉及的技術領域眾多,包括中文分詞、詞性標註、句法分析、知識管理、情感認知等等。根據不同的需求,NLU的輸出的語義表示分不同種類,包括分布式、框架式和模型式等,目前框架式及其衍生的結構應用較為廣泛。以框架式語義表示在智能音箱中的應用來舉例,框架式會將語義區分為多種領域(聽歌/新聞/百科/購物/...),當用戶問到「喜馬拉雅山多高」時,NLU將會判斷為百科領域,並輸出標準化的語義表示和參數,系統通過搜索獲取答案,生成語音後反饋給用戶。這種語義表示方法適用於這類在不同領域有不同操作的產品當中。
NLP的發展已經初具規模,很多人工智慧龍頭例如谷歌、微軟,都使得機器可以很好地自然地接收到人類的語言。但是在語言理解的這個部分,還是很難做到,這也是人工智慧始終陷入瓶頸的一個難以攻克的問題。在人類溝通環境中,互相理解都經常會出問題,更何況讓機器來理解人類呢?
當然,有困難不代表一籌莫展,至少在英文語言系統中,由於句式和語法相對嚴謹,機器對於人類語言的理解還有很多方法可以採取。相對來說,中文由於其內含豐富多變,尤其是非常依賴於語境和人物關係,這在語言理解中就會產生很多無法預知的可能性,也就使得中文NLU比英文更難一些。而且由於不同的語言習慣和語法背景,中文NLU也難以從英文NLU中得到很多借鑑,甚至英文NLU會對中文NLU的形成產生幹擾和阻力。
NLP 和傳統語言學已經可以幫助人工智慧解決一部分初級問題,但卻還遠遠不能覆蓋到千變萬化的語言形式,比如機器可以理解「我心情不好」,卻難以理解「我的心淅淅瀝瀝下著小雨」這樣的轉喻;機器可以理解「我要吃飯」,卻難以體會同樣是吃飯,「上飯店」和「下館子」,這一「上」一「下」間表達的心理上的微妙差異。所以在中文語言理解中,需要結合心理學的研究,在語義理解的基礎上增加意圖識別和情感判斷,以彌補傳統中文 NLP 在語言理解上的不足,讓機器真正讀懂人類語言的複雜語義,以及背後的意圖和情感,從而達到更好的人機自然語言交互效果。
3、語音合成(TTS)語音合成(TTS,Text To Speech),是指將文字轉化為聲音。開車的朋友經常能聽到郭德綱或者林志玲的導航提示,這就是TTS技術的典型應用。
往往這類明星語音合成的功能,需要走錄音,標註,建模,優化這幾個步驟。首先是根據準備好的基本語庫,讓聲優在錄音棚裡完成錄音,隨後針對錄音進行語音語調的標註,這些信息共同作為TTS模型的訓練集信息,實現初步的TTS模型訓練,隨後根據效果進行補錄,優化模型。
4、最後ASR、NLP和TTS是語音最常用的技術領域,但仍只是語音大行業的一個部分。語音就如同冰山一般,人們看到的只是一小部分,水下才是它的真容。