带你玩转OpenHarmony AI:打造智能语音子系统

如何向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仓库地址

knowledge_demo_travel: 基于智慧出行场景围绕出行打造的样例,开发者可以从多种类型设备间协同联动特性中感受万物互联带来的智能。 - Gitee.com

参考链接

博泰OpenHarmony语音助理

knowledge_demo_travel: 基于智慧出行场景围绕出行打造的样例,开发者可以从多种类型设备间协同联动特性中感受万物互联带来的智能。 - Gitee.com

OpenHarmony知识体系工作组

knowledge: 为OpenHarmony社区共建学习路径,开发样例,三方库,深度文章,直播课程,素材拓展等内容,并依托OpenHarmony官网呈现给开发者,帮助开发者快速查找学习资源,共同繁荣OpenHarmony社区。

OpenHarmony实战:轻量级系统之配置其他子系统 还有一些必要但是无需进行移植的子系统..... 阅读详情

相关推荐

【OpenHarmony】L0L1 添加子系统/组件

在openharmony项目代码里,可暂时随意位置存放你创建的子系统代码。写完新增子系统的代码后,需要在新增的代码目录下添加BUILD.gn文件。这里创建叫做"myhello"的子系统,组件名叫"hello_test"。注意:build/lite/components编译组件已弃用,被弃用的编译组件是OpenHarmony3.0前使用。项目自定义存放路径 / myhello├── src # 源文件存放目录├── include # 头文件存放目录。

Kemin123的博客 1794

【OpenHarmony】标准系统 新增子系统/部件

标准系统新增部件

Kemin123的博客 1410

OpenHarmony智能语音框架深度拆解:从VAD到唤醒词打造你的AI语音智能体

智能语音框架(Intelligent Voice Framework)是OpenHarmony系统中的核心AI服务组件,提供语音注册和语音唤醒两大核心功能。该框架采用C/S架构,通过系统服务(SystemAbility)方式提供跨进程语音能力。人声识别算法是智能语音框架的核心前置处理模块,负责从连续音频流中检测有效人声片段,过滤掉静音、背景噪音等非语音段,为后续的唤醒词识别和声纹注册提供高质量的音频输入。

m0_67505153的博客 337

带你玩转OpenHarmony AI-基于海思NNIE的AI能力自定义

本实例中,需要完成手势的检测和分类,其中对于手势检测选用了Yolov2模型,对于手势的分类则选用Resnet18模型;相信大家从玩转OpenAtom OpenHarmony(简称“OpenHarmony”)AI系列专题的其他文章中,已经拓展了OpenHarmony AI在智慧出行、智慧办公等多场景下的AI自动检测、识别和判断的新体验,对于OpenHarmony平台上的AI开发有了一定认识。4) 模型训练:利用算法模型和相应数据集训练出目标模型。本实例中,需要完成手势的检测和分类,需要加载相关两个模型文件。

OpenHarmony_dev的博客 1605

嵌入式、开发板 智能音响 OpenHarmony GPT 大模型 智能硬件

天猫精灵采用的是 MTK MT8516 的语音专用芯片,这款芯片是 MTK 为智能助手打造的,主频达 1.3GHz,芯片内建 WiFi 802.11 b/g/n 和支持蓝牙 4.0,支持高达 8 通道的 TDM 麦克风阵列接口和 2 通道的 PDM 数字麦克风接口,非常适用于远场 (Far-field) 麦克风语音控制和智能音响设备,在同代中稳定性、性价比很高。糟糕的体验,繁琐的过程,从而使这个产品慢慢淡出我们的生活场景 . 于是,那个物理开关的使用频次又恢复了,这或许也是智能设备不能普及的根本原因之一。

南七小僧的学海无涯 305

【c++语音播报模块的封装与使用】

C++ TTS语音播报模块封装与使用

鸿蒙台式机前瞻:AI-Native PC如何重塑全场景计算生态

操作系统作为计算设备的核心,其架构演进正从单设备管理向跨设备协同的分布式范式转变。这一转变的核心原理在于微内核与分布式软总线技术,能够实现硬件能力的虚拟化与跨设备无缝调度,其技术价值在于打破设备孤岛,提升资源利用效率与用户体验连续性。在AI PC兴起的背景下,系统级智能调度与异构计算融合成为关键应用场景。鸿蒙生态通过引入原生AI框架与NPU硬件,正推动AI能力从应用层下沉至操作系统底层。本文聚焦的鸿蒙台式机,正是承载这一理念的关键载体,它并非简单替代传统PC,而是以AI-Native和全场景融合为切入点,试

weixin_33851429的博客 422

【小白指南】如何将deepseek引入WPS\Word\Excel中去?

如何将deepseek引入WPS\Word\Excel中去?纯小白都能看的懂,一步步操作就能行

2503_90498422的博客 1万+

从课堂到产业:是什么让学生也能成为开源鸿蒙的共建者

正是基于这样的困惑,他选择加入OpenHarmony技术俱乐部,在这里找到了将理论应用于实践的答案,也逐渐掌握了从代码迁移、硬件调试、问题排查到最终集成的全流程,完成了从“写代码的”到“产品型工程师”的身份转变。北航所探索的,是一种“自我造血”的路径——不仅为生态培养出一批具备关键技术能力的中坚力量,更重要的是,通过制度化、体系化的建设,持续规模化地推动认同开源理念、具备系统视野的新一代开发者不断涌现,真正实现生态自循环与内生增长。在这条充满挑战的道路上,有一股看似普通,却越来越不可忽视的力量——高校。

xinyuan82的博客 614

