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


前言

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

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

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

产品型号供电要求封装尺寸默认通讯接口
VC-01模组3.6-5V,I>500mASMD-2425.5243.2(±0.2)mmUART1
VC-02模组3.6-5V,I>500mASMD-2018173.2(±0.2)mmUART1
VC-02-Kit开发板5V,I>500mADIP-1942.2*35.6(±0.2)mmUART1
VC-01-Kit开发板5V,I>500mADIP-1942.2*35.6(±0.2)mmUART1

一、使用前准备

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串口升级接线及烧录介绍

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

  • 烧录的固件必须是使用 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校验位
0x5a0x000x000x000x5a
  • 起始位:为固定值: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
技术支持:support@aithinker.com

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值