【离线语音专题①】安信可最新离线语音模组VC系列出厂固件使用教程——SDK开源?


前言

       安信可最新发布的VC系列离线语音模组,采用云知声方案,在语音识别技术上不断优化和创新算法,离线识别算法与芯片架构深度融合,为客户提供超低成本的离线语音识别方案,可广泛且快速应用于智能家居,各类智能小家电,86盒,玩具,灯具等需要语音操控的产品。具体的性能:

  • 支持唤醒词自学习(意思是不用编程就可以增加唤醒词)
  • 支持中英文(不同固件)
  • 1~5m 远场 90%识别率
  • 支持RTOS轻量级系统
  • 支持GPIO控制,UART、IIC、SPI等通讯协议
  • 支持串口升级

       VC系列一共有两款模组及其开发板,开发板的出厂固件和模组的出厂固件是不相同的。

产品型号 供电要求 封装 尺寸 默认通讯接口
VC-01模组 3.6-5V,I>500mA SMD-24 25.5243.2(±0.2)mm UART1
VC-02模组 3.6-5V,I>500mA SMD-20 18173.2(±0.2)mm UART1
VC-02-Kit开发板 5V,I>500mA DIP-19 42.2*35.6(±0.2)mm UART1
VC-01-Kit开发板 5V,I>500mA DIP-19 42.2*35.6(±0.2)mm UART1

一、使用前准备

1.通讯接口连接

       如果是使用模组进行串口连接的话,建议使用如下接口进行通讯:RX1、TX1。
在这里插入图片描述
如果使用开发板,直接用USB 口调试就好了,模组与单片机或者TTL模块连接示意:
在这里插入图片描述

UART1默认的串口的配置:

  • 波特率:115200
  • 数据位:8
  • 停止位:1
  • 校验位:None
  • 流控制:None

UART0(TX0:IOB8)Log 输出配置

  • 波特率:57600
  • 数据位:8
  • 停止位:1
  • 校验位:None
  • 流控制:None

2.开发板硬件说明

       VC-01和VC-02共用一款开发板:
在这里插入图片描述

3.烧录说明

       VC系列一共有两种烧录方式:

  • JTAG调试器烧录
           JTAG调试器烧录方式,是使用专用的JTAG调试器,烧录完整的固件,使用的软件是:UniOneDownloadTool.exe, 一般固件的文件名为:uni_app_release.bin
  • 串口烧录
           串口烧录的方式使用TTL模块进行固件升级,对模块没有任何要求,使用的软件是:UniOneUpdateTool.exe,一般固件的文件名为:uni_app_release_update.bin

两种烧录方式会在下面进行详细的介绍。

(1)JTAG烧录接线及烧录介绍

       JTAG 烧录方式只能使用专用的JTAG调试器,不支持使用J-link等调试器烧录。
在这里插入图片描述
JTAG调试器与VC系列的连接如下:
在这里插入图片描述
       连接好之后,把调试器插入电脑(调试器需要安装驱动,安装教程请看:Hummingbird-M-Production-Tool/M_Download_Tool_User_Guide.pdf),打开UniOneDownloadTool.exe:
在这里插入图片描述
烧录过程:
在这里插入图片描述

(2)UART串口升级接线及烧录介绍

       串口烧录的接线和通讯方式的接线相同,没有特别要注意的。最重要的是所烧录的固件有些要求:

  • 首次烧录必须先烧录“uni_hb_m_solutionimage_demoHummingbird-M-Update-Tool”下的uni_app_release.binuni_app_debug.bin 固件。(出厂固件已烧录)
  • 烧录的固件必须是使用 build.sh update指令生成的uni_app_release_update.bin
  • 烧录工具只能使用:UniOneUpdateTool.exe

下面就开始延时烧录过程:
在这里插入图片描述
在这里插入图片描述

注意:所有端口号成功打开背景颜色会是黄色的

二、模组出厂固件使用

1.指令词及指令码

       模组出厂固件中,默认写入了一些通用的指令及其对应的指令码。

