实现目标
- 将一级唤醒词“小杰”修改为“小哈”;
- 在已有“开灯”和“关灯”两个指令基础上,添加“开门”和“关门”两个指令。
舵机-90度转角代表关门,45度代表开门。对应的脉冲宽度时间分别为0.5ms 和 2.0ms。
我们继续在官方提供的口令模式的Demo示例程序基础上,实现本文的目标。
修改唤醒词和关键词
将唤醒词修改为“小哈”
修改如下文件:
其中:
#define DATE_A 8 #define DATE_B 20
这两个宏定义,其中DATE_A代表候选的关键词的个数,这里是8个;DATE_B是关键词对应的字符串的长度中的最大值,此例中,最长的字符串为:"kai fa ban yan zheng"(开发板验证),这个字符串中有20个字符,所以DATE_B定义为20。
因为我们修改的唤醒词“小哈”,字符个数没有超过20,所以,这两个宏定义不需要修改。
添加“开门”和“关门”关键词
- 添加“开门”和“关门”的识别码
- 修改宏定义及关键词对应的数组
- 修改User_handle函数
添加“开门”和“关门”的识别结果处理。
添加“开灯”和“关灯”代码
- 定义继电器控制引脚
sbit RELAY=P1^0;
- 在语音识别结果处添加继电器控制代码
添加“开门”和“关门”代码
- 定义舵机控制引脚
sbit SG90 = P1^7;
- 添加100us的定时器初始化代码
- 在语音识别结果处添加开关门控制的布尔变量改变的代码
- 定时器中添加舵机控制代码
编译程序并下载程序至LD3320模块中
程序编译没有错误之后,将编译结果下载至LD3320模块中验证程序是否正确。
结果展示