查看: 210|回复: 0

【花雕动手做】ASRPRO语音识别(61)---童声对话版的鼠标精灵

[复制链接]

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
发表于 2024-2-1 20:56:42 | 显示全部楼层 |阅读模式
本例实验拆解了一只鼠标


10 (1).jpg

10 (2).jpg

10 (3).jpg

【花雕动手做】实验六十六:童声对话版,可以介绍鼠标三按键的鼠标精灵
实验开源代码

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

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

  8. /*描述该功能...
  9. */
  10. void ASR_CODE(){
  11.   switch (snid) {
  12.    case 1:
  13.     digitalWrite(4,0);
  14.     break;
  15.    case 2:
  16.     digitalWrite(4,1);
  17.     break;
  18.   }

  19. }

  20. //{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
  21. //{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
  22. //{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
  23. void hardware_init(){
  24.   pinMode(0,input);
  25.   dpmu_set_adio_reuse(PA0,DIGITAL_MODE);
  26.   dpmu_set_io_pull(pinToFun[0],DPMU_IO_PULL_UP);
  27.   setPinFun(0,FIRST_FUNCTION);
  28.   pinMode(1,input);
  29.   dpmu_set_adio_reuse(PA1,DIGITAL_MODE);
  30.   dpmu_set_io_pull(pinToFun[1],DPMU_IO_PULL_UP);
  31.   setPinFun(1,SECOND_FUNCTION);
  32.   pinMode(20,input);
  33.   dpmu_set_adio_reuse(PC4,DIGITAL_MODE);
  34.   dpmu_set_io_pull(pinToFun[20],DPMU_IO_PULL_UP);
  35.   setPinFun(20,SECOND_FUNCTION);
  36.   pinMode(4,output);
  37.   setPinFun(4,FIRST_FUNCTION);
  38.   while (1) {
  39.     if(!(digitalRead(0))){
  40.       digitalWrite(4,0);
  41.       delay(200);
  42.       enter_wakeup(2000);
  43.       delay(200);
  44.       //{ID:500,keyword:"命令词",ASR:"耍接官",ASRTO:"这是鼠标左键"}
  45.       play_audio(500);
  46.       delay(500);
  47.       digitalWrite(4,1);
  48.     }
  49.     if(!(digitalRead(1))){
  50.       digitalWrite(4,0);
  51.       delay(200);
  52.       enter_wakeup(2000);
  53.       delay(200);
  54.       //{ID:501,keyword:"命令词",ASR:"接耍官",ASRTO:"这是鼠标右键"}
  55.       play_audio(501);
  56.       delay(500);
  57.       digitalWrite(4,1);
  58.     }
  59.     if(!(digitalRead(20))){
  60.       digitalWrite(4,0);
  61.       delay(200);
  62.       enter_wakeup(2000);
  63.       delay(200);
  64.       //{ID:502,keyword:"命令词",ASR:"官耍接",ASRTO:"这是滚轮按键"}
  65.       play_audio(502);
  66.       delay(500);
  67.       digitalWrite(4,1);
  68.     }
  69.     delay(100);
  70.   }
  71.   vTaskDelete(NULL);
  72. }

  73. void setup()
  74. {
  75.   digitalWrite(4,1);
  76.   //{speak:小萌-可爱女童,vol:20,speed:10,platform:haohaodada}
  77.   //{playid:10001,voice:欢迎使用人工智能AI语音助手,用鼠标精灵唤醒我}
  78.   //{playid:10002,voice:我退下了}
  79.   //{ID:0,keyword:"唤醒词",ASR:"鼠标精灵",ASRTO:"我在呢"}
  80.   //{ID:1,keyword:"命令词",ASR:"打开鼠标灯",ASRTO:"好的,鼠标红了"}
  81.   //{ID:2,keyword:"命令词",ASR:"关闭鼠标灯",ASRTO:"好的,不亮了"}
  82.   //{ID:3,keyword:"命令词",ASR:"鼠标左键",ASRTO:"鼠标左键的功能是执行选择、打开、拖动等常见任务。比如,你可以用左键单击选择一个文件,双击左键打开一个文件,按住左键拖动一个文件或窗口。你也可以用左键选定文本,或者点击菜单命令。鼠标左键是鼠标的主要按钮,通常用于确认操作。"}
  83.   //{ID:4,keyword:"命令词",ASR:"鼠标右键",ASRTO:"鼠标右键的作用是弹出快捷菜单,帮助你快速执行一些功能。比如,你可以用右键复制、粘贴、删除、重命名文件,或者查看文件的属性。你也可以用右键在网页上刷新、后退、前进、保存图片等。"}
  84.   //{ID:5,keyword:"命令词",ASR:"鼠标中键",ASRTO:"鼠标滚轮按键的用处是实现鼠标中键的功能,可以在不同的软件和网页中有不同的效果。比如,你可以用鼠标滚轮按键在浏览器中打开或关闭一个新的标签页,或者在任务栏上快速打开一个已经打开的软件。"}
  85.   //{ID:6,keyword:"命令词",ASR:"长知识了",ASRTO:"谢谢鼓励哦"}
  86.   xTaskCreate(hardware_init,"hardware_init",256,NULL,100,NULL);
  87. }
复制代码


生成模型与编译烧录

11.jpg

12.jpg

实验记录视频


【【花雕动手做】ASRPRO语音识别(61)---童声对话版的鼠标精灵】 [url=【【花雕动手做】ASRPRO语音识别(61)---童声对话版的鼠标精灵】 https://www.bilibili.com/video/B ... a9be994cbb4a86cc987]https://www.bilibili.com/video/BV1tF4m1u7Ch/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987[/url]



实验场景图

13 (1).jpg

13 (2).jpg




回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 23:50 , Processed in 0.337336 second(s), 26 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

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