银河麒麟服务器操作系统V10SP3 U盘安装中“基础软件仓库错误”的排查与修复指南

本文针对在无网络环境下使用U盘安装银河麒麟服务器操作系统V10SP3时,遇到的“基础软件仓库错误”问题,提供了详细的排查与修复指南。核心解决方案是通过进入救援模式,使用lsblk命令确定U盘实际设备路径,并在系统引导时手动添加inst.repo内核参数来指定安装源,从而绕过安装程序的自动探测故障,确保安装流程顺利进行。

ik67890123的博客 1193

用AT7456E给监控摄像头加OSD?5步搞定时间水印和Logo叠加

本文详细解析了如何使用AT7456E视频字符叠加芯片为监控系统添加专业级OSD功能,涵盖硬件设计、字符库编程和系统集成等关键步骤。通过5步操作实现时间水印和Logo叠加,提升监控系统的可用性和专业性,特别适合安防和工业视觉应用。

sea99的博客 1011

OpenHarmony添加自定义的子系统、部件、模块

这里我们将OpenHarmony的两个例子添加到源码中并使其编译到系统中,这里有一点需要注意的是不可以将自定义的子系统放到其他已经定义的子系统目录下,vendor下的product文件夹也被认为成一个子系统,比如/就作为product_hihope子系统存在的,其定义在/

weixin_44205232的博客 4397

OpenHarmony媒体子系统音频组件

常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。PCM(Pulse Code Modulation),即脉冲编码调制,是一种将模拟信号数字化的方法,是将时间连续、取值连续的模拟信号转换成时间离散、抽样值离散的数字信号的过程。以下步骤描述了如何使用。

程序猿老樊的博客 673

【Linux 驱动开发】STM32MP1 LCD 显示系统完整实践指南

STM32MP1 LCD显示系统实践指南 本文全面介绍STM32MP1平台实现MIPI DSI LCD显示的完整流程,涵盖硬件连接、设备树配置、显示原理和驱动实现。主要内容包括: 硬件连接:详细说明MIPI DSI差分对、背光PWM、复位/供电管脚的连接方式 设备树配置: PWM背光控制节点设置 LTDC与DSI端口映射关系 Panel节点参数定义 显示基础:讲解LCD/OLED显示原理、常见接口类型(RGB/LVDS/MIPI/HDMI)及信号时序 驱动实现。

猫猫的小茶馆 493

PhotovoltaicPanelCleanlinessDetector:基于YOLOv8的光伏板清洁状态监测系统

data.yamlyaml复制编辑names:0: clean1: dust3: leaves4: shadow✅ 高精度污染识别✅ 具备实时检测与UI展示✅ 可本地化部署应用未来方向增加污染程度分级(轻度、中度、严重)加入时间序列分析(污染变化趋势预测)无人机集成巡检模块。

YOLO 275

OpenHarmony AI 业务子系统

OpenHarmony AI 业务子系统

weixin_37210821的博客 1037

RSL-RL:开源人形机器人强化学习控制研究库

摘要:RSL-RL是一款专为机器人领域设计的开源强化学习库,其核心特点是紧凑性、可修改性和高性能。该库聚焦PPO和BC两大主流算法,并整合了对称性增强、好奇心驱动等机器人专用技术。通过纯GPU训练优化,RSL-RL在大型仿真中展现出卓越的吞吐性能,已成功应用于腿足运动控制、全身协调等多个机器人研究场景。其轻量级架构包含运行器、算法和网络三个可独立修改的组件,支持TensorBoard等主流日志工具。该框架特别适合需要快速原型开发的机器人研究者,但不适用于通用机器学习基准测试。开源地址:https://git

2506_90492529的博客 1674

OpenHarmony开发——移植子系统

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。表1OpenHarmony子系统子系统作用应用程序demo。可将应用相关源码存放在此目录下。kernel内核子系统。负责任务调度、内存管理等常见的内核功能。hiviewdfx可维可测子系统。

m0_71263309的博客 852

Stable Diffusion 模型分享:Beautiful Realistic Asians(美丽真实的亚洲人)

Beautiful Realistic Asians(BRA)模型是由作者自己训练而成的一个独立模型,它是一个真实模型,并且是一个针对亚洲人训练的模型,可以生成非常漂亮的亚洲小姐姐。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者文件名称文件大小1.99GB。

水滴的博客 2156

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OpenHarmony AI框架开发指导

AI 业务子系统是 OpenHarmony 提供原生的分布式 AI 能力的子系统。AI 业务子系统提供了统一的 AI 引擎框架,实现算法能力快速插件化集成。AI 引擎框架主要包含插件管理、模块管理和通信管理模块,完成对 AI 算法能力的生命周期管理和按需部署。插件管理主要实现插件的生命周期管理及插件的按需部署,快速集成 AI 能力插件;模块管理主要实现任务的调度及管理客户端的实例;通信管理主要实现客户端和服务端之间的跨进程通信管理及 AI 服务与插件之间的数据传输。

OpenHarmony_dev的博客 1776

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OpenHarmony AI业务子系统

AI业务子系统是OpenHarmony提供原生的分布式AI能力的子系统。本次开源范围是提供了统一的AI引擎框架,实现算法能力快速插件化集成。框架中主要包含插件管理、模块管理和通信管理等模块,对AI算法能力进行生命周期管理和按需部署。后续,会逐步定义统一的AI能力接口,便于AI能力的分布式调用。同时,提供适配不同推理框架层级的统一推理接口。图 1AI引擎框架。

__Benco的博客 1081

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别
下一篇: 玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制
OpenHarmony开发者
博客等级 码龄5年 625粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值