语音合成模块 文本转TTS 真人发音 SYN6288
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语音合成模块 文本转TTS 真人发音 SYN6288相关的知识,希望对你有一定的参考价值。
简 介: 测试了一款基于UYN6288的TTS模块。在开始使用ESP32-S对SYN6288进行控制的时候,出现了一些问题。具体原因还需要另外进行测试。
关键词
: SYN6288,TTS,ESP32-S,文本转声音
§01 语音合成模块SYN6288b
在开始的时候为了支持学生制作一款他们设计的作品,其中需要一种语音合成的模块。昨天(2021-05-15)在对 中文TTS文字转语音合成模块合成成品带喇叭 替代SYN6288和XFS5152 模块进行测试,遇到一些不可控制的,无法发声的情况。今天测试 SYN6288 TTS 模块 。
1.模块基本参数
(1)外部接口
▲ 模块组件Speeker, 模块以及外接排线
PIN1 | PIN2 | PIN3 | PIN4 | PIN5 | PIN6 | PIN7 |
---|---|---|---|---|---|---|
SPK- | SPK+ | + 5V | RXD | TXD | GND | BUSY |
-
必须连接接口:
-
电源线
:+5V
,GND
通信线
:RXD
喇叭
:SPK+,SPK-
(2)基本特点
UNV6288是一款高集成度的语音合成模块,可实现中文、英文、数字的语音合成;并且支持用户的命令词或提示音的定制需求。该模块控制方式简单,是通过 TTL 串口发送GBK编码的形式,发送什么就播放什么。串口是 3.3V
电平,可兼容市面上主流 5V
或 3.3V
单片机。
支持任意中文、英文字母、阿拉伯数字的文本合成,并且支持中文、英文字母、数字的混读。模块支持中文 GBK编码集;支持大、小写英文字母。模块采用 UART通讯方式UART串口支持9600bps,发什么报什么,简单易用。支持状态显示用户的控制器能够清楚地了解模块是否正在合成播报,还是空闲状态。
2.模块开发资料:
(1)开发资料下载
-
**TTS** 经济板链接
: https://pan.baidu.com/s/1MxyufjQgyaJZ3181VIXsxA
提取码
:UNVS
(2)基本连接方式
-
典型链接1: 和USB-TTL模块链接。通过电脑串口助手发送数据播放。
5V
—5V
GND—GND 模块的RXD接串口模块的TXD,如果是模块,需要接上喇叭,其他线可不接。
打开串口调试助手,波特率为9600
,如果想要播放你好,直接通过串口助手发送你好即可。 -
典型接线2: 和51单片机连接,通过程序播放。
5V
-5V
GND-GND,模块的RXD接P31(TXD),如果是模块,需要接上喇叭,其他线可不接。
初始化单片机串口,波特率为9600
,利用51单片机串口发送函数发送数据即可播放。
(3)串口通讯参数
-
串口配置:
-
波特率
:9600bps
数据格式
:起始位1,数据8,停止位1
校验
:无
§02 模块测试
从上面的资料说明来看,UNV6288模块的外部接口、通讯命令等都与昨天博文 中文TTS文字转语音合成模块合成成品带喇叭 替代SYN6288和XFS5152 测试相同,所以使用昨天博文相同的测试ESP32-S 模块对于SYN6288进行测试。
1.焊接外部接口
使用自带的100mil的插针焊接到UNV6288模块的接口上。其中为了连接喇叭方便,将对应的2PIN焊接在上面,其他的5PIN韩姐在下面便于插在面包板上完成试验线路的连接。
▲ <font color=red>**UNV6288**</font>外部接口定义
2.连接ESP32-S转接模块
使用 ESP32-S模块转接板设计与实现 中的转接板来与TTS模块的串口相连。
由于ESP32-S工作电源为 3.3V
,而TTS模块工作电压为 5V
。所以他们分别使用USB电源以及外部DH1766提供的+5V电源。
▲ 使用ESP32-S测试模块
给TTS上电之后,它会自动发出开机的和弦声调。
3.测试软件
(1)MicroPython 测试软件
from machine import Pin
import time
from machine import UART
LED1 = Pin(5, Pin.OUT)
LED2 = Pin(18, Pin.OUT)
uart2 = UART(2, baudrate=9600, tx=17, rx=16)
uart2.write(b'<V>4')
uart2.write(b'<S>3')
while True:
uart2.write(b'1234')
time.sleep(5)
当输入“1234”,TTS会发出正确的声音。但改换成其它自负的时候,发出的声音就会出现错误。无法播报汉字。
(2)是否因为UART电平不对?
出现这种情况,是否由于ESP32-S发送的UART的信号为3.3V的信号,无法驱动SYN6288?
但是根据UN6288的说明书,它的串口为3.3V电平,可以兼容5V,3.3V的单片机。
4.直接使用MAX2323转换RS232
使用MAX2323转换模块将RS232端口转换成TTL-UART。
(1)连接TTL-UART模块与TTS
PIN1 | PIN2 | PIN3 | PIN4 | PIN5 |
---|---|---|---|---|
+5V | RXD | TXD | RTS | GND |
连接PIN3与TTS的RXD。
▲ 使用MAX2323转换模块连接<font color=red>**TTS**</font>
(2)测试程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY -- by Dr. ZhuoQing 2021-05-15
#
# Note:
#============================================================
from head import *
import serial
from _ast import Or
from serial.serialutil import SerialException
#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 9600
sport.timeout = 0.05
try:
sport.port = 'COM1'
except:
printf('Set sport port COM1 error. ')
try:
sport.open()
except serial.serialutil.SerialException:
printf('Open sport port COM1 error.')
else:
printf('Open sport port COM1 Ok.')
#------------------------------------------------------------
while True:
sport.write(bytes('欢迎您。', 'gbk'))
time.sleep(3)
#------------------------------------------------------------
# END OF FILE : TEST2.PY
#============================================================
(3)测试结果
实验验证SYN6288可以正确读出数字、汉字、字母等。
§03 测试控制命令
1.音量设置
-
命令格式:
发送””+音量等级 设置音量播报,可设置1-4级音量 -
示例代码:
代码如:printf(“<V>3”); 设置音量为3。系统默认为4,为最高音量。
2.语速设置
-
命令格式:
发送”<S>”+语速值 设置语速,可设置1-3级语速 -
示例代码:
代码如:printf(“<S>3”); 设置语速为3。系统默认为2,为中速。
3.音效播放控制
内置8种音效,编号为0-7。
-
命令控制:
发送””+编号 控制播放内置音效 -
示例代码:
代码如:printf(“<Z>0”); 播报编号为0的音效
4.数字以及相关标点
一般数字按顺序进行播报,如“123”读成“一二三”。
日期、时间、百分号的数字按数字规则,如“2020-02-14”读成“二零二零年二月十四日”、“08:56”读成“八点五十六分”、“25%”读成“百分之二十五”。
注:标准日期格式“2020-02-14”、标准时间格式“12:30”,才会按日期、时间处理,简写和非标准顺序都不会按日期读音处理后读出。
§00 测试结果总结
测试了SYN6288的使用方法。
通过测试验证了在最初使用ESP32-S输出UART控制SYN6288出现的问题,都在ESP32-S的UART输出问题。进一步讨论究竟ESP32-S输出的UART信息究竟在哪些方面与RS232不同,这需要之后进一步通过测试来验证。
▓ 补充说明1:
在博文: ESP32-S的UART2的初始化需要注意的问题 对于前面实验中使用ESP32-S的UART2控制TTS过程中出现的问题进行探索,初步找到了解决问题的方案,但具体原因并不是完全了解。
■ 相关文献链接:
以上是关于语音合成模块 文本转TTS 真人发音 SYN6288的主要内容,如果未能解决你的问题,请参考以下文章
Android TextToSpeech TTS中文文本转语音(语音合成)
Android TextToSpeech TTS中文文本转语音(语音合成)