开源项目 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'// 获取语音助理管理类let voicemanager = 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
基于NVIDIA开发开源程序在Azure云中使用GPU
五年iPhone的十大贡献
采用RS-485总线实现对多台测试装置进行土工膜水力性能测试
宁夏首家5G未来牧场示范基地的建成将推动公共数据互联开放共享
工业LCD生产看板广泛应用于精益管理
带你玩转OpenHarmony AI:打造智能语音子系统
5G时代运营该如何实现转型
长江存储迎来荷兰光刻机,国产SSD固态硬盘将更上一层楼
AMD公布2023年第二季度财报 总营业额达54亿美元
山东:提升制造业供给体系质量,加快关键核心技术突破
AI转写革新生产力 讯飞智能录音笔上榜AWE艾普兰奖
MongoDB和Redis的技术特性
如何安全使用插座和插头呢?
PCB的分类以及制造工艺
斑马智行发布首个智能座舱操作系统 采用多核分布式融合架构
笔记本电脑名词解释大全(二)
芯海科技Harmony智联峰会圆满举行
短短数年,中国5G芯片为何独步天下?
了解模数转换器中的噪声、ENOB和有效分辨率
高压断路器发生爆炸起火的原因及预防措施