一、概述
SYN6288 中文语音合成芯片是北京宇音天下科技有限公司于 2010年初推出的一款性/价比更高,效果更自然的一款中高端语音合成芯片。SYN6288 通过异步串口(UART)通讯方式,接收待合成的文本数据,实现文本到语音(或 TTS 语音)的转换。宇音天下于 2002 年最早研制出国内首款语音合成芯片 0SYN06188。公司最新推出的 SYN6288 语音合成芯片,继承了 0SYN06188 语音芯片的优秀特点:最小 SSOP28L 贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性/价比:除此之外,SYN6288 在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。SYN6288 语音合成效果和智能化程度均得到大幅度提高,是一款真正面向中高端行业应用领域的中文语音合成芯片。
二、应用
协议格式
三、代码实现
SYN_FrameInfo(5, "[v7][m4][t5]欢迎使用TTS语音模块");
该函数的实现代码如下:
//Music:选择背景音乐。0:无背景音乐,1~15:选择背景音乐
void SYN_FrameInfo(uint8_t Music, uint8_t *HZdata)
{
/****************需要发送的文本**********************************/
unsigned char Frame_Info[50];
unsigned char HZ_Length;
unsigned char ecc = 0; //定义校验字节
unsigned int i = 0;
HZ_Length = strlen((char*)HZdata); //需要发送文本的长度
/*****************帧固定配置信息**************************************/
Frame_Info[0] = 0xFD ; //构造帧头FD
Frame_Info[1] = 0x00 ; //构造数据区长度的高字节
Frame_Info[2] = HZ_Length + 3; //构造数据区长度的低字节
Frame_Info[3] = 0x01 ; //构造命令字:合成播放命令
Frame_Info[4] = 0x01 | Music << 4 ; //构造命令参数:背景音乐设定
/*******************校验码计算***************************************/
for(i = 0; i < 5; i++) //依次发送构造好的5个帧头字节
{
ecc = ecc ^ (Frame_Info[i]); //对发送的字节进行异或校验
}
for(i = 0; i < HZ_Length; i++) //依次发送待合成的文本数据
{
ecc = ecc ^ (HZdata[i]); //对发送的字节进行异或校验
}
/*******************发送帧信息***************************************/
memcpy(&Frame_Info[5], HZdata, HZ_Length);
Frame_Info[5 + HZ_Length] = ecc;
USART3_SendData(Frame_Info, 5 + HZ_Length + 1);
}
串口的波特率默认设置成9600。
测试指令:FD 00 0E 01 20 B0 A2 CE B0 20 CA D5 CA D6 B0 C9
语音输入代码:
sprintf(Record_Str, ";%010u;", DataBase[Index]);
sprintf(Speaker_Str, "[v13][m4][t5]卡号是%s", Record_Str);
SYN_FrameInfo(5, Speaker_Str);
参考驱动代码:
SYN6288底层驱动基于STM32Hal资源-CSDN文库