(SKU:DFR0177)中文语音识别扩展板 v1.1

来自DFRobot Product Wiki
跳转至: 导航搜索
DFRduino Voice Recognition

目录

1.概述

2.性能描述

  • Arduino兼容控制器:Arduino Uno、Arduino leonardo、Arduino MEGA
  • 通过LD3320芯片做汉语语音识别,不需要用户事先训练和录音,识别准确率95%
  • 每次识别最多可以设置50项候选识别句,识别句可以是单字,词组 或短句,长度为不超过10个汉字或者79个字节的拼音串
  • 板载单声道麦克风以及3.5mm音频输入接口
  • 支持mp3模块UART/I2C两种通讯方式,并可通过拨动开关自由选择
  • 板载AMS1117稳压器,可提供3.3V供电,兼容更多3.3V的元件。
  • 板载芯片状态指示灯,可直观看到芯片工作状态。
  • 尺寸:54mm×47mm


3.引脚图

特此说明:外接音频输入接口不是外置MIC,是线路输入口。

Pinout Diagram 1.jpg
 Arduino引脚占用:MP3模块 D0 D1 A4 A5
                 语音模块 D2 D4 D9 D10 D11 D12 D13


4.Voice Recognition如何使用

语音控制LED灯实验

打开串口监控,设置好波特率,对着麦克风用标准的普通话说“开~~灯~~”,LED灯就会点亮,同时会通过串口推送指令标签“0”, 之后说“关~~灯~~”,LED就会熄灭,同时会通过串口推送指令标签“1”。 PS:不要把嘴巴凑在话筒上..

硬件清单:

  • 连接线若干

工具软件清单:

  • Arduino IDE

连线图:

Pinout 1.jpg


演示代码:

 代码所需库文件
 voiceRecognition
/*============================================================

 *	Copyright:	DFRobot
 *	name:		VoiceLED.ino
 *      function:       通过语音控制LED灯亮灭
 *	Author:		Kelvin 
 *	Date:		2014-8-11
 
===========================================================*/

#include <avr/wdt.h>  
#include <VoiceRecognition.h>
VoiceRecognition Voice;
#define Led 8                          //定义Led引脚为8

void setup() {
    Serial.begin(9600);
    pinMode(Led,OUTPUT);              //初始化LED引脚为输出模式
    digitalWrite(Led,LOW);            //LED引脚低电平
    
    Voice.init();//初始化VoiceRecognition模块   
    Voice.addCommand("kai deng",0);   //添加指令,参数1:指令内容,参数2:指令标签(可重复)
                                      //如“北京”和“首都”代表同样含义,则可共用标签。无返回
    Voice.addCommand("guan deng",1); //添加指令,参数(指令内容,指令标签(可重复))
    Voice.start();//开始识别
    wdt_enable(WDTO_1S);//打开看门狗(防止死机)              

}
void loop() {
  switch(Voice.read())               //判断识别内容,在有识别结果的情况下Voice.Read()会返回该指令标签,否则返回-1
  {
    case 0://若是指令“kai deng”
	digitalWrite(Led,HIGH);     //点亮LED
	Serial.println("received'kai deng',command flag'0'");        //串口发送received"kai deng",command flag"0"
    break;
    case 1://若是指令“guan deng”
	digitalWrite(Led,LOW);     //熄灭LED
	Serial.println("received'guan deng',command flag'1'");       //串口发送received"guan deng",command flag"1"
    break;   
  }
  wdt_reset();    
}



语音控制mp3实验:

连接MP3模块,把MP3模块通讯选择开关拨到UART位置,用标准的普通话说“播~~放~~”,小喇叭里就会放出MP3模块SD卡中名称为“0004.mp3”的文件, 之后说“停~~止~~”就会停止播放。 PS:不要把嘴巴凑在话筒上..

硬件清单:

  • SD内存卡
  • 连接线若干

工具软件清单:

  • Arduino IDE

