簡單編程把你的電腦變成語音聊天機器人

如果看現在市場上的機器人,語音聊天都是一問一答式的被動聊天,聊天的同時還可以執行一些命令。所以我們也把自己的電腦打造成這樣一個機器人,可以問答聊天,可以執行某些命令。

簡單編程把你的電腦變成語音聊天機器人

既然是語音聊天,那麼首先要清楚語音接口從哪兒來,知道了這個,其實用哪一種編程語言就在個人選擇了。我們的電腦是Windows,那麼就調用這個系統下的接口SAPI,這個接口大名鼎鼎,不但提供眾所周知的語音合成,還語音識別,語音識別上下文等,所以很符合我們的需求。而我們用的編程語言呢,也很簡單,也就是VBS,當然用Python也可以,甚至用Python打造機器人更智能。

當然說到語音識別,其實Windows系統裡本身就有語音識別功能,很強大但被很多人忽略了。我們在用編程打造語音聊天機器人的時候,可別提前啟動系統裡的語音識別功能!系統裡的語音識別強大,但只是識別,並不是聊天,所以我們要自己寫代碼實現。

實現這個有兩個問題,一如何讓電腦識別你的聲音,二如何讓電腦自己開口說話回應。第二個問題很簡單,核心一行代碼就能實現:set wsobj=CreateObject("SAPI.SpVoice").speak “你要說的話”,而第一個問題,如何讓電腦識別你的聲音,並處理,有點麻煩,其實還是用SAPI,同樣還是CreateObject創造識別對象Set SR = WScript.CreateObject("SAPI.SpSharedRecoContext", "RecoContext_"),然後Set Grammar = SR.CreateGrammar,不過有一點要注意的是,還要新建一個定義簡單的語法的XML文件讓語音識別對象來調用,最後就是識別並獲取文本並分析了。

分析回答,又可以寫出一大系列的代碼,我們不考慮調用網上商用的或開源的聊天機器人API,自己寫代碼就可以。雖然無法和商業化成熟的接口相比,但自己編寫的函數顯然更自由更個性一點。當然一人HK的意思是編程語言不僅可以用VBS,這裡只是考慮到VBS是Windows自帶的,而且新建一個文本寫好改後綴為vbs就能實現,簡單太多了。用其他編程語言也可以,但往往需要搭建編程環境,不管用哪種,只要能CreateObject調用SAPI就行,後者一般系統裡都自帶。


分享到:


相關文章: