语音芯片之字符串转语音

芯片选型

  不难发现某宝搜索出来的语音芯片都是由方案公司推出来的,需要事先给到播报的语音内容,由他们进行一次烧录到语音芯片,不能随意更改,比较麻烦。 

  简单粗暴,这里直接推荐一款 SYN6288中文语音合成芯片简单好用,是博主最近亲身体验出来的

附上参考代码

这里使用的是STC8位单片机写的代码,并且已验证可直接使用的
//主函数
//******************************************************
void main()
{
	UartInit();//串口初始化

		while(1)
		{	
				//m[0~16]:0背景音乐为静音,16背景音乐音量最大
				//v[0~16]:0朗读音量为静音,16朗读音量最大
				//t[0~5]:0朗读语速最慢,5朗读语速最快
				SYN_FrameInfo(2,"[m4][v16][t5][b0]当你走近,请你细听,那颤抖[2]的叶是我等待[3]的热情,\
												而当你终于无视[3]的走过,在你[2]身后落了一地的,朋友啊,那不是[2]花瓣,\
												是我凋零[2]的心");
												
				SYN_FrameInfo(0,"[m4][v16][t5][b0]蟑螂药,老鼠药,臭脚克星");//博主专业摆摊20年的广告宣传语
				//这里实现语音芯片播放功能
				
		}
}


//语音芯片功能实现函数
//***********************************************************************
#include "syn6288.h"

sbit busy = P3^5;	

//Music:  0:无背景音乐  1~15:选择背景音乐
void SYN_FrameInfo(uchar Music, uchar *HZdata)
{	
		/****************需要发送的文本**********************************/
		uchar idata Frame_Info[200];
		uchar  HZ_Length;
		uchar  ecc  = 0;  							//定义校验字节
		uint 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;
		UART_SendStringL(Frame_Info, 5 + HZ_Length + 1);
		
		delay_ms(5);
		while(busy);	//等待合成结束
		delay_ms(5);		
}


工程及资料点击这里

看完请留个足迹,点个赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值