物联网
您现在所在的位置:首页>企业动态>物联网

语音合成模块传感器功能以及模块说明

编辑:学到牛牛IT培训    发布日期: 2024-04-15 14:51:24  


1.语音合成模块说明


图片1.png


1.1 传感器介绍 

语音合成模块是一种将文本转换为语音的技术,它通过计算机语音合成来实现。这种技 术可以广泛应用于各种领域,如语音助手、智能机器人、虚拟人物等。它通过分析输入文本 的语言学信息,结合语音库中的语音样本,生成与输入文本对应的语音波形。


1.2 工作原理 

语音合成模块的工作原理是利用计算机语音合成技术,将输入的文本转换为语音波形, 然后通过 MP3设备播放出来。 

具体来说,语音合成模块的工作原理可以分为以下几个步骤: 

文本预处理:对输入的文本进行分析和处理,提取语言学信息,并进行相应的转换,以便声学模型可以理解并生成相应的语音波形。 

声学模型训练:利用大量的语音数据,训练声学模型,使模型能够根据文本处理部分提 取的语言学信息,生成相应的语音波形。 

语音波形生成:根据文本处理部分提取的语言学信息,结合声学模型生成的语音波形, 生成与输入文本对应的语音波形。 

语音输出:将生成的语音波形进行编码和解码,并通过音响或耳机等设备播放出来,生成最终的语音输出。 


2.注意事项 

1 合适的语速和音调:语音合成模块的语速和音调应该根据应用场景和用户需求进行调整,以提供更好的听觉体验。 

2 音量控制:在播放语音时,应该控制音量,避免声音过大或过小,影响听觉效果。

3.参数说明

3.1 引脚说明


图片2.png


3.2 规格参数


图片3.png


4.实现效果


4.1 例程代码

#include <Wire.h>


#define TTS_MODULE_I2C_ADDR  0x40   // 传感器的IIC地址


bool WireReadTTSDataByte(uint8_t reg, uint8_t &val)

{

/*    if(!WireWriteByte(reg))

    {

        return false;

    }

*/     Wire.requestFrom(TTS_MODULE_I2C_ADDR, 1); 

//  主设备请求从设备一个字节,这个字节可以呗主设备用read()或available()接受。

     while(Wire.available())

     {

        val = Wire.read(); 

     }  

     return true;

}

bool TTSModuleSpeak(unsigned char *sign, unsigned char *words)

{

    unsigned short len, i;

    len = strlen(sign) + strlen(words) + 2;

    unsigned char head[] = {0xFD, 0x00, 0x02, 0x01, 0x01}; // 发送数据文本编码为GB2312

    head[1] = len >> 8;

    head[2] = len;


    Wire.beginTransmission(TTS_MODULE_I2C_ADDR);

      Wire.write(head, 5);

      Wire.write(sign, strlen(sign));

      Wire.write(words,strlen(words));


      if(Wire.endTransmission() != 0)

      {

        return false;

      }

      return true;

}


void setup() {

  // put your setup code here, to run once:

  unsigned char val;

  Wire.begin();

  Serial.begin(9600);

    char arr[100] = {"welcome to china"};

    TTSModuleSpeak("[h0][v10][m55]",arr);  // [h0] 设置单词发音方式,0为自动发音  

    // [v10] 设置音量,音量范围为0—10,10为最大音量;

    // [m55] 选择发音人

    // [s5] 设置语速,语速范围为0-10,10为最大语速

    Serial.println("Start");


    delay(100);

    WireReadTTSDataByte(0,val);

      Serial.println(val);


      delay(500);

    WireReadTTSDataByte(0,val);

      Serial.println(val);

    Serial.println(arr);

}


void loop() {

  // put your main code here, to run repeatedly:

  delay(500);

}


4.2 串口打印


图片4.png


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    扫一扫,免费咨询

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    微信公众号

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

学一流技术,找高薪工作

物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问