连线图:

Pinout 2.jpg


演示代码:

 代码所需库文件
 voiceRecognition
 DFPlayerMini
/*============================================================

 *	Copyright:	DFRobot
 *	name:		VoiceMP3.ino
 *      function:       通过语音控制MP3播放
 *	Author:		Kelvin 
 *	Date:		2014-8-11
 
===========================================================*/
#include <avr/wdt.h>  
#include <VoiceRecognition.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>       //加载MP3模块库文件

VoiceRecognition Voice;

void setup() {
    Serial.begin(9600);
    mp3_set_serial (Serial);	    //设置MP3模块通讯方式
    mp3_set_volume (15);            //音量调节
    
    Voice.init();                   //初始化VoiceRecognition模块
    
    Voice.micVol(85);               //麦克风放大增益,参数(10-100)默认85
    Voice.speechEndpoint(15);       //语音/背噪对比度,参数(10-50),默认15
    Voice.speechStartTime(8);       //背噪-语音辨别时间,参数(00~50)单位10MS,默认80ms
    Voice.speechEndTime(15);        //语音-背噪辨别时间,参数(00~200)单位10MS,默认150ms
    Voice.voiceMaxLength(200);      //最长语音段时间,参数(0~200)单位100MS,默认20s
    Voice.noiseTime(2);             //上电噪声忽略时间,参数(00~255)单位20ms,默认40ms
    
    Voice.addCommand("bo fang",0);  //添加指令,参数1:指令内容,参数2:指令标签(可重复)
                                    //如“北京”和“首都”代表同样含义,则可共用标签。无返回
    Voice.addCommand("ting zhi",1); //添加指令,参数(指令内容,指令标签(可重复))

    Voice.start();//开始识别
    wdt_enable(WDTO_1S);//打开看门狗(防止死机)            

}
void loop() {
  // put your main code here, to run repeatedly:
  // Serial.println(Voice.ASR(2,80,sRecog));
  switch(Voice.read())              //判断识别内容,在有识别结果的情况下Voice.Read()会返回该指令标签,否则返回-1
  {
    case 0:                         //若是指令“bo fang”
    	mp3_play (4);
    break;
    case 1:                         //若是指令“ting zhi”
    	mp3_stop ();
    break;   
  }
  wdt_reset();    
}

更多关于MP3模块的应用,点这里

5.库函数说明

Pinout 5.jpg


6.更多应用技巧

 在某些场合需要识别一些简单的外文或者纯方言发音的时候,可以用拼音标注的方法来实现。

例如,有些场合需要识别一些简单的英文单词,可以用拼音标注:

one → wan

two → tu

three → si rui

例如,有些场合需要识别一些纯方言发音的词汇,也可以用拼音标注:

 在识别精度要求高的场景中,可以增添 “垃圾关键词语”——吸收错误识别

例如,某个应用场景中,需要识别的关键词语是 4 条,“前进”,“后退”,“开门”,“关门”。在把这 4 个关键词语设置进芯片后,可以再另外设置 10~30 个词语进模块芯片,比如“前门”,“后门”,“阿阿阿”,“呜呜”等等。

只有识别结果是 4 个关键词语之内的,才认为识别有效。如果识别结果是“垃圾关键词语”,则说明是其他的声音导致的误识别,程序会重新开始一次识别过程。 更多应用技巧,点[这里]

7.历史版本

中文语音识别模块v1.0

8.文档

Nextredirectltr.png库文件v1.1

Nextredirectltr.pngV1.1 原理图

Nextredirectltr.png演示视频

 Nextredirectltr.png如有更多疑问,可登陆我们的论坛与我们进行交流,您的宝贵意见将我们不断进步的阶梯!点击进入论坛
 Nextredirectltr.pngGo Shopping Voice Recognition语音识别扩展板(SKU:DFRDFR0177)
个人工具
名字空间

变换
操作
导航
工具箱