前言
???????安信可最新发布的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_solution\image_demo\Hummingbird-M-Update-Tool”下的
uni_app_release.bin 或 uni_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
- 校验位:前四位的异或值,0x5a
XOR 0x00XOR 0x00XOR 0x00= 0x5a
三、开发板出厂固件使用
???????开发板出厂固件的指令词和模组的一样,只是加入了LED控制功能及按键唤醒功能:
四、语音控制流程
Created with Rapha?l 2.3.0
开始
说唤醒词
说指令词
是否自动退出
结束
yes
no
五、总结
???????出厂固件已经具备了很不错的指令,单片机可以根据对应的指令码做相应的处理。指令码最重要的一个字节就是校验位,在C语言中可以这么做:
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
|