Gravity:中英文语音合成模块

简介

让声音为你的项目增添一抹特色!连接上语音合成模块,再添加几行简单的代码就可以让您的项目开口说话。无论是中文还是英文对于语音合成模块来说都是so easy,播报当前时间,播报环境数据统统不在话下,与语音识别模块结合还可实现语音对话!该模块采用I2C和UART两种通讯方式,Gravity接口,兼容绝大部分主控。模块上已经自带了一个喇叭,所以您无需再额外的添加喇叭。

特性

应用场景

技术规格

引脚说明

序号 丝印 功能描述
1 D/T I2C数据线/TX
2 C/T I2C时钟线/RX
3 GND 电源负极
4 VCC 电源正极
5 AOP 音频输出正
6 AON 音频输出负

使用教程

准备

关于如何安装库文件,点击链接

  /**
   *  @brief 语音合成函数
   *  @param word 要合成的内容,可以是中文,英文,数字等
   */
  void speak(String word);

  /**
   *  @brief 设置语音的音量大小
   *  @param voc,音量数值(0-9)
   */
  void setVoice(uint8_t voc);

  /**
   *  @brief 设置语音的播放速度
   *  @param speed,速度数值(0-9)
   */
  void setSpeed(uint8_t speed);

  /**
   *  @brief 设置声音种类
   *  @param type(MALE:男,FEMALE:女,DONALDDUCK:唐老鸭)
   */
  void setSoundType(eSoundType_t type);
  /**
   *  @brief Set voice type 
   *  @param   FEMALE1,/*小燕,女声,推荐发音人*/
   *           MALE1,/*许久,男声,推荐发音人*/
   *           MALE2,/*许多,男声*/
   *           FEMALE2,/*小萍,女声*/
   *           DONALDDUCK,/*唐老鸭,效果器*/
   *           FEMALE3,/*许小宝,女童声*/
   */
  void setSoundType(eSoundType_t type);

  /**
   *  @brief 设置音调
   *  @param tone,音调数值(0-9)
  */
  void setTone(uint8_t tone);

  /**
   *  @brief 设置英文发音
   *  @param pron(ALPHABET:以字母单个发音,WORD:以单词发音)
   */
  void setEnglishPron(eENpron_t pron);

  /**
   *  @brief 恢复默认设置
   */
  void reset();

语音合成功能支持多种文本控制标记,可以满足用户对语音合成发音人、音量、语速、语调等的设置。标记只是作为控制标记实现设置功能,不会合成为声音输出。如:“[s1]我慢条斯理。 [s8]我快言快语”中,经过标记的设置,前一句合成语速会很慢,后一句合成语速会很快,但不会读出“s1”和“s8”。
注意:控制标识为全局控制标识,也就是只要用了一次,在不对芯片进行复位、或断电、或使用[d]恢复默认设置的条件下,其后发送给芯片的所有文本都会处于它的控制之下。

接线图

样例代码1 - 使用I2C通讯合成语音

模块循环发出合成的声音(请注意开关是否拨到了I2C方向)

/*!
 * @file i2c.ino
 * @brief 通过i2c的方式控制语音合成传感器,并合成语音
 * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [fengli](li.feng@dfrobot.com)
 * @version  V1.0
 * @date  2020-11-6
 * @get from https://www.dfrobot.com
 * @url https://github.com/DFRobot/DFRobot_SpeechSynthesis
 */
#include "DFRobot_SpeechSynthesis.h"
DFRobot_SpeechSynthesis_I2C ss;
void setup() {
  //初始化语音合成传感器
  ss.begin();
  //设置语音的音量大小为5
  //ss.setVoice(5);
  //设置语音的播放速度为5
  //ss.setSpeed(5);
  //设置发音人为女性
  //ss.setSoundType(ss.FEMALE1);
  //设置音调为5
  //ss.setTone(5);
  //设置英文以单词发音
  //ss.setEnglishPron(ss.WORD);
}

void loop() {
  ss.speak("黑灰化肥发灰黑会挥发");
  ss.speak("Hello, I'm Speech Synthesis module");
  ss.speak("duck不必");
  ss.speak("a b c d e f g");

  /*使用文本控制标识控制*/
  //音量标识
  //ss.speak("[v3]Hello [v8]world");
  //单词发音方式标识
  //ss.speak("[h1]Hello [h2]world");
}

样例代码2 - 使用UART通讯合成语音

模块循环发出合成的声音(请注意开关是否拨到了UART方向)
为了保证通讯稳定建议使用硬串口进行通讯

/*!
 * @file uart.ino
 * @brief 通过uart的方式控制语音合成传感器,并合成语音
 * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [fengli](li.feng@dfrobot.com)
 * @version  V1.0
 * @date  2020-11-6
 * @get from https://www.dfrobot.com
 * @url https://github.com/DFRobot/DFRobot_SpeechSynthesis
 */
#include "DFRobot_SpeechSynthesis.h"
#include <SoftwareSerial.h>
SoftwareSerial ssSerial1(2, 3);  //RX, TX
DFRobot_SpeechSynthesis_UART ss;

void setup() {
  ssSerial1.begin(115200);
  //初始化语音合成传感器
  ss.begin(ssSerial1);

  //设置语音的音量大小为5
  //ss.setVoice(5);
  //设置语音的播放速度为5
  //ss.setSpeed(5);
  //设置发音人为女性
  //ss.setSoundType(ss.FEMALE1);
  //设置音调为5
  //ss.setTone(5);
  //设置英文以单词发音
  //ss.setEnglishPron(ss.WORD);
}

void loop() {
  ss.speak(F("黑灰化肥发灰黑会挥发"));
  ss.speak(F("Hello, I'm Speech Synthesis module"));
  ss.speak(F("duck不必"));
  ss.speak(F("a b c d e f g"));

  /*使用文本控制标识控制*/
  //音量标识
  //ss.speak(F("[v3]Hello [v8]world"));
  //单词发音方式标识
  //ss.speak(F("[h1]Hello [h2]world"));
}

Mind+图形化编程

1、下载及安装软件。下载地址:http://mindplus.cc 详细教程:安装教程
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中你使用的主控板,本教程以uno为例,因此选择“Arduino Uno”。然后在用户库中搜索语音合成加载扩展库。 详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图:
5、菜单“连接设备”,“上传到设备”
6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印

DFR0760 MIND+

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接