语音合成模块 文本转TTS 真人发音 SYN6288

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语音合成模块 文本转TTS 真人发音 SYN6288相关的知识,希望对你有一定的参考价值。

简 介: 测试了一款基于UYN6288的TTS模块。在开始使用ESP32-S对SYN6288进行控制的时候,出现了一些问题。具体原因还需要另外进行测试。

关键词 SYN6288TTSESP32-S文本转声音

 

§01 音合成模块SYN6288b


  开始的时候为了支持学生制作一款他们设计的作品,其中需要一种语音合成的模块。昨天(2021-05-15)在对 中文TTS文字转语音合成模块合成成品带喇叭 替代SYN6288和XFS5152 模块进行测试,遇到一些不可控制的,无法发声的情况。今天测试 SYN6288 TTS 模块

1.模块基本参数

(1)外部接口

▲ 模块组件Speeker, 模块以及外接排线

▲ 模块组件Speeker, 模块以及外接排线

【表1 模块外部接口】
PIN1PIN2PIN3PIN4PIN5PIN6PIN7
SPK-SPK++ 5VRXDTXDGNDBUSY
必须连接接口:
电源线:+ 5V ,GND
通信线:RXD
喇叭:SPK+,SPK-

(2)基本特点

  UNV6288是一款高集成度的语音合成模块,可实现中文、英文、数字的语音合成;并且支持用户的命令词或提示音的定制需求。该模块控制方式简单,是通过 TTL 串口发送GBK编码的形式,发送什么就播放什么。串口是 3.3V 电平,可兼容市面上主流 5V3.3V 单片机。

  支持任意中文、英文字母、阿拉伯数字的文本合成,并且支持中文、英文字母、数字的混读。模块支持中文 GBK编码集;支持大、小写英文字母。模块采用 UART通讯方式UART串口支持9600bps,发什么报什么,简单易用。支持状态显示用户的控制器能够清楚地了解模块是否正在合成播报,还是空闲状态。

2.模块开发资料:

(1)开发资料下载

(2)基本连接方式

  • 典型链接1: 和USB-TTL模块链接。通过电脑串口助手发送数据播放。 5V5V 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韩姐在下面便于插在面包板上完成试验线路的连接。

▲ **UNV6288**外部接口定义

▲ <font color=red>**UNV6288**</font>外部接口定义

2.连接ESP32-S转接模块

  使用 ESP32-S模块转接板设计与实现 中的转接板来与TTS模块的串口相连。

  由于ESP32-S工作电源为 3.3V ,而TTS模块工作电压为 5V 。所以他们分别使用USB电源以及外部DH1766提供的+5V电源。

▲ 使用ESP32-S测试模块

▲ 使用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。

【表2 TTL-UART转换模块接口】

(1)连接TTL-UART模块与TTS

PIN1PIN2PIN3PIN4PIN5
+5VRXDTXDRTSGND

  连接PIN3与TTS的RXD。

▲ 使用MAX2323转换模块连接**TTS**

▲ 使用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中文文本转语音(语音合成)

Azure Neural TTS能让AI语音自然逼真到什么程度?

chrome文字转语音(tts)

chrome文字转语音(tts)

chrome文字转语音(tts)