開源項目 OpenHarmony 是每個人的 OpenHarmony
陸冕
博泰車聯網(南京)有限公司
OpenHarmony知識體系工作組
楊波
博泰車聯網(南京)有限公司
OpenHarmony知識體系工作組
以下內容來自嘉賓分享,不代表開放原子開源基金會觀點
簡介
AI時代,智者當先,判斷一個終端設備是否智能,語音能力是必不可缺的。智能家居、智慧廚房、智能汽車等等,一切衣食住行都在往智能方向發展,那我們該如何在OpenAtom OpenHarmony(簡稱“OpenHarmony”)系統現有的能力下,搭建一套完整的語音子系統呢? 本文介紹了博泰車聯網的研發同學如何搭建一套屬于OpenHarmony的語音子系統CarVoiceAssistant,并以車載交互的形態研發語音助理項目的過程。
效果展示
開發環境
硬件平臺:DAYU200 系統版本:OpenHarmony 3.1 Release 開發語言:C++,JS,eTS IDE:VS Code、DevEco Studio
功能介紹
交互流程介紹
本樣例包含兩個關鍵能力庫:QGWebRTCVAD,用作有效音頻檢測和截取;QGPocketSphinx,用作喚醒詞訓練和識別,主要流程如下: ?
設備喚醒之后,需要持續采集用戶音頻數據,并傳輸給博泰QingAI云端,做持續識別和最終語義識別,識別之后客戶端根據語義做具體動作執行 。
兩步帶你實現語義助理集成
1.語音子系統集成 (1)下載語音助理項目代碼 (2)解壓【data.zip】文件 (../../dev/team_x/PATEO_CarVoiceAssistant/data.zip) (3)使用hdc工具將data中的文件發送到OpenHarmony系統中
#1. 將動態庫和資源文件發送到OpenHarmony系統中 # 如果提示Read only system;進入OH系統后執行:"mount -o rw,remount /"命令后再發送文件 hdc_std.exe file send voice_assistant_service.xml /system/profile/ hdc_std.exe file send libcarvoiceassistant.z.so /system/lib/module/libcarvoiceassistant.z.so hdc_std.exe file send libvoiceassistant_service.z.so /system/lib/libvoiceassistant_service.z.so hdc_std.exe file send libpocketsphinx.z.so /system/lib/module/libpocketsphinx.z.so hdc_std.exe file send libps_vad.z.so /system/lib/module/libps_vad.z.so hdc_std.exe file send libvoicecloud.z.so /system/lib/libvoicecloud.z.so hdc_std.exe file send voice_assistant_service.cfg /system/etc/init/ #在系統/system/etc/下,創建目錄pocketsphinx; 創建目錄命令: mkdir /system/etc/pocketsphinx hdc_std.exe file send voice_tip.mp3 /system/etc/pocketsphinx/ hdc_std.exe file send zh.tar /system/etc/pocketsphinx/ #在OpenHarmony系統中解壓zh.tar tar xvf zh.tar #確保/system/etc/pocketsphinx/下文件目錄結構如下: ├── zh │ ├── zh │ │ ├── feat.params │ │ ├── feature_transform │ │ ├── mdef │ │ ├── means │ │ ├── mixture_weights │ │ ├── noisedict │ │ ├── transition_matrices │ │ └── variances │ ├── zh_cn.dic │ └── zh_cn.lm.bin ├── voice_tip.mp3 #重啟系統2.語音助理App集成 (1)引入語音助理聲明文件
import carvoiceassistant from '@ohos.carvoiceassistant' // 獲取語音助理管理類 letvoiceManager=carvoiceassistant.getManager();(2)開啟喚醒
voiceManager.enableWakeUp()(3)注冊熱詞
voiceManager.registerHotwords(JSON.stringify(hotwords))(4)經緯度設置,用于云語音定位地理位置;例如“今天天氣怎么樣?”語義可以返回設置的經緯度地區的天氣信息
voiceManager.setCoord(23.025978,113.754969)(5)監聽回調,可以監聽識別狀態、語義解析回調、TTS播報狀態
voiceManager.on(carvoiceassistant.EventType.VoiceAssistantEventTypeRecognizeStateChanged, (err, data) => { this.isRecognizing = data['isRecognizing'] if (this.isRecognizing) { this.voiceText = "我正在聽..." } else if (this.voiceText == "我正在聽...") { this.voiceText = '' } }) voiceManager.on(carvoiceassistant.EventType.VoiceAssistantEventTypeAsrResult, (err, data) => { let json: AsrModel = JSON.parse(data['result']) ... }) voiceManager.on(carvoiceassistant.EventType.VoiceAssistantEventTypeTTSPlayStateChanged, (err, data) => { let isPlaying = data["isPlaying"] if (isPlaying == false) { if (this.needDeclare) { this.isUserStopRecognizing = false; this.needDeclare = false; voiceManager.startRecognize(); } this.voiceText = ''; } }) }(6)識別接口
voiceManager.startRecognize(); //開始識別 voiceManager.stopRecognize();//停止識別以上步驟完成后,你也就完成了OpenHarmony系統下語義能力集成。
總結
通過本篇文章介紹,您對OpenHarmony系統下CarVoiceAssistant項目功能應該有了初步的了解。如果您對本篇文章內容以及所實現的Demo感興趣,可以根據本篇文章介紹自行下載CarVoiceAssistant源碼進行研究和使用。同時也歡迎更多開發者與我們共享開發成果,分享技術解讀與經驗心得。 OpenHarmony PATEO_CarVoiceAssistant倉庫地址
https://gitee.com/openharmony-sig/knowledge_demo_travel/tree/master/docs/PATEO_CarVoiceAssistant
參考鏈接
博泰OpenHarmony語音助理
https://gitee.com/openharmony-sig/knowledge_demo_travel/tree/master/docs/PATEO_CarVoiceAssistant
OpenHarmony知識體系工作組
https://gitee.com/openharmony-sig/knowledge
-
AI
+關注
關注
87文章
30239瀏覽量
268476 -
智能語音
+關注
關注
10文章
781瀏覽量
48714 -
鴻蒙
+關注
關注
57文章
2321瀏覽量
42749 -
OpenHarmony
+關注
關注
25文章
3665瀏覽量
16161
原文標題:帶你玩轉OpenHarmony AI:打造智能語音子系統
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論