查看: 435|回复: 5

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

[复制链接]

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
发表于 2024-1-30 10:42:49 | 显示全部楼层 |阅读模式
000 (1).jpg

板子基本介绍

000 (2).jpg

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

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

00 (5).jpg

实验开源代码

  1. #define cwsl_pro

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

  6. uint32_t snid;
  7. void ASR_CODE();
  8. void hardware_init();

  9. /*描述该功能...
  10. */
  11. void ASR_CODE(){
  12.   switch (snid) {
  13.    case 1:
  14.     digitalWrite(4,0);
  15.     break;
  16.    case 2:
  17.     digitalWrite(4,1);
  18.     break;
  19.    case 302:
  20.     digitalWrite(4,0);
  21.     //{ID:500,keyword:"命令词",ASR:"耍接官",ASRTO:"灯亮了"}
  22.     play_audio(500);
  23.     break;
  24.    case 303:
  25.     digitalWrite(4,1);
  26.     //{ID:501,keyword:"命令词",ASR:"接耍官",ASRTO:"灯灭了"}
  27.     play_audio(501);
  28.     break;
  29.   }

  30. }

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

  36. //{ID:300,keyword:"唤醒词",ASR:"小智小智",ASRTO:"我在"}
  37. //{ID:302,keyword:"命令词",ASR:"执行第一条指令",ASRTO:"好的"}
  38. //{ID:303,keyword:"命令词",ASR:"执行第二条指令",ASRTO:"马上执行"}
  39. //{ID:304,keyword:"命令词",ASR:"执行第三条指令",ASRTO:"好的,马上执行"}
  40. //{ID:305,keyword:"命令词",ASR:"执行第四条指令",ASRTO:"好嘞"}
  41. //{ID:306,keyword:"命令词",ASR:"执行第五条指令",ASRTO:"好的马上执行"}
  42. //{ID:307,keyword:"命令词",ASR:"执行第六条指令",ASRTO:"行,马上做"}
  43. //{ID:308,keyword:"命令词",ASR:"执行第七条指令",ASRTO:"好的"}
  44. //{ID:309,keyword:"命令词",ASR:"执行第八条指令",ASRTO:"马上执行"}
  45. //{ID:310,keyword:"命令词",ASR:"执行第九条指令",ASRTO:"好的,马上执行"}
  46. //{ID:311,keyword:"命令词",ASR:"执行第十条指令",ASRTO:"好嘞"}
  47. //{ID:400,keyword:"命令词",ASR:"学习唤醒词",ASRTO:"学习状态中,保持安静"}
  48. //{ID:401,keyword:"命令词",ASR:"学习命令词",ASRTO:"学习状态中,保持安静"}
  49. //{ID:402,keyword:"命令词",ASR:"重新学习",ASRTO:"学习状态中,保持安静"}
  50. //{ID:403,keyword:"命令词",ASR:"退出学习",ASRTO:"好的"}
  51. //{ID:404,keyword:"命令词",ASR:"我要删除",ASRTO:"删除唤醒词还是命令词"}
  52. //{ID:405,keyword:"命令词",ASR:"删除唤醒词",ASRTO:"删除成功"}
  53. //{ID:406,keyword:"命令词",ASR:"删除命令词",ASRTO:"删除成功"}
  54. //{ID:407,keyword:"命令词",ASR:"退出删除",ASRTO:"马上退出"}
  55. //{ID:408,keyword:"命令词",ASR:"全部删除",ASRTO:"好的"}
  56. //{ID:409,keyword:"命令词",ASR:"指令学习成功",ASRTO:"学习成功,请再说一次"}
  57. //{ID:410,keyword:"命令词",ASR:"学习失败",ASRTO:"学习失败,再说一次"}
  58. //{ID:411,keyword:"命令词",ASR:"注册成功",ASRTO:"指令学习成功"}
  59. //{ID:412,keyword:"命令词",ASR:"超上限",ASRTO:"学习数量超上限"}
  60. //{ID:413,keyword:"命令词",ASR:"删除成功",ASRTO:"删除成功"}
  61. //{ID:414,keyword:"命令词",ASR:"删除失败",ASRTO:"删除失败"}
  62. //{ID:415,keyword:"命令词",ASR:"正在删除",ASRTO:"正在删除"}
  63. //{ID:416,keyword:"命令词",ASR:"未找到命令词",ASRTO:"找不到要删除的命令词"}
  64. //{ID:417,keyword:"命令词",ASR:"学习成功",ASRTO:"学习完成"}
  65. //{ID:418,keyword:"命令词",ASR:"失败",ASRTO:"学习失败,退出学习模式"}
  66. //{ID:419,keyword:"命令词",ASR:"请再说一次",ASRTO:"请再说一次"}
  67. //{ID:420,keyword:"命令词",ASR:"语音太短",ASRTO:"语音太短了"}
  68. //{ID:421,keyword:"命令词",ASR:"指令重复",ASRTO:"命令词和默认有相同,请换命令词"}
  69. //{ID:1001,keyword:"命令词",ASR:"开始学习第一条指令",ASRTO:"请说第一条要学习的指令"}
  70. //{ID:1002,keyword:"命令词",ASR:"开始学习第二条指令",ASRTO:"请说第二条要学习的指令"}
  71. //{ID:1003,keyword:"命令词",ASR:"开始学习第三条指令",ASRTO:"请说第三条要学习的指令"}
  72. //{ID:1004,keyword:"命令词",ASR:"开始学习第四条指令",ASRTO:"请说第四条要学习的指令"}
  73. //{ID:1005,keyword:"命令词",ASR:"开始学习第五条指令",ASRTO:"请说第五条要学习的指令"}
  74. //{ID:1006,keyword:"命令词",ASR:"开始学习第六条指令",ASRTO:"请说第六条要学习的指令"}
  75. //{ID:1007,keyword:"命令词",ASR:"开始学习第七条指令",ASRTO:"请说第七条要学习的指令"}
  76. //{ID:1008,keyword:"命令词",ASR:"开始学习第八条指令",ASRTO:"请说第八条要学习的指令"}
  77. //{ID:1009,keyword:"命令词",ASR:"开始学习第九条指令",ASRTO:"请说第九条要学习的指令"}
  78. //{ID:1010,keyword:"命令词",ASR:"开始学习第十条指令",ASRTO:"请说第十条要学习的指令"}
  79. //{ID:2001,keyword:"命令词",ASR:"恭喜你第一条指令学习成功",ASRTO:"恭喜你第一条指令学习成功"}
  80. //{ID:2002,keyword:"命令词",ASR:"恭喜你第二条指令学习成功",ASRTO:"恭喜你第二条指令学习成功"}
  81. //{ID:2003,keyword:"命令词",ASR:"恭喜你第三条指令学习成功",ASRTO:"恭喜你第三条指令学习成功"}
  82. //{ID:2004,keyword:"命令词",ASR:"恭喜你第四条指令学习成功",ASRTO:"恭喜你第四条指令学习成功"}
  83. //{ID:2005,keyword:"命令词",ASR:"恭喜你第五条指令学习成功",ASRTO:"恭喜你第五条指令学习成功"}
  84. //{ID:2006,keyword:"命令词",ASR:"恭喜你第六条指令学习成功",ASRTO:"恭喜你第六条指令学习成功"}
  85. //{ID:2007,keyword:"命令词",ASR:"恭喜你第七条指令学习成功",ASRTO:"恭喜你第七条指令学习成功"}
  86. //{ID:2008,keyword:"命令词",ASR:"恭喜你第八条指令学习成功",ASRTO:"恭喜你第八条指令学习成功"}
  87. //{ID:2009,keyword:"命令词",ASR:"恭喜你第九条指令学习成功",ASRTO:"恭喜你第九条指令学习成功"}
  88. //{ID:2010,keyword:"命令词",ASR:"恭喜你第十条指令学习成功",ASRTO:"恭喜你第十条指令学习成功"}
  89. /*********************************************************************/

  90. void hardware_init(){

  91.   vTaskDelete(NULL);
  92. }

  93. void setup()
  94. {
  95.   //{speak:小蝶-清新女声,vol:20,speed:10,platform:haohaodada,version:V3}
  96.   //{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
  97.   //{playid:10002,voice:我退下了,用智能管家唤醒我}
  98.   //{ID:0,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
  99.   //{ID:1,keyword:"命令词",ASR:"打开灯光",ASRTO:"好的,马上打开灯光"}
  100.   //{ID:2,keyword:"命令词",ASR:"关闭灯光",ASRTO:"好的,马上关闭灯光"}
  101.   pinMode(4,output);
  102.   setPinFun(4,FIRST_FUNCTION);
  103.   xTaskCreate(hardware_init,"hardware_init",256,NULL,100,NULL);
  104. }
