当前位置:   article > 正文

SYN6288语音播报模块代码(51单片机)_syn6288语音模块51代码

syn6288语音模块51代码

SYN6288语音播报模块代码(51单片机)

SYN6288简介

SYN6288 中文语音合成芯片是北京宇音天下科技有限公司于2010年初推出的一款性/价比更高,效果更自然的一款中高端语音合成芯片。SYN6288通过异步串口(UART)通讯方式,接收待合成的文本数据实现文本到语音(或TTS语音)的转换。
宇音天下于2002年最早研制出国内首款语音合成芯片OSYNO6188。公司最新推出的SYN6288语音合成芯片,继承了OSYNO6188语音芯片的优秀特点:最小SSOP28L贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性/价比;除此之外,SYN6288在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。SYN6288语音合成效果和智能化程度均得到大幅度提高,是一款真正面向中高端行业应用领域的中文语音合成芯片。
SYN6288语音合成芯片的诞生,将推动TTS语音合成技术的行业应用走向更深入、更广泛!
在这里插入图片描述

模块接线

使用了STC12C5A60S2单片机作为MCU,接线引脚为P3.1和P3.2,程序可直接移植到STV89C52/51单片机
在这里插入图片描述

代码

SYN6288.c

#include"MAIN.h"
#include"SYN6288.h"
/*
 * 作者:PrairieOne
 * csdn:PrairieOne
 * 邮箱:prairieone1024@163.com
 * 嵌入式技术交流群:826251093
 */
#define SYN6288_Send_Char(X)     UART1_SendChar(X)
/**************芯片设置命令*********************/
uint8_t SYN_StopCom[] = {0xFD, 0X00, 0X02, 0X02, 0XFD}; //停止合成
uint8_t SYN_SuspendCom[] = {0XFD, 0X00, 0X02, 0X03, 0XFC}; //暂停合成
uint8_t SYN_RecoverCom[] = {0XFD, 0X00, 0X02, 0X04, 0XFB}; //恢复合成
uint8_t SYN_ChackCom[] = {0XFD, 0X00, 0X02, 0X21, 0XDE}; //状态查询
uint8_t SYN_PowerDownCom[] = {0XFD, 0X00, 0X02, 0X88, 0X77}; //进入POWER DOWN 状态命令
//串口1初始化
void UART1_Init(void)
{
	SCON = 0x50;		//8位数据,可变波特率
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
	ES = 1;
	EA = 1;
}

//串口2发送一字节数据
void UART1_SendByte(uint8_t DAT)
{
	SBUF = DAT;
	while(TI == 0);
	TI=0;
}

//串口2发送字符串数据
void UART1_SendString(uint8_t *DAT, uint8_t len)
{
	uint8_t i;
	for(i = 0; i < len; i++)
	{
		UART1_SendByte(*DAT++);
	}
}

//串口1中断
void Uart1_Isr() interrupt 4
{
	if(RI)
	{
		RI=0;
	}

}

//Music:  0:无背景音乐  1~15:选择背景音乐
void SYN_FrameInfo(uint8_t Music, uint8_t *HZdata)
{
	/****************需要发送的文本**********************************/
	uint8_t  Frame_Info[50];
	uint8_t  HZ_Length;
	uint8_t  ecc  = 0;  			//定义校验字节
	uint8_t 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;
	UART1_SendString(Frame_Info, 5 + HZ_Length + 1);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88

SYN6288.h

#ifndef __SYN6288_H__
#define __SYN6288_H__

//void SYN6288_PlayString(uint8_t *String);
void UART1_Init(void);
void SYN_FrameInfo(uint8_t Music, uint8_t *HZdata);
#endif

// 注意事项
// 1. 模块老版本供电3.3V,新版本供电支持3.3/5.0V。
//    老版本为引线外置喇叭的模块
//    新版本为带4个安装孔和板载喇叭的模块。
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// 2. 接线时最精简接法为只接模组RXD线,
//    如果使用UART1与模块通信 单片机P3.1为TXD 接 模块RXD引脚。
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// 3.串口需要提前初始化 波特率9600,程序默认单片机使用UART1与模块通信。
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

遇事不决,可问春风

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/587906
推荐阅读
相关标签
  

闽ICP备14008679号