arduino/mixly 智纳捷TTS语音合成模块进阶一

本文介绍如何使用 Arduino 和 ESP32 模块实现 UTF8 编码的中文文本转语音功能,包括 Arduino 代码的具体实现及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、播报可变的文字

mixly程序,这里我用的是ESP32,因为这个模块是RX和TX是3.3v的,所以arduino uno要使用的话就需要一个5V转3.3v的电平转换模块,接线的话RX和TX交叉相接就行

 arduino代码

#include <SoftwareSerial.h>

SoftwareSerial mySerial(5,4);
unsigned char jiewei[5]={0xFD,0X00,0X0E,0X01,0X04};

void setup(){
  mySerial.begin(115200);
}

void loop(){
  mySerial.write(jiewei,5);
  mySerial.write("你好世界");
  delay(5000);

}

 根据资料可以知道,发送的格式为

0XFD 是数据的开头,0x00和0x0E是文本的字节数,由于这里arduino发送的中文是UTF8格式,所以一个文字就是三个字节,字节数就是文字数*3+2,0x01就是命令字表示开始,0x04的意思是用UTF8格式

unsigned char jiewei[5]={0xFD,0X00,0X0E,0X01,0X04};

需要修改的就是根据播报我文字数修改0x0E这个参数,比如要播报你好世界,那就是4个字4*3+2=14也就是16进制的E

二、文本可调 

mixly代码

arduino代码 


#include <SoftwareSerial.h>

SoftwareSerial mySerial(5,4);
unsigned char jiewei[5]={0xFD,0X00,0X0E,0X01,0X04};

void setup(){
  mySerial.begin(115200);
  jiewei[(int)(2)] = 0x08;
}

void loop(){
  mySerial.write(jiewei,5);
  mySerial.write("你好");
  delay(5000);

}

 只需要把0x08给修改就行

测试arduino的文字转UTF8还是有点问题,测试合成5个字以内没有问题,合成多了值就不对了,合成大量的字的时候最好还是通过网站转换,然后放到数组中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值