SYN6288语音播放模块(终极版)
- 格式:doc
- 大小:331.00 KB
- 文档页数:11
基于STC15单片机和SYN6288的机床语音报警系统设计∗常国权;彭云峰【摘要】为了提高机床的易操作性,降低机床的损坏率,基于STC15F2K24S2高速单片机和SYN6288语音合成芯片设计出了一种具有较高性价比的机床语音报警系统,给出了该系统的硬件和软件设计的具体方案,并论述了硬件和软件设计中的要点。
该系统可以实时地向操作人员报告机床当前的状态信息或错误信息,系统的人机交互界面友好,操作方便灵活,可以有效地提高工作效率。
%In order to improve the operability of machine tool to reduce the damage rate of machine tool,a kind of ma-chine tool voice alarm system with high cost-effective based on high-speed STC15F2K24S2 MCU and SYN6288 speech synthesis chip is designed,not only the specific scheme of the hardware and software design is given,but also the key points of the hardware and software design are discussed. The system can timely report the machine tool’s current state or error message to the operators. It has friendly interface,convenient and flexible operation,and high work efficiency.【期刊名称】《电子器件》【年(卷),期】2015(000)003【总页数】5页(P616-620)【关键词】STC15F2K24S2;SYN6288;机床;语音报警系统;Android;蓝牙串口模块【作者】常国权;彭云峰【作者单位】安阳工学院计算机科学与信息工程学院,河南安阳455000;安阳工学院计算机科学与信息工程学院,河南安阳455000【正文语种】中文【中图分类】TP368.2项目来源:工信部科技重大专项[2012-036]机床作为金属加工最基础的设备之一,已广泛应用于工农业生产的各个方面[1]。
羽毛球无线计分器系统的设计与实现摘要:针对广大爱好羽毛球运动的人群需求,设计了一款基于无线网络的羽毛球计分器系统并开发了手机APP,通过手机APP可实现每局比赛的计分功能,同时可将计分的结果进行点阵液晶和语音播报的方式呈现,极大的减轻了裁判计分的压力,同时也可以使计分的效率提高。
关键词:手势识别传感器;WIFI网络;语音播报;计分器;手机APP中图分类号: 文献标识码:文章编号:引言随着人们参与体育活动的热情日趋高涨,羽毛球成为人们最常选择的运动项目之一。
在进行专业的羽毛球大赛时,一般会使用羽毛球比赛专用的记分设备,这种设备价格较为昂贵,不适用于学校和中小型的羽毛球比赛,而学校举办的羽毛球比赛一般由裁判或其他工作人员使用翻牌式羽毛球计分器同时配合羽毛球计分表一同使用,这种方式容易造成误差,同时也使观众不能及时了解到比赛实际状况。
基于上述情况,设计了一款基于羽毛球比赛的无线计分器,面向羽毛球爱好者及裁判设计,用手机就可以记录每局比赛的比分并通过显示屏及语音播报的方法实时显示及广播。
1总体设计羽毛球无线计分器系统由点阵液晶屏、单片机、手势识别传感器、语音播报模块和WIFI模块组成。
整体结构狂徒如图1.1所示。
系统采用中国移动Onenet 云平台作为服务器,并使用MQTT协议进行数据的接收和发送。
系统通过WIFI的方式通信,将手机APP记录的比赛分数,通过服务器转发至无线计分器中,点阵屏用来显示比赛分数,同时语音播报模块播报当前的比分。
使用APP软件进行计分不仅减少了分数误差的出现,还极大减轻了裁判员的工作压力,简化了计分的流程,提高比赛计分效率,实现精确快速的计分,非常适合用于中小型羽毛球比赛。
图1.1 无线羽毛球计分器整体架构图2硬件系统设计无线计分器系统的硬件设计主要集中在WIFI模块与Onenet服务器之间的数据通信及比赛分数的呈现。
其中比赛分数的呈现方式有两种:语音播报和液晶显示。
同时比赛分数的记录也采用了两种方式:一种是手机APP方式记录,还可以通过手势识别传感器记录比赛的分数。
基于 SYN6288的车速语音播报系统设计
郭克友;陈雪洁;纪彬
【期刊名称】《实验技术与管理》
【年(卷),期】2014(000)001
【摘要】详细介绍了一种基于SYN6288实时语音播报、带有LCD液晶显示功能的车速播报系统。
系统采用霍尔传感器对车速进行采集,通过STC89C52RC单片机进行控制,LCD1602显示车速,采用SYN6288中文语音合成芯片将车速合成为语音,最后通过功率放大器将语音进行放大,并通过喇叭将语音输出。
该系统运用在实验室测试车辆上,实现了车速的实时播报功能。
测试结果表明:系统运行稳定,播报效果良好。
【总页数】4页(P87-90)
【作者】郭克友;陈雪洁;纪彬
【作者单位】北京工商大学材料与机械工程学院,北京 100048;北京工商大学材料与机械工程学院,北京 100048;北京工商大学材料与机械工程学院,北京100048
【正文语种】中文
【中图分类】TP391.42
【相关文献】
1.基于STC15单片机和SYN6288的机床语音报警系统设计∗ [J], 常国权;彭云峰
2.基于RFID技术的智能语音播报系统设计 [J], 王琰
3.基于CAN总线的登高平台消防车智能语音播报系统设计 [J], 黄敏;仝瑶瑶;张勇;王高菲
4.基于AI的语音播报系统设计及在电台中的应用 [J], 张永书;孔勇;谢军
5.基于API平台的电视台智能语音播报系统设计与实现 [J], 罗晓群
因版权原因,仅展示原文概要,查看原文内容请购买。
SYN6288的产品功能概述SYN6288的产品功能概述 1 SYN6288语音合成芯片—相关材料: (1)SYN6288语音合成芯片--产品应用范围: (1)SYN6288语音合成芯片--功能特点: (2)SYN6288语音合成芯片—相关材料:SYN6288中文语音合成芯片是北京宇音天下科技有限公司于2010年初推出的一款性/价比更高,效果更自然的一款中高端语音合成芯片。
SYN6288通过异步串口(UART)通讯方式,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换。
宇音天下于2002年最早研制出国内首款语音合成芯片OSYNO6188。
公司最新推出的SYN6288语音合成芯片,继承了OSYNO6188语音芯片的优秀特点:最小SSOP28L贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性/价比;除此之外,SYN6288在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。
SYN6288语音合成效果和智能化程度均得到大幅度提高,是一款真正面向中高端行业应用领域的中文语音合成芯片。
SYN6288语音合成芯片的诞生,将推动TTS语音合成技术的行业应用走向更深入、更广泛!SYN6288语音合成芯片--产品应用范围:◆车载信息终端语音播报,车载调度,车载导航◆公交报站器,考勤机◆手机,固定电话◆排队叫号机,收银收费机◆自动售货机,信息机,POS机◆智能仪器仪表,气象预警机,智能变压器◆智能玩具,智能手表◆电动自行车,旋转广告灯箱◆语音电子书,彩屏故事书,语音电子词典,语音电子导游◆短消息播放,新闻播放◆电子地图SYN6288语音合成芯片--功能特点:●支持GB2312、GBK、BIG5和UNICODE内码格式的文本;●清晰、自然、准确的中文语音合成效果;可合成任意的中文文本,支持英文字母的合成;●具有智能的文本分析处理算法,可正确识别数值、号码、时间日期及常用的度量衡符号;●具备很强的多音字处理和中文姓氏处理能力;●支持多种文本控制标记,提升文本处理的正确率;●每次合成的文本量最多可达 200 字节;●支持多种控制命令,包括:合成、停止、暂停合成、继续合成、改变波特率等;●支持休眠功能,在休眠状态下可降低功耗;支持多种方式查询芯片工作状态;●支持串行数据通讯接口,支持三种通讯波特率:9600bps,19200bps、38400bps;●支持 16 级音量调整;播放文本的前景音量和播放背景音乐的背景音量可分开控制;●可通过发送控制标记调节词语语速,支持 6 级词语语速调整;●芯片内固化有多首和弦音乐、提示音效和针对某些行业领域的常见语音提示音;●内部集成19首声音提示音,23首和弦提示音,15首背景音乐;●最终产品提供SSOP贴片封装形式;体积业内最小;●芯片各项指标均满足室外严酷环境下的应用;附件:SYN6288语音合成芯片-数据手册V1.0了解本产品的详细情况请登陆:/SYN6288.aspx。
SYN6288语音播放模块制作1、SYN6288语音芯片封装图:2、通信方式:异步串行通讯(UART)接口SYN 6288 提供一组全双工的异步串行通讯(UART)接口,实现与微处理器或PC 的数据传输。
SYN 6288利用TxD 和RxD 以及GND 实现串口通信。
其中GND 作为地信号。
SYN 6288 芯片支持UART 接口通讯方式,通过UART 接口接收上位机发送的命令和数据,允许发送数据的最大长度为206 字节。
通讯传输字节格式1、初始波特率:9600 bps2、起始位: 13、数据位:84、校验位:无5、停止位:16、流控制:无与51单片机通信时,可以用单片机的串行通信方式1。
3、硬件电路搭建:外接电源组接法备注:SYN 6288共有6组外接电源,每组电源均使用一个47uF和一个的电容;如果用户想节省成本,用户可以在每组电源上均使用的电容,并对VDDPP、和VDDA两组电源,各加上一47uF的电容。
复位电路及状态指示电路备注:Ready/Busy 此STATUS引脚信号为低电平时说明芯片正在等待接收数据。
在系统设计时可以将此引脚接在MCU的中断输入源上,产生一个下降沿中断请求发送数据,以示上位机MCU可以向语音合成芯片发送数据。
SYN6288 的扬声器输出(1)为了在用户应用中输出声音, SYN6288 内置了推挽式(Push-Pull)的DAC ,可直接驱动喇叭,进行声音播报。
并且SYN6288 内置的DAC 电路模块,使用了VDDPP/VSSPP 供电电源模块,具体电路说明部分请参见和节,其供电电压值可独立于其它电源组的供电。
(见右图)SYN6288 外接高速晶振SYN6288 串口通信的参考电路备注:上位机发送数据给SYN6288 时,中间须加有反向器。
在实际电路中,我们用三极管做了一个反向器,电路如下图:该电路的原理是:MCU的TXD输出电平为0时,NPN三极管截止,RXD收到的电平为1。
MCU的TXD输出电平为1时,NPN三极管导通,RXD收到的电平为0。
Res 引脚(即第5 引脚)的接法总体电路原理图:4、程序的编写:命令帧格式:芯片支持以下命令帧格式:“帧头FD + 数据区长度+数据区”格式。
(最大206个字节)注意:数据区(含命令字,命令参数,待发送文本,异或校验)的实际长度必须与帧头后定义的数据区长度严格一致,否则芯片会报接收失败。
语音合成播放命令举例:上位机发送给SYN6288 芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。
其它命令请自行参考SYN6288芯片手册:文本程序发送:中文系统电脑的文本编码格式一般为:ANSI即GB2312 编码体系,这个可以用二进制文本编辑器(如BinaryEditor)打开并对照GB2312编码表察看。
参考程序://#include <>#include <>#include <>#include ""#include ""void delayMs(uint16 xms){uint16 i,j;for (i=0;i<xms;i++)for (j=0;j<123;j++);}//语音模块初始化void SpeakerInit(){/**************串口的初始化*****************/ TL1=0XFA; //在下,设置波特率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 length; //定义字符串长度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<length;i++) //依次发送待合成的文本数据{ecc=ecc^(*pString);SBUF = (*pString);pString ++;while(TI==0){;}TI=0;}SBUF=ecc;while(TI==0){;}TI=0;return 0; //成功返回0}//语音读整数uint8 SpeakerInt(int ida){uint8 i;uint8 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){ //fda 为传入的小数,dNum为其小数位数uint8 negative=0;int ida; //整数部分float dec; //小数部分long idec; //转化后的小数部分if (fda < 0){ //若为负数取绝对值fda = fabs(fda);negative = 1;}ida = floor(fda);dec = fda - ida;idec = (long) (dec * pow(10,dNum+1)); //这里多取一位数,用于处理有可能出现x999的情况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,3);delayMs(3000);Speaker("度");delayMs(1000);}}//#ifndef _SPEAKER_H_#define _SPEAKER_H_extern void SpeakerInit(); //语音初始化程序extern uint8 Speaker(char * pString); //语音播放程序extern uint8 SpeakerInt(int ida); //语音读整数#endif//#ifndef TYPEDEF_H_#define TYPEDEF_H_typedef unsigned char uint8;typedef unsigned int uint16;typedef unsigned long uint32;#endif。