這一章將進入機器人語音交互的學習,讓機器人能跟人進行語音對話交流。這是一件很酷的事情,本章將涉及到語音識別、語音合成、天然語言處理方面的知識。本章內容:html
1.語音交互相關技術python
2.機器人語音交互實現nginx
3.天然語言處理雲計算引擎django
要機器人能完成跟人對話,涉及到語音識別、語音合成、天然語言處理等技術。簡單點說,語音識別就是將人的聲音轉換成文字便於機器人計算與理解;語音合成就是將機器人要說的文字內容轉換爲聲音;天然語言處理至關於機器人的大腦,負責回答提問。整個語音交互的過程,如圖1。ubuntu
(圖1)語音交互過程centos
語音識別技術,也被稱爲自動語音識別Automatic Speech Recognition(ASR),其目標是將人類的語音中的詞彙內容轉換爲計算機可讀的輸入,例如按鍵、二進制編碼或者字符序列,如圖2。網絡
(圖2)語音識別架構
語音識別技術所涉及的領域包括:信號處理、模式識別、機率論和信息論、發聲機理和聽覺機理、人工智能等等。語音識別技術的最重大突破是隱馬爾科夫模型Hidden Markov Model的應用。從Baum提出相關數學推理,通過Labiner等人的研究,卡內基梅隆大學的李開復最終實現了第一個基於隱馬爾科夫模型的非特定人大詞彙量連續語音識別系統Sphinx。此後嚴格來講語音識別技術並無脫離HMM框架。固然神經網絡方法是一種新的語音識別方法,人工神經網絡本質上是一個自適應非線性動力學系統,模擬了人類神經活動的原理,具備自適應性、並行性、魯棒性、容錯性和學習特性,其強的分類能力和輸入-輸出映射能力在語音識別中都頗有吸引力。但因爲存在訓練、識別時間太長的缺點,目前仍處於實驗探索階段。框架
語音合成是語音識別的逆過程,也稱爲文字轉語音(TTS),它是將計算機本身產生的、或外部輸入的文字信息轉變爲能夠聽得懂的、流利的漢語或其餘口語輸出的技術。如圖3。ide
(圖3)語音合成
TTS過程包括這些步驟:語言處理,在文語轉換系統中起着重要的做用,主要模擬人對天然語言的理解過程,文本規整、詞的切分、語法分析和語義分析,使計算機對輸入的文本能徹底理解,並給出後兩部分所須要的各類發音提示;韻律處理,爲合成語音規劃出音段特徵,如音高、音長和音強等,使合成語音能正確表達語意,聽起來更加天然;聲學處理,根據前兩部分處理結果的要求輸出語音,即合成語音。
有了語音識別和語音合成,要讓機器人能智能的對答如流的和人交談,還須要賦予機器人以靈魂。天然語言處理技術(NLP)就是來賦予聊天機器人內在靈魂的。
NLP是計算機領域與人工智能領域中的一個重要分支。因爲數據的大幅度加強、計算力的大幅度提高、深度學習實現端到端的訓練,深度學習引領人工智能進入有一個高潮。人們也逐漸開始將如日中天的深度學習方法引入到NLP領域,在機器翻譯、問答系統、自動摘要等方向取得成功。通過互聯網的發展,不少應用積累了足夠多的數據能夠用於學習。當數據量增大以後,以支持向量機(SVM)、條件隨機場(CRF)爲表明的傳統淺層模型,因爲模型過淺,沒法對海量數據中的高維非線性映射作建模,因此不能帶來性能的提高。然而,以CNN、RNN爲表明的深度模型,能夠隨着模型複雜度的增大而加強,更好貼近數據的本質映射關係。一方面,深度學習的word2vec的出現,使得咱們能夠將詞表示爲更加低維的向量空間。另外一方面,深度學習模型很是靈活,使得以前的不少任務,可使用端到端的方式進行訓練。
(圖4)基於深度學習的天然語言處理過程
爲了讓你們更好的理解基於深度學習的天然語言處理過程,舉一個比較通用的模型,如圖4。問題句子經過Seq2Seq循環神經網絡進行預處理和編碼,而後進入答案搜索,接着經過DQN強化學習網絡對問答策略進程學習。這樣,隨着時間的推移,問答系統回答問題的水平會愈來愈高,就達到了不斷在線學習的目的了。
------SLAM+語音機器人DIY系列【目錄】快速導覽------
第1章:Linux基礎
第2章:ROS入門
第3章:感知與大腦
第4章:差分底盤設計
第5章:樹莓派3開發環境搭建
第6章:SLAM建圖與自主避障導航
2.google-cartographer機器人SLAM建圖
第7章:語音交互與天然語言處理
第8章:高階拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章將持續更新,敬請關注-----------------
若是你們對博文的相關類容感興趣,或有什麼技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流羣,一塊兒討論學習^_^
關於咱們:
視頻教程: