把单片机和语音模块用杜邦线母座焊接到洞洞板上,我用串口模式驱动模块,所以只接了RX TX,对应单片机的TX RX, 还有电源部分按图3接。模块部分按图3,添加电阻,con1-3按图接上下拉。
在网上的文字转语音网站很多,我是在在线免费文字转语音 - TTSMaker官网 | 马克配音这里做的声音文件。
输入你想转语音的文字,点开始转换,点下载即可。它有点BUG,就是下载的文件可能是你上一条或下一条的文件。哈哈 。
最后把你下载的声音文件通过USB数据线拷贝到模块上。
语音模块的串口模式,采用全双工串口通信; 波特率为 9600,数据位:8 ,停止位 1 位,检验位 N。
它的命令格式是:起始码-指令类型-数据长度(n)-数据 1-数据 n-和检验(SM)
※ 指令码 :固定为 AA。
※ 指令类型 : 用来区分指令类型。
※ 数据长度:指令中的数据的字节数。
※ 数据 :指令中的相关数据,当数据长度为 1 时,表示只有 CMD,没有数据位。
※ 和检验 :为之前所有字节之和的低 8 位,即起始码到数据相加后取低 8 位。
※ 数据格式:发送的数据或命令,高 8 位数据在前,低 8 位在后。
指定曲目(07)
指令:AA 07 02 曲目高 曲目低 SM
返回:无
例如: AA 07 02 00 08 BB 指定播放当前盘符第 8 首,曲目数从 1-65535 曲目序号是由存储顺序决定。
曲目名称: 必须按照 5 位数字进行命名。比如:00001.mp3, 00002.mp3.
这个模块硬件设置好后,上电基本上不需要怎么初始化,只做过延时200毫秒即可。
附件有说明手册。
先键个keil工程:编写一个有串口通讯的基本程序,写好串口接收字符串函数,发送字符串函数。
然后写发送模块命令的函数
首先看它的命令格式:
比如:我要播放第00008首音频,那么需要发送的命令就是:AA 07 02 00 08 BB
用// 播放曲目 Num 是第num首曲目 比如:A 就写‘A’
void Play(unsigned char * str) // 图3
函数直接发送即可。
我把下面文字生成了语音:
你好,我是 DY-SV17F 语音模块,接下来我会把你的文字转换成语音播报出来!
看看效果吧!