复制代码

生成模型与编译烧录

01.jpg

02.jpg

实验记录视频

【【花雕动手做】ASRPRO语音识别(58)---尝试自学习模式的开关灯】 https://www.bilibili.com/video/BV1BJ4m1b7N6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987



03-.jpg

回复

使用道具 举报

0

主题

1

帖子

6

积分

注册会员

Rank: 2

积分
6
发表于 2024-2-5 21:55:02 | 显示全部楼层
这些代码怎么使用?
回复

使用道具 举报

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
 楼主| 发表于 2024-2-9 06:02:13 | 显示全部楼层
lcj700 发表于 2024-2-5 21:55
这些代码怎么使用?

使用天问Block
回复

使用道具 举报

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
 楼主| 发表于 2024-2-15 16:30:48 | 显示全部楼层
lcj700 发表于 2024-2-5 21:55
这些代码怎么使用?

【花雕动手做】ASRPRO-Plus语音识别(01)---开发板三种开发环境的搭建
https://blog.csdn.net/weixin_41659040/article/details/133909855
回复

使用道具 举报

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
 楼主| 发表于 2024-2-15 16:46:28 | 显示全部楼层
lcj700 发表于 2024-2-5 21:55
这些代码怎么使用?

下载安装桌面端天问Block软件
软件页面:http://www.twen51.com/new/twen51/art_show.php?id=230#

天问Block无缝对接在线平台,支持账号管理,支持C51、STC12、STC15、STC8、STC16、STC32G、CH32V003、CH32V103、CH57X、TW32F003、TWEN-ASR、ASRPRO、ASR-MCU、TWEN32等硬件芯片离线环境下编程,并可以查看案例、上传作品,轻松保存程序。适用win7以上32位、64位操作系统。
回复

使用道具 举报

0

主题

1

帖子

12

积分

注册会员

Rank: 2

积分
12
发表于 2024-4-2 18:51:57 | 显示全部楼层
点动怎么实现?就是开15秒就关闭?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-4-29 23:33 , Processed in 0.334062 second(s), 26 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表