STM32驱动SYN6288语音合成模块
- 简介
- 功能特点
- 通讯方式
- 接线
- 代码
- 结果
- 总结
简介
SYN6288通过异步串口(UART) 通讯方式,接收待合成的文本数据,从而实现文本到语音的转换SYN06188 语音芯片的优秀特点:最小SS0P28L 贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性/价比;除此之外,SY-N6288 在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。SYN6288语音合成效果和智能化程度均得到大幅度提高,是一款真正面向中高端行业应用领域的中文语音合成芯片。SYN6288语音合成芯片的诞生,将推动TTS语音合成技术的行业应用走向更深入、更广泛!
功能特点
●支持GB2312、 GBK、BIG5和UNICODE内码格式的文本;
●清晰、自然、准确的中文语音合成效果;可合成任意的中文文本,支持英文字母的合成;
●具有智能的文本分析处理算法,可正确识别数值、号码、时间日期及常用的度量衡符号;
●具备很强的多音字处理和中文姓氏处理能力;
●支持多种文本控制标记,提升文本处理的正确率;
●每次合成的文本量最多可达200字节;
●支持多种控制命令,包括:合成、停止、暂停合成、继续合成、改变波特率等;
●支持休眠功能,在休眠状态下可降低功耗;支持多种方式查询芯片工作状态;
●支持串行数据通讯接口,支持三种通讯波特率: 9600bps, 19200bps、 38400bps;
●支持16级音量调整;播放文本的前景音量和播放背景音乐的背景音量可分开控制;
●可通过发送控制标记调节词语语速,支持6级词语语速调整;
●芯片内固化有多首和弦音乐、提示音效和针对某些行业领域的常见语音提示音;
●内部集成19首声音提示音,23首和弦提示音,15首背景音乐;
●内置10-bi t推挽式(push-pull)、 可独立供电的功放,进行数模DAC输出;
●芯片各项指标均满足室外严酷环境下的应用;
通讯方式
(1)SYN 6288提供一组全双工的异步串行通讯(UART)接口,实现与微处理器或PC的数据传输。SYN 6288利用TxD和RxD以及GND实现串口通信。其中GND作为地信号。SYN 6288 芯片支持UART接口通讯方式,通过UART接口接收上位机发送的命令和数据,允许发送数据的最大长度为206字节。
(2)命令帧格式
芯片支持以下命令帧格式:“帧头FD +数据区长度+数据区”格式。 (最大206个字节)。上位机发送给SYN6288 芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。
(3)芯片支持的控制命令
(3)语音合成播放命令
接线
STM32 | SYN6288 | OLED |
---|---|---|
3.3V | VCC | VCC |
GNG | GNG | GNG |
B10 | RX | - |
B11 | TX | - |
A0 | - | SCL |
A1 | - | SDA |
A 2 | - | RES |
A3 | - | DC |
A4 | - | CS |
代码
main.c:
#include "sys.h"
#include "delay.h"
#include "stdio.h"
#include "usart.h"
#include "syn6288.h"
#include "oled.h"
int main(void)
{
u8 t=' ';
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
USART3_Init(9600);
OLED_Init();
OLED_ColorTurn(0);//0正常显示,1 反色显示
OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
while(1)
{
SYN_FrameInfo(0, "优信电子");
OLED_Refresh();
delay_ms(1500);
OLED_Clear();
OLED_ShowChinese(18,1,0,16,1);//优
OLED_ShowChinese(36,1,1,16,1);//信
OLED_ShowChinese(54,1,2,16,1);//电
OLED_ShowChinese(72,1,3,16,1);//子
delay_ms(1500);
for(int i = 0;i <3; i++)
{
delay_ms(1500);
}
}
}
结果
总结
注意:
1.用户在连续播放文本内容时,在收到前一帧数据播放完毕的“芯片空闲”字节(即0x4F) 后,最好延时1ms左右再发送下一帧数据。
2.用户在连续播放文本内容时(即播完前一帧数据就马上发送播放下一帧数据),建议用户在逗号,句号,问号,感叹号,分号等标点符号处进行数据分帧。因数据传输需要时间,在标点符号处分帧,连贯性更好,且可避免词组被硬性切断的现象(例如“银行”一词,“银” 在前一帧数据,“行” 在后一帧数据)。