2.1 TWen-ASR-ONE开发环境搭建
下载地址:twen51.com/
第一步:下载天问 Block 软件
浏览器打开天问官方网站,点击天问 Block 下载
第二步:安装天问 Block 软件 根据提示默认安装,安装过程中会自动安装 STC-LINK 下载器的 CP210x 驱动。
第三步:运行天问 Block 软件 第一次打开软件,会让你选择主板,请选择 TWEN-ASR。
2.2 TWen-ASR-ONE编写程序
在上一节选择了TWEN-ASR后就会打开第一个范例。
2.2.1 图形代码
从图形代码我们可以看出,程序分两块,一块是初始化,另一块是ASR_CODE的逻辑代码。初始化程序是上电时运行一次,而ASR_CODE是循环运行。
初始化过程: 1.播报音设置。 可以设置不同的男声、女生。选择还是很多的。设置时,还可以听到声音,有点像手机换铃声,点击铃声就会播放铃声的声音。音量和语速根据自己的喜好选择即可。
2.添加欢迎词设置。 欢迎词是上电的时候会播报。 3.添加退出语音设置。 一段时间没有语音操作后,模块会播报退出语音,然后需要唤醒词唤醒。 4.添加识别词(唤醒词)。 唤醒词是唤醒模块工作的识别词。 5.添加识别词(命令词)。 命令词是需要唤醒后工作的识别词。
逻辑代码: 1.将P1_5拉高,则点亮红灯 2.将P1_5拉低,则关闭红灯
程序还是比较简单的。
RGB灯的电路如下:
红灯连接到了GPIO1_5(PWM4)上,控制GPIO的高低电平也就能控制LED。
2.2.2字符代码
上述图形代码也对应这相应的字符代码。
#include "asr.h"
#include "setup.h"
uint32_t snid;
void ASR_CODE();
void hardward_init(){
vTaskDelete(NULL);
}
//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
/*描述该功能...
*/
void ASR_CODE(){
if((snid) == 4){
digitalWrite(13,1);
}
if((snid) == 6){
digitalWrite(13,0);
}
}
void setup()
{
xTaskCreate(hardward_init,"hardward_init",128,NULL,4,NULL);
//{speak:小蝶-清新女声,vol:10,speed:10}
//{playid:10001,voice:欢迎使用智能管家,用智能管家唤醒我。}
//{playid:10002,voice:我退下了,用智能管家唤醒我}
//{ID:2,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
//{ID:4,keyword:"命令词",ASR:"打开红灯",ASRTO:"好的,马上打开红灯"}
//{ID:6,keyword:"命令词",ASR:"关闭红灯",ASRTO:"好的,马上关闭红灯"}
}
可以看到这里使用的FreeRTOS,这里只是给开发者提供了初始化和逻辑接口,因此这里只需要关注ASR_CODE即可。初始化的代码还是建议使用图形化的编程方式。
2.3 TWen-ASR-ONE程序编译下载测试 完成了代码开发,接下来就是编译下载测试。
在编译之前需要先后生成模型。
生成模型需要登录,如果没有账号密码,需要注册。
生成模型后,点击编译下载。第一次下载的时间比较长。耐心等待。以下是烧录的过程:
下载完成后,就会播放欢迎词,前提是你接上了喇叭。
如果一切正常,当你就可以和TWen-ASR-ONE进行交流了。
TWen-ASR-ONE: 欢迎使用智能管家,用智能管家唤醒我。
我:智能管家
TWen-ASR-ONE:我在
我:打开红灯
TWen-ASR-ONE:好的,马上打开红灯
我:关闭红灯
TWen-ASR-ONE:好的,马上关闭红灯
如果长时间不与TWen-ASR-ONE交流,TWen-ASR-ONE就会进入休眠状态,并会输出语音:
TWen-ASR-ONE: 我退下了,用智能管家唤醒我
笔者体验了多次,感觉还是很好的,反映也比较快,有兴趣的可以买来玩玩。