文章目录
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熄灭。