【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

系列文章目录

【离线语音专题①】安信可最新离线语音模组VC系列出厂固件使用教程——SDK开源?
【离线语音专题②】安信可语音开放平台的使用——VC系列SDK的获取
【离线语音专题③】安信可VC系列离线语音SDK开发环境搭建——基于Linux系统

文章目录

前言

经过前面两章的学习,相信大家已经了解开发环境的搭建流程。甚至已经编译过固件,并进行了测试。本文将从产品创建开始讲起,一步一步实现语音控制LED的功能。
安信可语音开放平台:http://voice.ai-thinker.com/#/

一、RGB品类产品生成

灯具品类选择 RGB灯选择场景里选择纯离线方案, 选择模组可以根据自己实际的硬件选择,我这里选择VC-02。 填写产品信息中的产品名称随意天线,语言选择中文就好。下拉到最底部,点击 保存

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

; 1.产品功能定义

语音SDK选项中, 前端信号处理Pin脚配置保持默认

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

2.定义控制LED的唤醒词及回复语

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

; 3.定义命令词及回复语

基础信息

  • 行为:即action,用于代码内部识别, 必填
  • 命令词:即语音命令词,需要给模组写入的指令,多个命令用 ” | “隔开, 必填
  • 回复语:即命令词对应的回复语,多个回复语用 ” | “隔开, 必填
    【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

4. 添加控制

控制详情中添加命令词对应做的控制:

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯
在开发板中,默认引出了三个LED灯,对应的GPIO分别是:

LEDGPIO蓝色灯 (React)GPIO_A25暖光灯(Warn)GPIO_B2冷光灯(Cool)GPIO_B3

您可以添加唤醒状态灯,例如,蓝色灯为唤醒状态灯,温灯为有序字控制灯。

[En]

You can add wake-up status lights, for example, the blue light is the wake-up status light and the warm light is the ordered word control light.

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

; 5.完整的制作过程(包含SDK生成)

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

二、SDK下载和固件下载

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

SDK的生成需要时间,不用着急。
如果不需要再外加功能,可以直接选择固件下载,可生成和定制功能一致的固件,之后烧录即可。
如需外加别的功能,比如退出唤醒关闭蓝色灯。就下载SDK,修改源码实现功能。

; 1.固件下载

固件下载是通过远程服务器编译当前SDK后生成的固件,一般有四个固件,它们分别是:

  • uni_app_debug.bin: 调试版固件,有调试信息输出,需要用专门的调试器进行烧录
  • uni_app_debug_update.bin: 调试版的串口升级固件,可以使用UART进行烧录
  • uni_app_release.bin: 正式版固件,需要用专门的调试器进行烧录
  • uni_app_release_update.bin: 正式版的串口升级固件,可以使用UART进行烧录
    【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

2.SDK下载

SDK下载的文件是压缩格式,推荐使用Linux系统进行解压,解压指令:

tar -xzvf uni_hb_m_solution-xxxxx-xxxxxxxx.tar.gz

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

三、代码修改及编译

我们需要在这个SDK中添加一个退出唤醒关闭蓝色LED灯的功能,所以需要看一下代码。我们定制的SDK的功能默认是在 user/src/examples/hb_auto_gpio.c 中,所使用的Demo是 USER_DEMO_AUTO_GPIO

【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

; 注册退出唤醒事件及其回调

在原代码中。默认已经注册了唤醒事件的回调。并且在回调中点亮了蓝色LED灯(GPIO_A25高电平),需要添加的功能: 退出唤醒时关闭蓝色LED灯,修改步骤:

  • 注册退出唤醒事件
  • *添加退出唤醒事件回调的功能

static void _goto_sleeping_cb(USER_EVENT_TYPE event, user_event_context_t* context)
{
  event_goto_sleeping_t* sleeping = NULL;
  if (context)
  {
    sleeping = &context->goto_sleeping;
    user_gpio_set_value(GPIO_NUM_A25, 0);
    user_player_reply_list_random(sleeping->reply_files);
  }

}

static void _register_event_callback(void) {
 ....

  user_event_subscribe_event(USER_GOTO_SLEEPING, _goto_sleeping_cb);
}

为了方便烧录我们使用串口方式进行烧录,在路径 uni_hb_m_solution/unione_lite_app_hb_m执行编译领命:

./build.sh update

在此之后,可以使用串口升级来验证功能。

[En]

After that, the function can be verified by using serial port upgrade.

四、友情连接

安信可语音开放平台:http://voice.ai-thinker.com
官方官网:https://www.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com

Original: https://blog.csdn.net/Boantong_/article/details/124098329
Author: 安信可科技
Title: 【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497704/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球