驴友花雕 发表于 2024-1-30 10:44:15

【花雕动手做】ASRPRO语音识别(58)---尝试自学习模式开关灯



板子基本介绍



本例实验的LED模块:
1个电源LED,一个可控制LED(与KEY3共用引脚PA4)。

电原理图(红点处D5为可控制LED)



【花雕动手做】实验六十三:初步体验ASRPRO自学习功能的新建命令词
实验开源代码

#define cwsl_pro

#include "asr.h"
extern "C"{ void * __dso_handle = 0 ;}
#include "setup.h"
#include "myLib/asr_event.h"

uint32_t snid;
void ASR_CODE();
void hardware_init();

/*描述该功能...
*/
void ASR_CODE(){
switch (snid) {
   case 1:
    digitalWrite(4,0);
    break;
   case 2:
    digitalWrite(4,1);
    break;
   case 302:
    digitalWrite(4,0);
    //{ID:500,keyword:"命令词",ASR:"耍接官",ASRTO:"灯亮了"}
    play_audio(500);
    break;
   case 303:
    digitalWrite(4,1);
    //{ID:501,keyword:"命令词",ASR:"接耍官",ASRTO:"灯灭了"}
    play_audio(501);
    break;
}

}

//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
/**********************此部分为自学习语音设置*************************/
/**可以学习两个唤醒词,10个命令词,唤醒词的ID是300,命令词ID是302-311**/

