修改大模型开发板小聆ai头像可莉

前言:

本篇文章主要介绍基于聆思 CSK6 大模型开发板的语音交互多模态实例进行二次开发,实现在语音唤醒后在屏幕展示 GIF 动画表情。

  • 通过 LGVL 官网的工具将 GIF 转换为适合嵌入式系统使用的格式
  • 基于 SDK 源代码进行修改
  • 开发板编译与烧录

准备工作

在开始实操之前,我们部署开发环境以及 SDK 工程拉取到本地目录,可以参考聆思文档中心

环境搭建 | 聆思文档中心获取SDK | 聆思文档中心

SDK 下载完成后,通过 VScode 打开 LLM_pic 示例模板(D:\LISTENAI\duomotai_ap\apps\LLM_pic)根据自己的 SDK 保存路径打开打开duomotai_ap\apps\LLM_pic\src\app_ui\aweui\assets\xiaoling_listening_s.cxiaoling_standby_s.c、xiaoling_thinking_s.c

这里原示例中是语音唤醒之后加载语音唤醒“小聆”之后出现的小机器人 动画,如果我们想要它加载其他 GIF 动画,例如可莉,只需要将你想要替换的 GIF 动画的格式在 LVGL 官网转换为 C 语言数组,然后将这部分替换即可。(这里的使用的 GIF 分辨率为 36×36)像素大小最好不超过40*40,字节大小不超过8KB

如果像素过大或者字节过大可以使用工具进行压缩免费在线 GIF 动图压缩工具 - docsmall

GIF 文件转 C 语言数组格式

打开 LVGL 官网(Image Converter — LVGL),

我这里是翻译了网址,若网页为英文版,按照顺序点击即可)点击低电压保护器 v8,选择你想要转换的 GIF,选择颜色格式。这里 demo 中支持的 GIF 颜色格式为 CF_RAW_CHROMA

GIF.C 文件(C 数组格式)导入到示例模板

转变之后打开下载的 c 文件,复制全部代码粘贴到 duomotai_ap\apps\LLM_pic\src\app_ui\aweui\assets\路径下三个.c后缀的代码文件xiaoling_listening_s.c、xiaoling_standby_s.c、xiaoling_thinking_s.c,粘贴之后需要检查以下三个地方:

这里我们示例模板中的 GIF 储存名称为 xiaoling_listening_s.cxiaoling_standby_s.c、xiaoling_thinking_s.c ,所以要将代码中名称的部分与 GIF.C 文件名称统一。可以直接复制替换对应位置即可

<xiaoling_listening_s.c>#ifndef LV_ATTRIBUTE_IMG_XIAOLING_LISTENING_S

#define LV_ATTRIBUTE_IMG_XIAOLING_LISTENING_S

#endif

const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_XIAOLING_LISTENING_S uint8_t xiaoling_listening_map[]

const lv_img_dsc_t xiaoling_listening_s = {

  .header.cf = LV_IMG_CF_RAW_CHROMA_KEYED,

  .header.always_zero = 0,

  .header.reserved = 0,

  .header.w = 36,//像素

  .header.h = 36,//像素

  .data_size = 8008,//数据字节大小(根据图片调整)

  .data = xiaoling_listening_map,

};

<xiaoling_thinking_s.c>#ifndef LV_ATTRIBUTE_IMG_XIAOLING_THINKING_S

#define LV_ATTRIBUTE_IMG_XIAOLING_THINKING_S

#endif

const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_XIAOLING_THINKING_S uint8_t xiaoling_thinking_s_map[]

const lv_img_dsc_t xiaoling_thinking_s = {

  .header.cf = LV_IMG_CF_RAW_CHROMA_KEYED,

  .header.always_zero = 0,

  .header.reserved = 0,

  .header.w = 36,//像素

  .header.h = 36,//像素

  .data_size = 8008,//数据字节大小(根据图片调整)

  .data = xiaoling_thinking_s_map,

};

<xiaoling_standby_s.c>

#ifndef LV_ATTRIBUTE_IMG_XIAOLING_STANDBY_S

#define LV_ATTRIBUTE_IMG_XIAOLING_STANDBY_S

#endif

const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_XIAOLING_STANDBY_S uint8_t xiaoling_standby_map[]

const lv_img_dsc_t xiaoling_standby_s = {

  .header.cf = LV_IMG_CF_RAW_CHROMA_KEYED,

  .header.always_zero = 0,

  .header.reserved = 0,

  .header.w = 36,//像素

  .header.h = 36,//像素

  .data_size = 8008,//数据字节大小(根据图片调整)

  .data = xiaoling_standby_map,

};

下图位置的代码替换

三个文件都如上图处理替换后的文件

编译与烧录

本文使用的聆思CSK6大模型开发板,详细信息可参考线上文档[套件简介 | 聆思文档中心]

1、打开windows powershell/cmd

2、在SDK\duomotai_ap路径下输入,开始编译固件

lisa zep build -b csk6_duomotai_devkit apps\LLM_pic -p

3、固件编译成功之后,回到 SDK 根目录(duomotai_ap)下,执行以下指令进行编译打包:

lisa zep build -b csk6_duomotai_devkit apps\LLM_pic -p编译完成后,使用 Type-C 数据线连接开发套件的 DAP_USB接口,按照以下方式对固件进行烧录:

cskburn desktop是一款聆思推出的桌面烧录工具,在下载并安装 cskburn桌面烧录工具 | 聆思文档中心后,双击

图标运行软件:

1.点击串口下拉框,选择连接开发套件后识别到的串口编号;

2.将编译输出的.bin文件拖拽进烧录区域;

3.点击开始烧录,等待烧录完成。

第五步:复位运行

烧录完成后,程序将自动运行,你也可以通过按压开发板上的复位按键进行复位运行,可唤醒体验替换后的应答语。

相关资料

可莉体验固件下载:https://docs2.listenai.com/z/229.zip

使用开发板信息https://docs2.listenai.com/x/nTn9kMMCU

更多个性配置方法可以参考官方开发文档:https://docs2.listenai.com/x/S_TEd8h7C

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