SLAM+語音機器人DIY系列:(七)語音互動與自然語言處理——1.語音互動相關技術
摘要
這一章將進入機器人語音互動的學習,讓機器人能跟人進行語音對話交流。這是一件很酷的事情,本章將涉及到語音識別、語音合成、自然語言處理方面的知識。本章內容:
1.語音互動相關技術
2.機器人語音互動實現
3.自然語言處理雲端計算引擎
1. 語音互動相關技術
要機器人能完成跟人對話,涉及到語音識別、語音合成、自然語言處理等技術。簡單點說,語音識別就是將人的聲音轉換成文字便於機器人計算與理解;語音合成就是將機器人要說的文字內容轉換為聲音;自然語言處理相當於機器人的大腦,負責回答提問。整個語音互動的過程,如圖 1 。
( 圖 1 ) 語音互動過程
1.1. 語音識別
語音識別技術,也被稱為自動語音識別Automatic Speech Recognition(ASR),其目標是將人類的語音中的詞彙內容轉換為計算機可讀的輸入,例如按鍵、二進位制編碼或者字元序列,如圖2。
( 圖 2 ) 語音識別
語音識別技術所涉及的領域包括:訊號處理、模式識別、概率論和資訊理論、發聲機理和聽覺機理、人工智慧等等。語音識別技術的最重大突破是隱馬爾科夫模型Hidden Markov Model的應用。從Baum提出相關數學推理,經過Labiner等人的研究,卡內基梅隆大學的李開復最終實現了第一個基於隱馬爾科夫模型的非特定人大詞彙量連續語音識別系統Sphinx。此後嚴格來說語音識別技術並沒有脫離HMM框架。當然神經網路方法是一種新的語音識別方法,人工神經網路本質上是一個自適應非線性動力學系統,模擬了人類神經活動的原理,具有自適應性、並行性、魯棒性、容錯性和學習特性,其強的分類能力和輸入-輸出對映能力在語音識別中都很有吸引力。但由於存在訓練、識別時間太長的缺點,目前仍處於實驗探索階段。
1.2. 語音合成
語音合成是語音識別的逆過程,也稱為文字轉語音( TTS ), 它是將計算機自己產生的、或外部輸入的文字資訊轉變為可以聽得懂的、流利的漢語 或其他 口語輸出的技術。 如圖 3 。
( 圖 3 ) 語音合成
TTS 過程包括這些步驟:語言處理, 在文語轉換系統中起著重要的作用,主要模擬人對自然語言的理解過程 , 文字規整、詞的切分、 語法分析 和 語義分析 ,使計算機對輸入的文字能完全理解,並給出後兩部分所需要的各種發音提示 ; 韻律處理 , 為合成語音規劃出音段特徵,如音高、音長和音強等,使合成語音能正確表達語意,聽起來更加自然 ; 聲學處理 , 根據前兩部分處理結果的要求輸出語音,即合成語音。
1.3. 自然語言處理
有了語音識別和語音合成,要讓機器人能智慧的對答如流的和人交談,還需要賦予機器人以靈魂。自然語言處理技術( NLP )就是來賦予聊天機器人內在靈魂的。
NLP 是計算機領域與人工智慧領域中的一個重要分支。由於資料的大幅度增強、計算力的大幅度提升、深度學習實現端到端的訓練,深度學習引領人工智慧進入有一個高潮。人們也逐漸開始將如日中天的深度學習方法引入到 NLP 領域,在機器翻譯、問答系統、自動摘要等方向取得成功。經過網際網路的發展,很多應用積累了足夠多的資料可以用於學習。當資料量增大之後,以支援向量機( SVM )、條件隨機場( CRF )為代表的傳統淺層模型,由於模型過淺,無法對海量資料中的高維非線性對映做建模,所以不能帶來效能的提升。然而,以 CNN 、 RNN 為代表的深度模型,可以隨著模型複雜度的增大而增強,更好貼近資料的本質對映關係。一方面,深度學習的 word2vec 的出現,使得我們可以將詞表示為更加低維的向量空間。另一方面,深度學習模型非常靈活,使得之前的很多工,可以使用端到端的方式進行訓練。
( 圖 4 ) 基於深度學習的自然語言處理過程
為了讓大家更好的理解基於深度學習的自然語言處理過程,舉一個比較通用的模型,如圖 4。問題句子通過Seq2Seq迴圈神經網路進行預處理和編碼,然後進入答案搜尋,接著通過DQN強化學習網路對問答策略程序學習。這樣,隨著時間的推移,問答系統回答問題的水平會越來越高,就達到了不斷線上學習的目的了。
後記
如果大家對博文的相關類容感興趣,或有什麼技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流群,一起討論學習^_^