會聊天的樹莓派視頻遙控小車 + iOS / Android / web應用

本文是樹莓派視頻遙控小車 + iOS / Android / web應用的續篇,在前文的基礎上加入聊天的功能,支持多種語言的文字和語音聊天。語音識別、翻譯和語義識別借助微軟云的認知服務 (Azure Cognitive Services)。當前支持的聊天內容主要是指令和回復,可按需要自行添加。代碼請見:github.com/shaqian/Cognitive-Bot/


演示

通過app與樹莓派聊天。文字聊天可用任意語言,自動識別語種。語音聊天默認為英文,使用其他語言需要事先指定。


CognitiveBot

網頁應用同時加入了圖像識別,可簡單描述圖像內容,人臉識別會顯示年紀和性別,也是用的微軟認知服務。


vision


聊天過程實現

用戶語音 ==1.語音識別==> 文字 ==2.語種識別==> ==3.翻譯==> 英文 ==4.語義識別==> 意圖 ==5.反應==> 英文回復 ==6.翻譯==> 本地化回復 ==7.語音合成==> 語音回復

因為用戶輸入支持多種語言,所以在語義識別之前統一轉換為英語再識別,這樣可以減少語義識別的工作量,缺點是調用 API 較多有時會有延遲。

具體分步來說:

1. 語言識別:使用微軟?Speech Translation API?將用戶輸入的音頻轉化為文字。如果輸入為文字則跳過此步。

2. 語種識別:使用微軟 Translation Text API 識別用戶輸入文字的語種,為后面的本地化回復做準備。

3. 翻譯:使用微軟?Translation Text API?將文本翻譯為英語,為語義識別做準備。

4. 語義識別:使用微軟 Language Understanding Intelligent Service?(LUIS) 識別文本的語義。本項目使用的意圖已經定義在 GitHub repo 下的 luis.json 中,在 luis.ai 創建項目,導入 json 文件,訓練并發布后即可使用。

5. 反應:上一步語義識別后得到用戶的意圖,后臺程序根據意圖做出不同的反應。比如,用戶輸入為“打開空調”,LUIS 返回的意圖為“Aircon.On”,小車會根據意圖做出反應:i. 發送空調開機信號,ii. 通知用戶空調已開啟。

6. 翻譯:上一步生成的默認回復為英文,使用微軟?Translation Text API?翻譯為用戶的本地語言文本。

7. 語音合成:使用微軟?Speech API?將文本轉化為語音。


創建服務并使用

以上提到的微軟云服務均有免費版,有微軟云訂閱的話可以在這里了解如何創建,沒有訂閱可以看一下試用

服務創建后需填寫 CognitiveBotServer 文件夾下 config.js 中的參數:

1.?LUIS

登錄https://www.luis.ai/applications,點擊?Import App,選擇?luis.json,點擊?Import。
發布應用的步驟請參考:https://docs.microsoft.com/en-us/azure/cognitive-services/luis/publishapp
取消勾選?Add verbose flag,復制?Endpoint url,粘貼至 config.js 的?luisURL

2.?Translator Speech API

復制 key 粘貼至 config.js 的?sttSubKey

3.?Translator Text API

復制 key 粘貼至 config.js 的?transSubKey

4.?Bing Speech API

復制 key 粘貼至 config.js 的ttsSubKey

5.?Computer Vision API

復制 key 粘貼至 config.js 的?visionKey


使用網頁應用

此部分與前文樹莓派視頻遙控小車 + iOS / Android / web應用基本一樣。

1. 運行cd ~/Cognitive-Bot/CognitiveBotServer;npm install安裝依賴。

2. 開啟 HLS 直播視頻流:
cd ~/picam
./make_dirs.sh
./picam -o /run/shm/hls --vflip --hflip

3. 開啟網頁應用:
cd ~/Cognitive-Bot/CognitiveBotServer
sudo npm start

4. 在瀏覽器中打開http[s]://[IP-of-Raspberry-Pi]?(將 [IP-of-Raspberry-Pi] 替換為實際的網址,比如:192.168.1.16)。


使用移動應用

此部分與前文樹莓派視頻遙控小車 + iOS / Android / web應用基本一樣。

iOS

i. 編譯并在模擬器中運行:
cd Cognitive-Bot/CognitiveBotApp
npm install
npm run ios

ii. 在設備上運行:
參考 React Native 官方文檔的Running your app on iOS devices

Android

i. 編譯并在模擬器中運行應用:
cd Cognitive-Bot/CognitiveBotApp
npm install
npm run android

ii. 在設備上運行:
參考 React Native 官方文檔的Running your app on Android devices
或者直接使用repo中的 CognitiveBot.apk。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容