syn syn6288语音模块中暂停与恢复命令可以直接加在一起吗

【syn6288】SYN6288语音播放模块(终极版)_牛宝宝文章网【syn6288】SYN6288语音播放模块(终极版)专题:SYN6288语音播放模块制作1、SYN6288语音芯片封装图:2、通信方式:2.1 异步串行通讯(UART)接口SYN 6288 提供一组全双工的异步串行通讯(UART)接口,实现与微处理器或PC 的数据传输。SYN 6288利用TxD 和RxD 以及GND 实现串口通信。其中GND 作为地信号。SYN 6288 芯片支持UART 接口通讯方式,通过UART 接口接收上位机发送的命令和数据,允许发送数据的最大长度为206 字节。2.2 通讯传输字节格式1、初始波特率:9600 bps2、起始位: 13、数据位:84、校验位:无5、停止位:16、流控制:无与51单片机通信时,可以用单片机的串行通信方式1。3、硬件电路搭建:3.1 外接电源组接法备注:SYN 6288共有6组外接电源,每组电源均使用一个47uF和一个0.1uF的电容;如果用户想节省成本,用户可以在每组电源上均使用0.1uF的电容,并对VDDPP、和VDDA两组电源,各加上一47uF的电容。3.2 复位电路及状态指示电路备注:Ready/Busy 此STATUS引脚信号为低电平时说明芯片正在等待接收数据。在系统设计时可以将此引脚接在MCU的中断输入源上,产生一个下降沿中断请求发送数据,以示上位机MCU可以向语音合成芯片发送数据。3.3 SYN6288 的扬声器输出(1) 为了在用户应用中输出声音, SYN6288 内置了推挽式(Push-Pull)的 DAC ,可直接驱动喇叭,进行声音播报。并且SYN6288 内置的DAC 电路模块,使用了VDDPP/VSSPP 供电电源模块,具体电路说明部分请参见(10.1)和(10.2)节,其供电电压值可独立于其它电源组的供电。(见右图)3.4 SYN6288 外接高速晶振3.5 SYN6288 串口通信的参考电路备注:上位机发送数据给SYN6288 时,中间须加有反向器。在实际电路中,我们用三极管做了一个反向器,电路如下图:该电路的原理是:MCU的TXD输出电平为0时,NPN三极管截止,RXD收到的电平为1。MCU的TXD输出电平为1时,NPN三极管导通,RXD收到的电平为0。3.6 Res 引脚(即第5 引脚)的接法3.7 总体电路原理图:4、程序的编写:4.1 命令帧格式:芯片支持以下命令帧格式:“帧头FD + 数据区长度+数据区”格式。(最大206个字节)注意:数据区(含命令字,命令参数,待发送文本,异或校验)的实际长度必须与帧头后定义的数据区长度严格一致,否则芯片会报接收失败。4.2 语音合成播放命令举例:上位机发送给 SYN6288 芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。 其它命令请自行参考SYN6288芯片手册:http://www.niubb.net/SYN6288.aspx4.3 文本程序发送:中文系统电脑的文本编码格式一般为:ANSI即GB2312 编码体系,这个可以用二进制文本编辑器(如BinaryEditor)打开并对照GB2312编码表察看。参考程序://speaker.c#include &reg51.h&#include &string.h&#include &math.h&#include "typedef.h"#include "SPEAKER.h"void delayMs(uint16 xms){uint16 i,j;for (i=0;i&i++)for (j=0;j&123;j++);}//语音模块初始化void SpeakerInit(){/**************串口的初始化*****************/TL1=0XFA; //在11.0592MHZ下,设置波特率9600bps,工作方式2 TH1=0XFA;TMOD=0X20;SCON=0X50; //串口工作方式1,允许接收PCON=0X80;EA=0;REN=1;TI=0; //发生中断标志位置零RI=0; //接收中断标志位置零TR1=1; //定时器1用做波特率发生}//语音播报程序uint8 Speaker(char * pString){uint8 headOfFrame[5];uint8 //定义字符串长度uint8 ecc = 0; //定义校验字节uint16 i = 0;if (pString == NULL) //空字符串return -1;/*****************发送过程**********************/ headOfFrame[0]=0XFD; //构造帧头FDheadOfFrame[1]=0X00; //构造数据区长度的高字节 length = strlen(pString); //需要发送文本的长度 headOfFrame[2]=length+3;//构造数据区长度的低字节 headOfFrame[3]=0X01; //构造命令字:合成播放命令headOfFrame[4]=0X00; //构造命令参数:编码格式为GB2312for(i=0;i&5;i++) //依次发送构造好的5个帧头字节 {ecc=ecc^(headOfFrame[i]); //对发送的字节进行异或校验 SBUF=headOfFrame[i];while (TI==0){;} //等待发送中断标志置位 TI=0; //发送中断标志位清零 }for(i=0;i&i++) //依次发送待合成的文本数据 {ecc=ecc^(*pString);SBUF = (*pString);pString ++;while(TI==0){;}TI=0;}SBUF=while(TI==0){;}TI=0;return 0; //成功返回0}//语音读整数uint8 SpeakerInt(int ida){uint8uint8 negative=0; //负数标志位uint8 intLen=5;char cdat[6]={0};if (ida & 0){ //若为负数取绝对值ida = abs(ida);negative = 1;}cdat [0] = (char)(ida / 10000 ) ;cdat [1] = (char)((ida % 10000) /1000);cdat [2] = (char)((ida % 1000) /100); cdat [3] = (char)((ida % 100) /10); cdat [4] = (char)((ida % 10) /1); for (i=0;i&5;i++){cdat[i] = cdat[i] + 48;}if (cdat[0] == '0'){intLen = 4;if (cdat[1] == '0'){intLen = 3;if (cdat[2] == '0'){intLen = 2;if (cdat[3] == '0')intLen = 1; }}}if (negative == 1){Speaker("零下");delayMs(1000);}Speaker(& cdat[5-intLen]);return 0;}//语音读小数uint8 SpeakerFloat(float fda,uint8 dNum){ uint8 negative=0; //整数部分 //小数部分 //转化后的小数部分if (fda & 0){ //若为负数取绝对值 fda = fabs(fda);negative = 1;}ida = floor(fda);dec = fda -idec = (long) (dec * pow(10,dNum+1)); x999的情况//fda 为传入的小数,dNum为其小数位数//这里多取一位数,用于处理有可能出现Speaker("[n2]");delayMs(200);if (negative == 1){SpeakerInt (-ida);}else{SpeakerInt (ida);}delayMs(3000);Speaker("点");delayMs(1000);Speaker("[n1]");delayMs(200);if (idec%10 &= 5){ //如果是尾数x999的情况 idec += 10;}idec /= 10;SpeakerInt(idec);delayMs(3000);Speaker("[n2]");delayMs(200);return 0;}void main(){SpeakerInit();while(1){Speaker("现在的室外温度是");delayMs(3000);SpeakerInt(-37);delayMs(1500);SpeakerFloat(-32.23,3);delayMs(3000);Speaker("度");delayMs(1000);}}//Speaker.h#ifndef _SPEAKER_H_ #define _SPEAKER_H_extern void SpeakerInit(); extern uint8 Speaker(char * pString); extern uint8 SpeakerInt(int ida);#endif//语音初始化程序 //语音播放程序 //语音读整数//typedef.h #ifndef TYPEDEF_H_ #define TYPEDEF_H_typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32;#endif转载请保留本文连接:分享到:相关文章声明:《【syn6288】SYN6288语音播放模块(终极版)》由“9818繁华落”分享发布,如因用户分享而无意侵犯到您的合法权益,请联系我们删除。TA的分享SYN6288语音合成芯片全开发 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
SYN6288语音合成芯片全开发
08:36:39  
经常搞各种语音芯片,发现SYN6288芯片合成功能很强大,功能很好用,于是趁星期六星期天的时间,搞了一下它的程序,发现这个片子很好用,它的功能如下:SYN6288 中文语音合成芯片是北京宇音天下科技有限公司于 2010 年初推出的一款性价比更高,效果更自然的一款中高端语音合
成芯片。 SYN6288 通过异步串口接收待合成的文本,实现文本到声
音( TTS )的转换。
功 能 特 点:&&
o&&清晰、自然、准确的中文语音合成效果;可合成任意的中文文本,支持英文字母的合成;
o&&具有智能的文本分析处理算法,可正确识别数值、号码、时间日期及常用的度量衡符号;&&
o&&具备很强的多音字处理和中文姓氏处理能力;
o&&支持多种文本控制标记,提升文本处理的正确率;&&
o&&每次合成的文本量最多可达 200 字节;
o&&支持多种控制命令,包括:合成、停止、暂停合成、继续合成、改变波特率等;&&
o&&支持休眠功能,在休眠状态下可降低功耗;支持多种方式查询芯片工作状态;
o&&支持串行数据通讯接口,支持三种通讯波特率: 9600bps , 19200bps 、 38400bps ;
o&&支持 16 级音量调整;播放文本的前景音量和播放背景音乐的背景音量可分开控制;
o&&可通过发送控制标记调节词语语速,支持 6 级词语语速调整;
o&&芯片内固化有多首和弦音乐、提示音效和针对某些行业领域的常见语音提示音;
o&&内部集成 19 首声音提示音, 23 首和弦提示音, 15 首背景音乐;
o&&最终产品提供 SSOP 贴片封装形式;体积业内最小;&&
o&&芯片各项指标均满足室外严酷环境下的应用;&&
应 用 范 围:&&
o&&支持 GB2312 、 GBK 、 BIG5 和 UNICODE 内码格式的文本;&&
o&&车载信息终端语音播报,车载调度,车载导航&&
o&&公交报站器 ,考勤机&&
o&&手机,固定电话&&
o&&排队叫号机,收银收费机&&
o&&自动售货机,信息机, POS 机&&
o&&智能仪器仪表 ,气象预警机,智能变压器&&
o&&智能玩具,智能手表&&
o&&电动自行车&&
o&&语音电子书,彩屏故事书,语音电子词典,语音电子导游&&
o&&短消息播放 ,新闻播放&&
o&&电子地图
本文非新手贴,有图有真相,有兴趣的朋友可以与我联系,提供技术支持和源程序原理图PCB等文件,本人联系方式
电话:& &QQ:
20:54:32  
有偿还是无偿呀&&直说吧
01:03:17  
有偿还是无偿呀&&直说吧
不知道从哪里复制的,语音芯片这种不好,关键还是算法
CellWise周军
12个问题&&&&&&&&1924个浏览
13个问题&&&&&&&&14015个浏览
6个问题&&&&&&&&6057个浏览
每天选一个需要解决的问题,大家一起来帮忙。
授人玫瑰,手有余香
您可能在工作中遇到如下问题,点击下载即可预览专家给出的答案。
问:我从事数码电子产品工作,为什么一开始要用模拟元件?
问:微调器会不会让我的设计变得太复杂,影响用户使用?
问:选择微调器前应该考虑哪些特性?
Powered by}

我要回帖

更多关于 syn6288 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信