目录
目录README.md

赛题题目:端边协同AI聊天机器人

赛题说明:

AI技术快速发展,给人们带来了诸多好处:既提高了生产效率,又丰富了娱乐生活。由于AI对硬件的算力有一定要求,部分设备不具备端侧AI能力。请基于端边协同,将一个无算力端侧设备和一个有算力边缘设备结合,使无算力设备能够借用有算力设备的算力,完成端侧AI语音聊天功能。

赛题要求:

  1. 实现一个端侧AI聊天功能,要求有文字和语音输入&输出。
  2. 端侧设备实现交互,边缘设备提供算力。两设备间使用无线连接。
  3. 边缘设备可以部署开源模型,端侧交互代码自主实现。

评分标准:

评分项 占比 说明 功能 30 满足上述具体要求前两项,中文语音识别准确,要求干净环境词错误率<5%,响应时延<500ms。语音输出采用流式输出,边生成边播放。 性能优化 30 前后端设备都未休眠的情况下,语音聊天端到端响应时延小于2秒;后端设备休眠的情况下,设备唤醒时间不大于1秒; 稳定性 20 设备在一般噪声环境(15dB SNR),连续运行3小时不断线。 代码规范性 10 代码符合OpenHarmony社区规范,按照规范类型扣分点,每条减少1分,直至为0 文档质量 10 文档能将从架构和技术实现角度,说明架构和技术竞争力。

赛题联系人:

刘小飞 splane.liu@huawei.com 徐梓荐 xuzijian1@huawei.com

参考资料:

分布式硬件子系统https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/分布式硬件子系统.md
分布式硬件管理框架https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk

参赛资源支持:

OpenHarmony社区可提供:Rk3568开发板+Laval开发者手机

赛题交流讨论链接:

https://www.chaspark.com/#/races/competitions/1136107327893524480


赛题实现

🧱 系统架构

┌────────────┐ Wi-Fi通信 ┌────────────┐ │ 端侧设备(Laval)│◄────────────────►│边缘设备(RK3568)│ │ │ │ │ │- 语音输入录制 │ │- 部署语言模型 │ │- UI人机交互 │ │- 推理与合成计算 │ │- 音频播放输出 │ │- API服务接口 │ └────────────┘ └────────────┘

✅ 说明:端侧仅负责音频采集与播放、文本展示及交互逻辑,计算由边缘设备完成,响应通过 Wi-Fi 实时回传。

✨ 关键功能

🎙 语音输入

终端设备使用 OpenHarmony @ohos.multimedia.audio 采集语音,通过第三方API实现语音-文本转换,转换出的文本传输至边缘设备

🧠 智能对话

边缘设备部署 OLLAMA 推理服务处理请求,返回结果

🗣 语音输出

返回的文本通过第三方API实现文本-语音转换,转换出的语音在终端设备播放

📶 通信机制

基于 @ohos.net.http 实现端边间 HTTP 通信;未来可基于OpenHarmony的分布式子系统实现拓展

🔋 唤醒机制

边缘设备OLLAMA休眠时终端设备发送请求,边缘设备主动快速恢复服务

📊 性能与指标达成
🏗 技术实现
角色 设备/平台 功能描述
终端设备 Dayu200开发板 - 使用 ArkTS 编写 UI 与交互逻辑
- 调用系统 API 实现录音与播放
- 通过 HTTP 与边设备通信
边缘设备 Laval手机 - 部署OLLAMA,提供大模型服务支持
🧠 模块划分
模块名称 功能描述
AudioManager 封装麦克风录音以及扬声器播放功能
NetworkManager 构造Http请求
permissionManager 负责权限管理
ChatInput 控制 UI 更新与状态同步
Database 负责聊天消息的本地存储与展示
📁 文件结构

client

仅展示核心功能结构

/entry/src/main/ets ├── pages/Index.ets # 主界面 ├── utils/ChatMessage.ets # 聊天信息接口 ├── utils/NetworkManager.ets # 网络通信结构 ├── utils/Database.ets # 数据库设计 ├── utils/EventSource.ets # OLLAMA流式响应支持 ├── utils/AudioManager.ets # 录音与播放功能封装 ├── utils/PermissionManager.ets # 权限请求管理 └── Config.ets # 所使用服务的配置参数

server

展示部署过程中需要的一些文件和编译好的so文件

🚀 启动方式
边缘设备

边缘设备通过HDC Shell方式进入命令行启动OLLAMA

终端设备

直接安装提供的hap包或使用DevEco Studio打开本项目的终端部分代码,构建运行

🔒 注意事项

确保边缘设备与终端设备在同一网络内并且终端设备可上网

关于
46.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号