//{ID:300,keyword:"唤醒词",ASR:"小智小智",ASRTO:"我在"}
//{ID:302,keyword:"命令词",ASR:"执行第一条指令",ASRTO:"好的"}
//{ID:303,keyword:"命令词",ASR:"执行第二条指令",ASRTO:"马上执行"}
//{ID:304,keyword:"命令词",ASR:"执行第三条指令",ASRTO:"好的,马上执行"}
//{ID:305,keyword:"命令词",ASR:"执行第四条指令",ASRTO:"好嘞"}
//{ID:306,keyword:"命令词",ASR:"执行第五条指令",ASRTO:"好的马上执行"}
//{ID:307,keyword:"命令词",ASR:"执行第六条指令",ASRTO:"行,马上做"}
//{ID:308,keyword:"命令词",ASR:"执行第七条指令",ASRTO:"好的"}
//{ID:309,keyword:"命令词",ASR:"执行第八条指令",ASRTO:"马上执行"}
//{ID:310,keyword:"命令词",ASR:"执行第九条指令",ASRTO:"好的,马上执行"}
//{ID:311,keyword:"命令词",ASR:"执行第十条指令",ASRTO:"好嘞"}
//{ID:400,keyword:"命令词",ASR:"学习唤醒词",ASRTO:"学习状态中,保持安静"}
//{ID:401,keyword:"命令词",ASR:"学习命令词",ASRTO:"学习状态中,保持安静"}
//{ID:402,keyword:"命令词",ASR:"重新学习",ASRTO:"学习状态中,保持安静"}
//{ID:403,keyword:"命令词",ASR:"退出学习",ASRTO:"好的"}
//{ID:404,keyword:"命令词",ASR:"我要删除",ASRTO:"删除唤醒词还是命令词"}
//{ID:405,keyword:"命令词",ASR:"删除唤醒词",ASRTO:"删除成功"}
//{ID:406,keyword:"命令词",ASR:"删除命令词",ASRTO:"删除成功"}
//{ID:407,keyword:"命令词",ASR:"退出删除",ASRTO:"马上退出"}
//{ID:408,keyword:"命令词",ASR:"全部删除",ASRTO:"好的"}
//{ID:409,keyword:"命令词",ASR:"指令学习成功",ASRTO:"学习成功,请再说一次"}
//{ID:410,keyword:"命令词",ASR:"学习失败",ASRTO:"学习失败,再说一次"}
//{ID:411,keyword:"命令词",ASR:"注册成功",ASRTO:"指令学习成功"}
//{ID:412,keyword:"命令词",ASR:"超上限",ASRTO:"学习数量超上限"}
//{ID:413,keyword:"命令词",ASR:"删除成功",ASRTO:"删除成功"}
//{ID:414,keyword:"命令词",ASR:"删除失败",ASRTO:"删除失败"}
//{ID:415,keyword:"命令词",ASR:"正在删除",ASRTO:"正在删除"}
//{ID:416,keyword:"命令词",ASR:"未找到命令词",ASRTO:"找不到要删除的命令词"}
//{ID:417,keyword:"命令词",ASR:"学习成功",ASRTO:"学习完成"}
//{ID:418,keyword:"命令词",ASR:"失败",ASRTO:"学习失败,退出学习模式"}
//{ID:419,keyword:"命令词",ASR:"请再说一次",ASRTO:"请再说一次"}
//{ID:420,keyword:"命令词",ASR:"语音太短",ASRTO:"语音太短了"}
//{ID:421,keyword:"命令词",ASR:"指令重复",ASRTO:"命令词和默认有相同,请换命令词"}
//{ID:1001,keyword:"命令词",ASR:"开始学习第一条指令",ASRTO:"请说第一条要学习的指令"}
//{ID:1002,keyword:"命令词",ASR:"开始学习第二条指令",ASRTO:"请说第二条要学习的指令"}
//{ID:1003,keyword:"命令词",ASR:"开始学习第三条指令",ASRTO:"请说第三条要学习的指令"}
//{ID:1004,keyword:"命令词",ASR:"开始学习第四条指令",ASRTO:"请说第四条要学习的指令"}
//{ID:1005,keyword:"命令词",ASR:"开始学习第五条指令",ASRTO:"请说第五条要学习的指令"}
//{ID:1006,keyword:"命令词",ASR:"开始学习第六条指令",ASRTO:"请说第六条要学习的指令"}
//{ID:1007,keyword:"命令词",ASR:"开始学习第七条指令",ASRTO:"请说第七条要学习的指令"}
//{ID:1008,keyword:"命令词",ASR:"开始学习第八条指令",ASRTO:"请说第八条要学习的指令"}
//{ID:1009,keyword:"命令词",ASR:"开始学习第九条指令",ASRTO:"请说第九条要学习的指令"}
//{ID:1010,keyword:"命令词",ASR:"开始学习第十条指令",ASRTO:"请说第十条要学习的指令"}
//{ID:2001,keyword:"命令词",ASR:"恭喜你第一条指令学习成功",ASRTO:"恭喜你第一条指令学习成功"}
//{ID:2002,keyword:"命令词",ASR:"恭喜你第二条指令学习成功",ASRTO:"恭喜你第二条指令学习成功"}
//{ID:2003,keyword:"命令词",ASR:"恭喜你第三条指令学习成功",ASRTO:"恭喜你第三条指令学习成功"}
//{ID:2004,keyword:"命令词",ASR:"恭喜你第四条指令学习成功",ASRTO:"恭喜你第四条指令学习成功"}
//{ID:2005,keyword:"命令词",ASR:"恭喜你第五条指令学习成功",ASRTO:"恭喜你第五条指令学习成功"}
//{ID:2006,keyword:"命令词",ASR:"恭喜你第六条指令学习成功",ASRTO:"恭喜你第六条指令学习成功"}
//{ID:2007,keyword:"命令词",ASR:"恭喜你第七条指令学习成功",ASRTO:"恭喜你第七条指令学习成功"}
//{ID:2008,keyword:"命令词",ASR:"恭喜你第八条指令学习成功",ASRTO:"恭喜你第八条指令学习成功"}
//{ID:2009,keyword:"命令词",ASR:"恭喜你第九条指令学习成功",ASRTO:"恭喜你第九条指令学习成功"}
//{ID:2010,keyword:"命令词",ASR:"恭喜你第十条指令学习成功",ASRTO:"恭喜你第十条指令学习成功"}
/*********************************************************************/

void hardware_init(){

vTaskDelete(NULL);
}

void setup()
{
//{speak:小蝶-清新女声,vol:20,speed:10,platform:haohaodada,version:V3}
//{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
//{playid:10002,voice:我退下了,用智能管家唤醒我}
//{ID:0,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
//{ID:1,keyword:"命令词",ASR:"打开灯光",ASRTO:"好的,马上打开灯光"}
//{ID:2,keyword:"命令词",ASR:"关闭灯光",ASRTO:"好的,马上关闭灯光"}
pinMode(4,output);
setPinFun(4,FIRST_FUNCTION);
xTaskCreate(hardware_init,"hardware_init",256,NULL,100,NULL);
}
生成模型与编译烧录





实验记录视频

https://www.bilibili.com/video/BV1BJ4m1b7N6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987

https://www.bilibili.com/video/BV1BJ4m1b7N6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987




页: [1]
查看完整版本: 【花雕动手做】ASRPRO语音识别(58)---尝试自学习模式开关灯