简 介: 初步测试了一款非常简单的语音模块。使用ESP32的串口作为控制模块发声的控制器。在测试过程中出现读音错误的情况,具体原因还需要之后进一步进行查找。
关键词
: TTS,ESP32,声音模块
§01 中文文字转语音
最初是为了支持学生制作一款他们的设计作品,需要设计到语音合成的目标板。现在从 TB购买到一款模块 ,准备进行测试。下面就是购买到的中文TTS文字转语音合成模块。
▲ 购买到的中文TTS文字转语音合成模块
1.开发资料
开发资料:
百度网盘下载了解
:
https://pan.baidu.com/s/1z2nrEr-MvIl9ZdkbGG1ZUQ
提取码
:pa29
2.板上主要芯片
在语音模块内部的电路板上,主要有三个集成芯片。
集成芯片信息:
MX25L6445
:
MX25L6446 3V,64Mb 串口Flash
XS8002D
:
XS8002D 是一款带有自关断的音频IC。(
已经停产)
SSOP20
:表面打磨的芯片,型号不详。估计是一颗MCU。
▲ 语音模块内聚结构以及外部接口
3.接口功能定义
【表1-1 对外接口颜色功能】
引线 | PIN1 | PIN2 | PIN3 | PIN4 |
---|
颜色 | 红 | 黄 | 白 | 黑 |
功能 | +5V | RX | TX | GND |
▲ 内部对外接口连线的颜色
为了便于对TTS模块进行测试,将它原来的接口焊接成PIN100mil的接口。它的定义如下图所示。
▲ 外部新的接口功能定义
▲ TTS模块功能定义
连接TTS与控制器的UART之间的方法如下图所示:
▲ TTS模块与控制串口的连接方式
串口通信协议:
波特率
:9600bps
起始位
:1bit
数据位
:8bits
停止位
:1bits
校验
:无
§02 测试模块功能
1.UART接口平台
使用 ESP32-S 转接板 的接口来调试TTS模块。在PIN19,20分别定义了ESP32的UART2(PIN19-RXD2, PIN20-TXD2)。下面通过基础实验来测试ESP32-PIN19,20的基本功能。
▲ 实验ESP32测试版
(1)ESP32-UART 管脚
根据 MicroPython 中ESP32 UART模块 ,ESP32模块对应的GPIO管脚表格:
▲ ESP32 UART端口
使用UART2 对于 TTS模块进行控制。
(2)测试TX2程序
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)
while True:
LED1.off()
LED2.on()
time.sleep_ms(25)
LED1.on()
LED2.off()
time.sleep_ms(25)
uart2.write(b'U')
▲ 测量ESP32-S模块PIN20,GPIO17, TX2波形
2.连接TTS
将ESP-32S转移模块的PIN20(UART2-TXD)与TTS模块的TXD。
▲ 连接TTS模块与ESP32-S
对于TTS模块上电+5V时,它会输出一个三音和弦,然后处在静态,静态电流: 3.3mA
。
3.测试语言输出
from machine import Pin
import time
from machine import UART
uart2 = UART(2, baudrate=9600, tx=17, rx=16)
while True:
uart2.write(b'hello')
time.sleep(2)
TTS则分别念出 “HELLO”。
测试错误: 但是输出其它字符串的时候出现发生错误。
※ 测试总结 ※
初步测试了TTS的模块。它发出的声音比较生硬。对于输出汉字以及其它信息还存在一定问题。现在还不知道具体的错误原因是什么。
▓ 补充说明
在 语音合成模块 文本转TTS 真人发音 SYN6288 进行了补充实验,验证了直接使用MAX2323将PC的RS232转换成TTL-UART,可以正确的控制语音模块了。这说明使用ESP-32-S模块发送TTL-UART出现与设置不同的情况。具体原因后面需要通过进一步的实验进行验证。
▓ 补充说明1:
在博文: ESP32-S的UART2的初始化需要注意的问题 对于前面实验中使用ESP32-S的UART2控制TTS过程中出现的问题进行探索,初步找到了解决问题的方案,但具体原因并不是完全了解。
■ 相关文献链接: