你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32利用语音识别与播报智能控制led灯

[复制链接]
STMCU小助手 发布时间:2022-10-16 20:12
stm32利用语音识别与播报智能控制led灯

上次写了一个语音识别的文章,但是那个模块是用串口进行通信的。这次要讲的是另一种识别与播报模块,这种模块相对于上次那种,功能更多,当然价格也更贵。这种识别模块与播报模块都是利用IIC进行传输的,所以本次利用了stm32f103c8t6控制板上面的两个IIC分别是PB6、PB7以及PB10、PB11。本文章主要实现的功能是: 根据说出的指令让识别模块识别到相应的词语后,做出相应的动作,并且利用播报模块说出对应动作是否完成。在这里我只是简单的控制led灯,当然你也可以控制其他东西,如家用电器等等。
其中语音识别模块有三种模式,循环模式:模块时刻处于语音识别状态;口令模式:当检测到口令时候进行语音识别;按键模式:当按下按键后处于语音识别模式,模块没有设置板载按键,通过主控板设置按键检测程序,检测到按键后通过 I2C 发送按键模式启动命令,该按键模式可以由自己定义任意的按键。
而语音模板模块支持任意中文、英文文本的合成,可以采用 GB2312、GBK、BIG5 和UNICODE 四种编码方式。每次合成的文本量最多可达 4K 字节。模块对文本进行分析,对常见的数字、号码、时间、日期、度量衡符号等格式的文本,芯片能够根据内置的文本匹配规则进行正确的识别和处理;对一般多音字也可以依据其语境正确判断读法;另外针对同时有中文和英文的文本,可实现中英文混读。支持多种控制命令如合成文本、停止合成、暂停合成、恢复合成、状态查询等。可设置对应字母的播报方式,如字母发音、单词发音等,还可以通过设置通过汉语拼音进行汉语播报。内置多个发音人物,可以通过设置选择对应的发音人进行语音播放,语音播报的语速、语调、音量等均可以设置。模块还有其他如数字符号等的特殊播报设置。

接下来分别给出两个模块的图片及链接
语音识别模块(本质是LD3320)

20210217162049333.png

语音播报模块

20210217162145512.png


本文章是以stm32为主来控制这两个模块,在文章最下面的资源中包含了microbit、arduino、树莓派、51、32、jetson nano等例程都有。
上面两个模块的接线也相对比较简单,具体如下:
语音识别模块 -----------语音合成播报模块
IIC1 ------------------------IIC2
VCC->单片机5V --------VCC->单片机5V
SCL->单片机PB6 ------SCL->单片机PB10
SDA->单片机PB7 ------SDA->单片机PB11
GND->单片机GND ----GND->单片机GND

stm32语音识别与播报智能控制led灯

接在再附上主程序:

  1. #include "stm32f10x.h"
  2. #include "bsp_i2c.h"
  3. #include "bsp_usart1.h"
  4. #include  "led.h"
  5. /*
  6. 语音识别模块                        语音合成播报模块
  7. IIC1                                IIC2
  8. VCC->单片机5V                VCC->单片机5V        
  9. SCL->单片机PB6                SCL->单片机PB10
  10. SDA->单片机PB7                SDA->单片机PB11
  11. GND->单片机GND                GND->单片机GND
  12. */

  13. int main(void)
  14. {
  15.         u8 result = 0xff;
  16.         LED_Init();                          //初始化与LED连接的硬件接口
  17.         //I2C初始化
  18.         I2C_Bus_Init();
  19.         NVIC_Configuration();
  20.         USARTx_Config();
  21.         
  22. #if 1
  23.         I2C_ByteWrite(ASR_CLEAR_ADDR,0x40);//清除掉电保存区,录入前需要清除掉电保存区
  24.         LD3320_delay(150000);//flash擦除时间较长,需要较长的延时
  25.         I2C_ByteWrite(ASR_MODE_ADDR,0x01);//设置检测模式;
  26.         AsrAddWords(0,"xiao ya");         
  27.         AsrAddWords(4,"kai deng");   
  28.     AsrAddWords(5,"guan deng");

  29. #endif
  30.         I2C_ByteWrite(ASR_REC_GAIN,0x45);  //识别的灵敏
  31.         RGB_Set(255,255,255);
  32.         LD3320_delay(10000);//flash擦除时间较长,需要较长的延时
  33.         RGB_Set(0,0,0);
  34.         
  35.         SetVolume(10);               
  36.         SetReader(Reader_XiaoYan);
  37.         while(1)
  38.         {        
  39.                 I2C_BufferRead(ASR_RESULT,&result,1);
  40.                 printf("result = %d\n",result);
  41.                 if(result==0)
  42.                 {
  43.                 speech_text("[x1]sound204",GB2312);
  44.         while(GetChipStatus() != ChipStatus_Idle)
  45.         {
  46.           delay(50);
  47.         }
  48.                 }
  49.                 if(result==4)
  50.                 {
  51.                 GPIO_ResetBits(GPIOA,GPIO_Pin_1);                  //给PA1置0
  52.                 speech_text("灯已经打开",GB2312);
  53.         while(GetChipStatus() != ChipStatus_Idle)
  54.         {
  55.           delay(50);
  56.         }
  57.                 }
  58.                 if(result==5)
  59.                 {
  60.                 GPIO_SetBits(GPIOA,GPIO_Pin_1);                  //给PA1置1
  61.                 speech_text("灯已经关闭",GB2312);
  62.         while(GetChipStatus() != ChipStatus_Idle)
  63.         {
  64.           delay(50);
  65.         }
  66.                 }               
  67.                 LD3320_delay(10000);        
  68.         }
  69.                                 
  70. }

  71. /*********************************************END OF FILE**********************/
复制代码


如果想要更加详细的资料,可以在文章末尾处查看。
————————————————
版权声明:i土豆



收藏 评论0 发布时间:2022-10-16 20:12

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版