当前位置: 首页 > news >正文

RK3568笔记八十一: Linux 小智AI聊天机器人移植

若该文为原创文章,转载请注明原文出处。

上一篇编译了所需要的库,这边记录下移植编译测试过程 。

一、源码下载

100askTeam/xiaozhi-linux: Embedded Linux AI Xiaozhi Intelligent voice dialogue.

是在源码上直接修改的,整体框架不变

lib文件是存放自己编译后的动态库文件,需要拷贝到开发板上。

拷贝时有的名称需要修改。

二、移植过程

1、编译control_center

文件里的代码主要功能是通过websocket和服务端通信

修改两个地方

1)、http.cpp文件

测试时证书验证失败,所以添加代码跳过验证

// 取消证书验证
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); 

2)、修改Makefile

在最顶部添加工具链

CROSS_COMPILE = /opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-

3)、编译

编译后会生产control_center可执行文件

2、编译sound_app

sound_app的作用是采集数据编码成opus格式,通过UDP发送给control_center,并接收返回数据,解码播放

此文件只需要修改makefile,在最顶部添加工具链

CROSS_COMPILE = /opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-

编译,生成sound_app

3、 编译GUI

GUI修改的比较多

1)、lv_100ask_xz_ai_main.h

存放字休和图片的路径

2)、lv_linux_fbdev.c

修改屏幕分辨率,用的屏是5.5寸720*1280

lv_display_t * disp = lv_display_create(720, 1280);

3)、lv_conf.h

修改LV_FS_POSIX_PATH路径

#define LV_FS_POSIX_PATH "./xiaozhi/"

4)、main.c

修改触摸屏节点

5)、makefile

修改工具链

CC ?=  /opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-gcc

6)、toolchain.cmake

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

set(tools "/opt/atk-dlrk356x-toolchain/usr")
set(CMAKE_C_COMPILER ${tools}/bin/aarch64-buildroot-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/aarch64-buildroot-linux-gnu-g++)

到此修改完成,修改的比较少,主要是韦老师架构好

在编译前也可以使用下面命令修改工具链

export CC=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-gcc

7)、编译

编译后会在bin目录下生成lvgl_xiaozhi文件

lvgl_xiaozhi,sound_app,control_center三个文件上传到开发板

三、测试

测试前还需要字体和图片,字体网上下在,图片下载iconfont-阿里巴巴矢量图标库

放到lv_100ask_xz_ai_main.h指定的目录下。

测试

先在后台运行sound_app,control_center

在执行lvgl_xiaozhi,就会看到界面显示一个6位数

打开网址,输入显示的验证码,激活设备即可

小智 AI 聊天机器人

附演示地址

全网首发、基于RK3568的小智AI聊天机器人….感谢韦老师开源…._哔哩哔哩_bilibili

源码

Yinyifeng18/xiaozhi-linux-rk3568: 基于RK3568的小智AI聊天机器人

如有侵权,或需要完整代码,请及时联系博主。

相关文章:

  • ctfshow做题笔记—栈溢出—pwn73、pwn74
  • 在 Mermaid 流程图里“驯服”quot;的魔法指南!!!
  • Maven仓库配置
  • React 组件之间的通信
  • Axure项目实战:智慧城市APP(完整交互汇总版)
  • 解析信息归属地与网络安全的关联
  • windows下安装sublime
  • 黑盒测试与白盒测试详解
  • 保姆级教程 在linux上启动Docker并且使用IntelliJ DockerCompose一键部署Springboot应用 常见命令
  • 产品生产流程优化
  • ​SVN 常用命令速查表
  • Linux中安装elasticsearch和kibana
  • 01-系统编程
  • 不同YOLO版本之间对比关系
  • 如何管理间接需求?团队实践分享
  • el-select开启filterable模式,限制输入框输入类型
  • 分享本周所学——三维重建算法3D Gaussian Splatting(3DGS)
  • ECharts各类炫酷图表/3D柱形图
  • three.js3D模型场景编辑器
  • Linux实现生产者消费者模型
  • 空间站第八批科学实验样品返抵地球并交付科学家
  • “网约摩托”在部分县城上线:起步价五六元,专家建议纳入监管
  • 俄伏尔加格勒机场正式更名为斯大林格勒机场
  • 软硬件企业集中发布未成年人模式使用手册
  • 特朗普执政百日集会吹嘘政绩,美国消费者信心指数跌至疫情以来最低
  • 向总书记汇报具身智能发展的“稚辉君”:从期待到兴奋再到备受鼓舞