Arduino驱动LD3320模块

LD3320识别芯片简介

LD3320是一颗基于非特定人语音识别(SI-ASR:Speaker-Independent Automatic SpeechRecognition)技术的语音识别/声控芯片。提供了真正的单芯片语音识别解决方案。 LD3320芯片上集成了高精度的A/D 和 D/A接口,不再需要外接辅助的 Flash和 RAM,即可以实现语音识别/声控/人机对话功能。并且,识别的关键词语列表是可以动态编辑的。
基于 LD3320,可以在任何的电子产品中,甚至包括最简单的51作为主控芯片的系统中,轻松实现语音识别/声控/人机对话功能。为所有的电子产品增加VUI(Voice User Interface)语音用户操作界面。
主要特色功能:
1.非特定人语音识别技术:不需要用户进行录音训练可动态编辑的识别关键词语列表:只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。比如,用户在51等MCU的编程中,简单地通过设置芯片的寄存器,把诸如“你好”这样的识别关键词的内容动态地传入芯片中,芯片就可以识别这样设定的关键词语了。
2.真正单芯片解决方案:不需要任何外接的辅助Flash和RAM,真正降低系统成本。内置高精度A/D 和 D/A 通道:不需要外接AD 芯片,只需要把麦克风接在芯片的 AD 引脚上;可以播放声音文件,并提供550mW的内置放大器。高准确度和实用的语音识别效果。
3. 支持用户自由编辑50条关键词语条:在同一时刻,最多在50条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新这50条关键词语的内容。在这里插入图片描述

模块的使用

LD3320 硬件只需要接双排黄色排针处,硬件接口由2*6 双排2.54mm间距排针组成,上面一排排针对应上面一行管脚注释,下面排针对应下面排针注释。其中2组3V3和一组5V 均可以给 LD3320开发板供电,实际只需要接一组即可。其他的7个排针是必须接的。其中 P1 是 LD3320的MISO,PO是MOSI,P2是 SCK。

在这里插入图片描述

本文主要实现:通过语音模块控制LED的亮和灭。说“开灯”,LED点亮;说“关灯”,LED熄灭。

硬件连接

LD3320与Arduino

3.3V  --  VCC
GND  --  GND
MI  --  D12
MO  --  D11
SCK  -- D13
CS/NSS  --  D4
RST  --  D9
IRQ -- D2
WR -- GND

此外这里搭建了一个LED驱动电路,接了一个LED灯连接到D8。D8为控制引脚;当识别到“开灯”时,D8输出高电平;反之输出低电平

测试代码

#include <ld3320.h>

VoiceRecognition Voice;                         //声明一个语音识别对象

#define Led 8                                   //定义LED控制引脚

void setup() 
{
    pinMode(Led,OUTPUT);                        //初始化LED引脚为输出模式
    digitalWrite(Led,LOW);                      //LED引脚低电平
    Serial.begin(9600);                        //配置9600
    Serial.print("Uart start!");                
    Voice.init();                               //初始化VoiceRecognition模块   
    Voice.addCommand("kai deng",0);             //添加指令,参数(指令内容,指令标签(可重复))
    Voice.addCommand("guan deng",1);            //添加指令,参数(指令内容,指令标签(可重复))
    Voice.addCommand("ni hao",2);               //添加垃圾词汇
    Voice.addCommand("wei wei",3);              //添加垃圾词汇
    Voice.start();//开始识别
}
void loop() {
  switch(Voice.read())                          //判断识别
  {
    case 0:                                     //若是指令“kai deng”
	digitalWrite(Led,HIGH);                 //点亮LED
        Serial.print("LED ON");
        break;
    case 1:                                     //若是指令“guan deng”
	digitalWrite(Led,LOW);//熄灭LED
        Serial.print("LED OFF");
        break;   
    case 2:
        Serial.print("ni hao");
        break;   
    case 3:
        Serial.print("wei wei");
        break;   
    default:
        break;
  
  }
}

实验结果

当说命令词“开灯”,LED点亮,说“关灯”,LED熄灭。

在这里插入图片描述

相关推荐

  1. Arduino驱动ISD1820音频录放模块(声音传感器)

    2024-05-01 21:32:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 21:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 21:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 21:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 21:32:02       20 阅读

热门阅读

  1. 情商测试的新浪潮:如何准确评估个人情商?

    2024-05-01 21:32:02       10 阅读
  2. SGP.31-10

    2024-05-01 21:32:02       8 阅读
  3. ES基础查询,term级参数介绍

    2024-05-01 21:32:02       11 阅读
  4. DOM事件

    DOM事件

    2024-05-01 21:32:02      10 阅读
  5. 为什么MySQL使用B+树而不是跳表

    2024-05-01 21:32:02       9 阅读
  6. Ansible playbook之变量引用

    2024-05-01 21:32:02       10 阅读
  7. 聊聊服务器散热方案的演进

    2024-05-01 21:32:02       12 阅读
  8. 第15届蓝桥杯-蒟蒻の反思与总结

    2024-05-01 21:32:02       34 阅读
  9. Python实现的人脸识别系统

    2024-05-01 21:32:02       11 阅读
  10. pnpm设置全局存储路径

    2024-05-01 21:32:02       13 阅读
  11. 第三题——LCP 07. 传递信息

    2024-05-01 21:32:02       25 阅读
  12. 抽象类和接口的区别你知道吗

    2024-05-01 21:32:02       14 阅读