指令词 指令码(十六进制输出) 回应词
小安小安|小安同学|你好小安 0x5a 0x0 0x0 0x0 0x5a 主人,你说|我在,你说|在呢
退下|再见 0x5a 0x01 0x00 0x00 0x5b 有需要再叫我
打开台灯|请开灯|开灯|打开灯|我回来了 0x5a 0x02 0x00 0x00 0x5c 已为您打开照明
关闭台灯|请关灯|关灯|睡觉了|关上灯|我出去了 0x5a 0x03 0x00 0x00 0x5d 已为您关闭照明
调亮一点|亮一点 0x5a 0x04 0x00 0x00 0x5e 灯光已调亮
调暗一点|暗一点 0x5a 0x05 0x00 0x00 0x5f 灯光已调暗
调到最亮|灯光最亮 0x5a 0x06 0x00 0x00 0x60 已调到最亮
调到最暗|灯光最暗 0x5a 0x07 0x00 0x00 0x61 已调到最暗
延时关灯|三十分钟后关灯 0x5a 0x08 0x00 0x00 0x62 三十分钟后为您关闭照明
十分钟后关灯 0x5a 0x09 0x00 0x00 0x63 十分钟后为您关闭照明
二十分钟后关灯 0x5a 0x0a 0x00 0x00 0x64 二十分钟后为您关闭照明
四十分钟后关灯 0x5a 0x0b 0x00 0x00 0x65 四十分钟后为您关闭照明
五十分钟后关灯 0x5a 0x0c 0x00 0x00 0x66 五十分钟后为您关闭照明
六十分钟后关灯 0x5a 0x0d 0x00 0x00 0x67 六十分钟后为您关闭照明
取消定时 0x5a 0x0e 0x00 0x00 0x68 定时关灯已取消
打开空调 0x5a 0x0f 0x00 0x00 0x69 空调已打开
关闭空调 0x5a 0x10 0x00 0x00 0x6a 空调已关闭
打开风扇 0x5a 0x11 0x00 0x00 0x6b 已为您打开风扇
关闭风扇 0x5a 0x12 0x00 0x00 0x6c 已为您关闭风扇
打开冷光|调成冷光 0x5a 0x13 0x00 0x00 0x6d 已为您打开冷光
关闭冷光|关掉冷光 0x5a 0x14 0x00 0x00 0x6e 已为您关闭冷光
打开暖光|调成暖光 0x5a 0x15 0x00 0x00 0x6f 已为您打开暖光
关闭暖光|关掉暖光 0x5a 0x16 0x00 0x00 0x70 已为您关闭暖光
开始学习 0x5a 0x17 0x00 0x00 0x71 开始学习唤醒词…
重置学习 0x5a 0x18 0x00 0x00 0x72 学习数据已重置
命令词学习 0x5a 0x19 0x00 0x00 0x73 开始学习演示命令…
唤醒词学习 0x5a 0x1a 0x00 0x00 0x74 开始学习唤醒词…
清除学习命令词 0x5a 0x1b 0x00 0x00 0x75 命令词学习数据已清除
清除学习唤醒词 0x5a 0x1c 0x00 0x00 0x76 唤醒词学习数据已清除

2.指令码说明

       每个指令码的都代表了VC当前所识别的指令,指令中的含义:以 “0x5a 0x00 0x00 0x00 0x5a” 为例

起始位 指令序号 保留位1 保留位2 校验位
0x5a 0x00 0x00 0x00 0x5a
  • 起始位:为固定值:0x5a
  • 指令序号:代表唯一的指令:0x00 为唤醒词的序号
  • 保留位1:固定值为:0x00
  • 保留位2:固定值为:0x00
  • 校验位:前四位的异或值,0x5aXOR0x00XOR0x00XOR0x00=0x5a

三、开发板出厂固件使用

       开发板出厂固件的指令词和模组的一样,只是加入了LED控制功能及按键唤醒功能:
在这里插入图片描述

四、语音控制流程

Created with Raphaël 2.3.0

开始

说唤醒词

说指令词

是否自动退出

结束

yes

no

五、总结

       出厂固件已经具备了很不错的指令,单片机可以根据对应的指令码做相应的处理。指令码最重要的一个字节就是校验位,在C语言中可以这么做:

//假如判断唤醒:0x5a 0x00 0x00 0x00 0x5a
char start_bit=0x5a;
char cmd_num_bit=0x00;
char temp_num1_bit=0x00;
char temp_num2_bit=0x00;
//计算校验位
char check_bit=start_bit^cmd_mun_bit^temp_num1_bit^temp_num2_bit;

       最重要的来了,到底支不支持二次开发?其实这篇文章中已经说得很清楚了。
在这里插入图片描述

六、友情链接

官方官网:https://www.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛:http://bbs.ai-thinker.com
技术支持:[email protected]

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>