Arduino的NANO 电路板(UNO也可以使用),调用SYN6288,按固定格式给其发送编码数组,使其发音。
在网上找了好久,要么只支持英文,要么只支持汉字,一直没办法解决类似“今天气温12摄氏度”这种连读功能。
绕过去的方法是 “今天气温”+“12”+“摄氏度”。但这并不完美。
后来,在一遍PDF的帮助下,解决了这个问题,我修改了一些代码,增加了一些注释后,记录下来。
/*************声明软串口,避免占用硬串口导致的每次刷写插拔操作***********/
#include <SoftwareSerial.h>
SoftwareSerial TTS_Serial(2,3);//用D2针做为RX,连接SYN6288的的TX口;用D3针做为TX,连接SYN6288的RX口;
void setup()
{ /***********************初始化硬串口和软串口**************/
Serial.begin(9600);
TTS_Serial.begin(9600); //初始化软串口通信;
spk("jzdriver宇音天下SYN6288模块123%");//输入 utf8 编码字符串
}
void loop()
{
/*
本示例参考了一个名为《SYN6288中文发声使用说明、》的PDF文档,在此感谢这位未知的作者
我在这基础上,进行了一些修改和注释
仅希望后人不要像我费心了好久才找到解决办法
jzdriver再次感谢所有热爱开源的人们
*/
}
void spk(unsigned char utf8str[])
{
/****************参数声明***************************