查看: 659|回复: 0

TW-TTS语音合成模块使用手册 V0.1

[复制链接]

27

主题

715

帖子

4629

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4629
发表于 2026-2-3 13:55:01 | 显示全部楼层 |阅读模式
本帖最后由 hcm0915 于 2026-2-3 14:53 编辑

一、TTS概述

语音合成技术(Text To Speech,简称TTS)是一种将文字信息自动转换为自然语音输出的技术,让人们获取信息的方式从“看”转变为“听”,显著提升人机交互的自然性与便捷性。语音合成技术是实现人机语音通信的关键技术之一。

TW-TTS语音合成芯片是一个专为嵌入式系统设计的高性能中文语音合成解决方案。该芯片支持通过标准UART串口接收待合成文本,直接输出高质量语音信号,适用于各类需要语音播报功能的智能设备。模块采用紧凑型封装设计,具备低功耗、高集成度和易用性强等特点,可快速集成到多种终端产品中。

二、TW-TTS模块的功能

TW-TTS语音合成模块在文本处理前端集成了多项智能分析能力,支持对常见标点、多音字、数字、单位等进行自动识别与优化发音,同时提供丰富的控制标记和参数调节功能,确保语音输出的准确性与自然度。

1、文本合成功能

支持任意简体中文汉字(不支持繁体字及生僻字),英文字符按单个字母发音。单次合成文本长度为4K字节。支持 GB2312 和 UTF-8 两种文本编码格式。

2、智能文本分析

自动解析常见标点符号;智能识别多音字、数字、日期、金额、电话号码等特殊格式。单句若无停顿标点且长度超过50字,系统将自动分段处理。

3、文本标记控制

使用 [=拼音+声调x] 格式指定前一位汉字发音(如,空调[=tiao2]、调[=diao4]转)。

4、数字、数值、号码播报标记

使用 [nx] 格式指定后面的阿拉伯数字的发音,直到非阿拉伯字符结束(如,订单号[n1]20250401,金额[n2]1280元,验证码[n3]7391。

5、语音参数调节

支持10级音量([v0]-[v9],v0是没有声音,v9声音最大)、10级语速([s0]-[s9],s0最快,s9最慢)、10级语调([t0]-[t9],t0最低,t9最高),默认值均为中间级别(音量5/语速5/语调5)。

6、控制指令

支持开始合成、停止合成、暂停合成、继续合成 四种基本控制命令,并可通过查询指令实时获取模块的合成播报状态(播放中 / 空闲)。

7、提示音效

内置15种预设提示音效,包含5种提示音(提示音1位TW-TTS的正品验证音效)、5种警示音、5种铃声

8、通信接口

采用标准 UART 串口通信,波特率固定为 9600 bps(1起始位、8数据位、1停止位、无校验)。支持通过串口发送文本或控制指令,模块实时返回指令。

TW-TTS语音合成模块特点
✅ 模块尺寸小巧仅有17*16mm大小,适应更多极限空间
✅ 兼容 GB2312 与 UTF-8 编码,适应不同系统环境
✅ 内置智能文本分析引擎,精准处理多音字、数字、单位及标点
✅ 提供灵活的文本标记语法,支持多音字、数字格式、停顿等精细控制
✅ 支持音量、语速、语调各十级独立调节
✅ 内置15种行业常用提示音效,无需外挂音频文件
✅ 支持合成播报过程的暂停、继续、停止,进行实时控制
✅ 上电自动初始化,状态反馈明确(空闲/播放/错误)
✅ 低功耗设计,工作电压兼容3.6-5.5V供电,适用于电池或USB供电场景
✅ 硬件接口简洁,仅需连接 TX/RX、VCC、GND 即可完成通信与供电
✅ 音频输出为模拟信号(AUDIO OUT),可直接驱动外部功放或扬声器
三、 TW-TTS语音合成模块的引脚说明
image.png

TW_TTS语音合成模块共有六个引脚,分别是:
地线:G,                电源:V(3.6-5.5V),                输入:R,                输出:T
喇叭+:SPK+(红线)                喇叭-:SPK-(黑线)
TTS语音模块可以仅使用 G、V、R 三线连接方案,即可以满足基础的播报和控制功能;
TTS语音模块使用 G、V、R、T 四线连接方案,在满足原基础功能的同时,还具备模实时查询反馈播报状态的功能。
四、TW-TTS模块控制指令和回复指令
1、发送指令

数据帧格式共有10位,分别是:1个起始位、8个数据位、1个停止位(没有校验位)。

数据位
帧头
数据长度
命令字
编码参数
文本
0XFD
0X00 0X(字节长度)
0X01
0X00
TEXT(N字节)
命令字
开始合成
停止合成
暂停合成
继续合成
查询当前状态
0X01
0X02
0X03
0X04
0X21
编码参数
GB2312
UTF-8
0X00
0X04
继续合成
暂停合成
0XFD 0X00 0X01 0X04
0XFD 0X00 0X01 0X03
停止合成
查询播报状态
0XFD 0X00 0X01 0X02
0XFD 0X00 0X01 0X21
音量调整
发送协议头+[v0]-[v9],音量由小到大。默认为中间值[v5]
0xFD 0x00 0x06 0x01 0x01 0x5B 0x76 0x(30-39) 0x5D
语速调整
发送协议头+[s0]-[s9],语速由快到慢,默认为中间值正常语速[s5]
0xFD 0x00 0x06 0x01 0x01 0x5B 0x73 0x(30-39) 0x5D
语调调整
发送协议头+[t0]-[t9],语调由低到高,默认为中间值正常语调[t5]
0xFD 0x00 0x06 0x01 0x01 0x5B 0x74 0x(30-39) 0x5D
提示音(提示音1为天问五幺TTS正品验证)
0xFD 0x00 0x0B 0x01 0x01 0x6D 0x65 0x73 0x73 0x61 0x67 0x65 0x5F 0x[31-35]
警示音
0xFD 0x00 0x09 0x01 0x01 0x61 0x6C 0x65 0x72 0x74 0x5F 0x[31-35]
铃声
0xFD 0x00 0x08 0x01 0x01 0x72 0x69 0x6E 0x67 0x5F 0x[31-35]
2、TW-TTS模块回复指令
收到正确
命令帧
命令帧
命令字错误
命令帧
数据不完整
初始化完成
播放状态
空闲状态
0X41
0X45
0X46
0X4A
0X4E
0X4F
收到命令帧后模块会立即选择三条中一条进行回复
模块上电会自动回复0X4A,播报完成后自动回复0X4F
五、TW-TTS语音合成模块使用USB转串口模块工具测试
1、根据上一章节学习的内容,制作一段命令词

GB2312格式的 “天问五幺,你好”

帧头
数据长度
命令字
编码参数
文本
0XFD
0X00 0X10
0X01
0X00
0XCC 0XEC 0XCE 0XCA 0XCE 0XE5 0XE7 0XDB 0XA3 0XAC 0XC4 0XE3 0XBA 0XC3
UTF-8格式的 “天问五幺,你好”
帧头
数据长度
命令字
编码参数
文本
0XFD
0X00 0X15
0X01
0X04
0XE5 0XA4 0XA9 0XE9 0X97 0XAE 0XE4 0XB6 0X94 0XE5 0XB0 0X8F 0XEF 0XBC 0X8C 0XE4 0XBD 0XA0 0XE5 0XA5 0XBD
2、USB转串口工具与TW-TTS模块连线

首先将TW-TTS语音合成模块通过杜邦线连接到USB转串口工具和喇叭,然后将USB转串口工具连接到电脑的USB端口

image.png

USB转串口工具连线图

将USB转串口工具的5V连接到TTS模块的V,USB转串口工具的G连接到TTS模块的G,USB转串口工具的T连接到TTS模块的R,USB转串口工具的R连接到TTS模块的T,SPK+和SPK-分别连接到喇叭的红线和黑线;

3、使用串口助手进行测试

将串口助手通过USB连接到电脑的USB端口 --> 打开学习资料文件夹 -->各类使用工具文件夹 --> 串口助手软件文件夹 -->打开 scom.exe

image.png

image.png

按照上图中的选项依次选择好,随后将下面的编码复制粘贴到发送区的空白处(如果重新粘贴,由于快捷键占用的原因使用Ctrl+V不能粘贴,可以使用鼠标右键进行粘贴),再打开串口。

FD 00 10 01 00 CC EC CE CA CE E5 E7 DB A3 AC C4 E3 BA C3

image.png

最后点击手动发送--->就可以从喇叭播报的“天问五幺,你好” --->接收区会依次收到TW-TTW模块回复的数据:41(收到正确命令帧) 4F(空闲状态,即播报完毕)

image.png

六、TW-TTS使用串口合成调试工具(暂无)
七、天问Block支持的芯片使用TW-TTS语音合成模块
1、在天问Block上添加TW-TTS的库文件

首先打开天问Block软件,点击右上角的“设备”,并选择您准备使用的主板。

image.png

在左下角找到“扩展”并打开。

image.png

在扩展界面中,在上边栏中选择“执行”找到TW-TTS语音合成模块的扩展库,点击加载。

image.png

点击完成后,点击左上角的返回按钮,有安装过TW-TTS图形库,图形库有更新的时候需要移除再重新加载。

返回主界面后,在左侧代码栏下面找到并选择“扩展”,在扩展库的最下方找到TW-TTS扩展库并点击就可以看到TW-TTS的图形块。

image.png

2、C51如何使用TW-TTS语音合成模块
硬件连接
image.png

无扩展板使用C51系列裸芯片时,需要在芯片的18和19引脚连接一个11.0592M的无源晶振才可以正常使用。

注意:C51串口只有TX(P3.1)和RX(P3.0),如连接TW-TTS模块的同时需要下载程序,需将TW-TTS的RX(P3.0)连接线拔掉才能正常下载程序。

TTS模块5V连接到C51芯片的40引脚(VCC),TTS模块的G连接到C51芯片的20号引脚(GND);

TTS模块的T连接到C51芯片的10号引脚(P3.0),TTS模块的R连接到C51芯片的11号引脚(P3.1);

TTS模块的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态空闲和初始化通过TTS播报;

打开天问串口助手工具查看TW-TTS打印回复状态。

image.png

程序下载

代码完成后点击天问Block右上角的“编译”。

image.png

编译成功会有弹出窗口,生成hex文件并自动放在电脑桌面

image.png

将USB转串口工具的5V连接到C51芯片的40引脚(VCC),USB转串口工具的G连接到C51芯片的20号引脚(GND),USB转串口工具的T连接到C51芯片的10号引脚(P3.0),USB转串口工具的R连接到C51芯片的11号引脚(P3.1),然后将USB转串口工具直接连接到电脑的USB端口;

随后依次电脑上天问Block -->天问Block文件夹 --> tools -->打开 stc-isp.exe

image.png

通过使用STC-ISP软件将程序烧录至单片机;

芯片型号选择:STC89C52RC/LE52RC --> 打开程序文件,选择编译后生成的.hex文件 -->选择对应的USB转串口工具的连接USB端口 -->最后点击“下载/编程”即可完成程序下载(注意C51的18和19引脚需连接11.0592M无源晶振才可以正常下载程序并使用)。

image.png

3、STC8如何使用TW-TTS语音合成模块
硬件连接
image.png
image.png

这里我们使用默认UART3,P5_1和P5_0引脚。STC8的P5_1(TX)引脚接TW_TTS的(R)引脚,STC8的P5_0                (RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,GND引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态和正确帧检查并在串口打印(打开天问串口助手工具查看TW-TTS打印回复状态)
image.png
程序下载

将STC8主板通过数据线连接到电脑的USB端口,选择对应的USB端口,点击“运行”即可完成程序下载。下载完成后STC8会自动重启系统。

image.png

4、TW32F003如何使用TW-TTS语音合成模块
硬件连接
image.png
image.png

这里我们使用串口二,即Serial2;TW32的PA0(TX)引脚接TW_TTS的(R)引脚,TW32的PA1(RX)引脚接TW_TTS的(T)引脚。V引脚接TW-TTS的(V),G引脚接TW-TTS的(V)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能。
实现效果:自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9展示。
image.png
(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态和正确帧检查并在串口打印;

打开天问串口助手工具查看TW-TTS打印回复状态。

image.png

程序下载

将TW32F003主板通过TypeC数据线连接到电脑的USB端口,选择对应的USB串口

点击编译&下载即可下载程序到TW32F003主板上。下载完成后TW32会自动重启系统。

image.png

5、ESP32如何使用TW-TTS语音合成模块
硬件连接
image.png

ESP32C3主板支持任意的GPIO引脚映射。ESP32C3的0(TX)引脚接TW_TTS的(R)引脚,ESP32C3的1(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态和正确帧检查并在串口打印;

打开天问串口助手工具查看TW-TTS打印回复状态打印。

image.png

程序下载

将ESP32C3主板通过TypeC数据线连接到电脑的USB端口,选择对应的USB串口,点击“运行”即可下载程序到ESP32C3主板上。下载完成后ESP32C3会自动重启系统。

image.png

6、ASRPRO如何使用TW-TTS语音合成模块
硬件连接
image.png

ESP32C3主板可用UART如下:Serial PB5和PB6,Serial1 PA2和PA3,Serial2 PA5和PA6;这里我们使用Serial1 PA2和PA3;ASRPRO的PA2(TX)引脚接TW_TTS的(R)引脚,ASRPRO的PA3(RX)引脚接TW_TTS的(T)引脚;5V引脚接TW-TTS的(V)引脚,GND引脚接TW-TTS的(G)引脚;TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

图形块定义串口须知:
image.png

ASRPRO图形块中设置引脚需要将引脚设置为复用的串口功能。选择分类GPIO ->更多 -> 选择复用功能的图形块,并选择复用功能为FORTH FUNCTION。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

定义引脚时候要使用串口。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能。

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态和正确帧检查并在串口打印;

打开天问串口助手工具查看TW-TTS打印回复状态打印。

image.png

程序下载

将ASPRPRO主板通过TypeC数据线连接到电脑的USB端口,选择对应的USB端口,点击“2M/4M编译下载”即可下载程序到ASRPRO主板上。下载完成后ASRPRO会自动重启系统。

image.png

7、Air001如何使用TW-TTS语音合成模块
硬件连接
image.png

Air001主板可用UART如下:Serial1 PA2和PA3,Serial2 PA0和PA1;这里我们使用Serial2 PA0和PA1(使用USB转串口助手工具下载程序需要占用Serial1 PA2和PA3);Air001的PA0(TX)引脚接TW_TTS的(R)引脚,Air001的PA1(RX)引脚接TW_TTS的(T)引脚;VBUS引脚接TW-TTS的(V)引脚,GND引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态和正确帧检查并在串口打印,初始化完成通过TTS播报。
image.png
程序下载

准备工具:USB转串口助手工具(如STC-LINK),合宙Air001开发板,母对母杜邦线

开发板背面底部的TXD和RXD引脚是Serial1的 PA_2和PA_3引脚。这里我们使用STC-LINK,将Air001开发板的3.3V引脚通过杜邦线连接到STC-LINK的3V,RXD连接到STC-LINK的T,TXD连接STC-LINK的R,GND连接到STC-LINK的G,然后将STC-LINK通过USB端口连接到电脑上。

点击天问Block右上角的“更多”,然后点击“烧写Bootloader”随后会弹出一个窗口,此时会显示“串口COMxx”下一行显示连接中...

image.png

image.png

此时按下Air001开发板上的BOOT键,按住稍等1-2秒后松开BOOT键,对话框会进行自动擦除flash并进行烧写。几秒钟后完成Bootloader烧写(绿色就表示烧写成功)。

image.png

关闭cmd编写进程,返回天问Block界面,选择好USB转串口助手(如STC-LINK)的USB端口,点击“编译&下载”即可自动程序下载。

image.png

image.png

八、Keil5支持的芯片使用TW-TTS语音合成模块

Keil5软件下载链接:

Keil官方链接:https://www.keil.com/download/product/

通过网盘分享的文件:Keil5 MDK.zip等4个文件

链接: https://pan.baidu.com/s/1CFitvZ3t-EBk-V5tW4-YNA?pwd=jtiw 提取码: jtiw

1、在Keil5工程中添加TW-TTS库文件

从TW-TTS语音合成模块学习资料依次找到 --> TW-TTS开发库 --> keil5 --> stm32或者C51

image.png

将TW-TTS的库文件(含.c文件和.h文件)复制到需要添加的工程文件夹中

image.png

然后打开MDK工程文件夹中的 .uvprojx文件

image.png

打开Keil5的File Extensions

image.png

点击Group的new增加新文件夹并更改为文件夹名称,随后点击Add Files添加库文件

image.png

选择复制到工程文件中的TTS库文件中的.c文件,点击Add后选择Close关闭窗口

image.png

这时添加的库文件夹和.c的库文件都会显示在工程库中,点击OK

image.png

回到Keil5主界面后点击Options for Target,将库文件添加索引路径

image.png

选择C/C++,点击Include Paths,增加库文件路径

image.png
image.png

找到已复制到工程库中的TTS库文件夹并选择

image.png

确认是否已经添加到路径中,并点击OK

image.png

返回Options for Target后再次点击OK,添加索引路径后,库文件中的.h文件会自动配置到工程文件夹中的.C目录下。

image.png

image.png

这时候已经完成了TW-TTS库文件的导入,需要更改工程的中文显示格式,防止中文显示乱码的情况。

根据Keil的版本不同可以选择UTF-8或者GB2312中文显示格式。这里是只展示GB2312中文编码添加。

image.png

选择Edit中的Configuration后,选择好chinese GB2312编码格式并点击OK。

image.png

返回工程main文件界面后点击左边的库文件目录下拉,就能找到已经导入的TW-TTS库文件。

image.png

2、STM32F103C8如何使用TW-TTS语音合成模块
硬件连接
image.png

STM32的PA9(TX)引脚接TW_TTS的(R)引脚,STM32的PA10(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态并通过TTS播报
image.png

程序编译

main函数文件准备完成后回到Keil5主界面,点击Options for Target,设置hex文件保存路径。

image.png

点击Output->勾选Create HEX File -> Select folder for Objects 选择保存hex文件保存路径,使用范例编译生成的hex文件也会保存这个路径中。

image.png

回到主界面选择Build进行编译

image.png

完成编译

image.png

程序下载

使用ST-LINK进行下载

image.png

STM32的 DCLK 引脚接ST-LINK的SWCLK引脚,STM32的 DIO 引脚接ST-LINK的 SWDIO 引脚。3.3引脚接ST-LINK的3.3引脚,GND引脚接ST-LINK的GND引脚。

image.png

然后在Keil主界面点击 Download 进行程序下载,下载完成以后,需要手动(Reset)复位或者配置软件复位,重新运行程序。

3、C51如何使用TW-TTS语音合成模块
硬件连接
image.png

无扩展板使用C51系列裸芯片时,需要在芯片的18和19引脚连接一个12M的无源晶振才可以正常使用。注意:C51串口只有TX(P3.1)和RX(P3.0),如连接TW-TTS模块的同时需要下载程序,需将TW-TTS的RX(P3.0)连接线拔掉才能正常下载程序

TTS模块5V连接到C51芯片的40引脚(VCC),TTS模块的G连接到C51芯片的20号引脚(GND);TTS模块的T连接到C51芯片的10号引脚(P3.0),TTS模块的R连接到C51芯片的11号引脚(P3.1);TTS模块的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态并通过TTS播报;

使用串口助手查看播报状态。

image.png

程序编译

main函数文件准备完成后回到Keil5主界面,点击Options for Target,设置hex文件保存路径

image.png

点击Output->勾选Create HEX File -> Select folder for Objects 选择保存hex文件保存路径

image.png

回到主界面选择Build进行编译

image.png

软件会自动将编译完成的.hex文件保存到上一步设置的保存路径中。

image.png

程序下载

将USB转串口工具的5V连接到C51芯片的40引脚(VCC),USB转串口工具的G连接到C51芯片的20号引脚(GND),USB转串口工具的T连接到C51芯片的10号引脚(P3.0),USB转串口工具的R连接到C51芯片的11号引脚(P3.1),然后将USB转串口工具直接连接到电脑的USB端口;

通过使用STC-ISP软件将程序烧录至单片机

在学习资料文件夹中一次打开 --> 各类使用工具 --> 串口助手软件 --> 将rar文件解压缩到本地硬盘后打开 stc-isp.exe

image.png

stc-sip软件打开后,在芯片型号选择:STC89C52RC/LE52RC --> 打开程序文件,选择编译完成后生成的.hex文件 -->选择对应的USB穿串口工具的连接USB端口 -->最后点击“下载/编程”即可完成程序下载(注意C51的18和19引脚需连接12M无源晶振才可以正常下载程序并使用).

image.png

九、Mixly米思齐支持的芯片使用TW-TTS语音合成模块

Mixly米思齐软件下载链接:

Mixly官方链接:https://mixly.cn/

通过网盘分享的文件:Mixly2.0-linux-arm64一键更新版.zip等6个文件

链接: https://pan.baidu.com/s/1EbVa4Znr18MpDBhU14qerg?pwd=srpr 提取码: srpr

1、在Mixly米思齐中添加TW-TTS库文件(C++)

打开Mixly软件选择设备 -- > Arduino ESP32C3开发板(C/C++)或者STM32 Arduino-->单击打开

image.png

image.png

进入主界面后选择右上角的设置,再点击“管理库”

image.png

进入管理库界面后,在导入库选项中,点击本地导入

image.png

从TW-TTS语音合成模块学习资料依次找到 --> TW-TTS开发库 --> Mixly米思齐 --> ESP32C3或者STM32 -->选择xml文件并确定

image.png

回到Mixly图形化界面,左边最下方就能找到刚刚导入的TW-TTS语音合成模块的图形块。

image.png

在Mixly米思齐中添加TW-TTS库文件(Mircopython)

建议使用天问Block软件进行库文件导入,打开天问Block软件 --> 设备选择ESP32C3 --> 左下角点击添加扩展,找到TW-TTS库并加载(如已加载请忽略) --> 返回天问Block主界面打开TW-TTS图形块随便拖出一个TW-TTS的图形块到代码框 --> 选择对应的USB端口 --> 最后点击运行

image.png

程序下载完成后,点击字符变成,再点击左边的文件管理,软件会自动获取主板内的库文件。

image.png

在库文件目录中查看是否有TW_TTS文件,如果有表明Mircopython库文件导入成功

image.png

2、ESP32C3如何使用TW-TTS语音合成模块
硬件连接
image.png

ESP32C3主板的UART1支持任意的GPIO。ESP32C3的0(TX)引脚接TW_TTS的(R)引脚,ESP32C3的1(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)

范例代码(C++)
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能。

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态并打印模块返回的状态
image.png
范例代码(MircoPython)
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:播报“天问五幺,你好”,实时查询播报状态并在串口打印。
image.png
程序下载

将ESP32C3主板通过TypeC数据线连接到电脑的USB端口,选择对应的USB串口,点击“上传”即可下载程序到主板上。下载完成后ESP32C3会自动重启系统。

image.png

3、STM32如何使用TW-TTS语音合成模块
硬件连接
image.png

STM32的PA9(TX)引脚接TW_TTS的(R)引脚,STM32的PA10(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实现效果:实时查询播报状态并通过TTS播报;

打开天问串口助手工具查看TW-TTS回复状态打印。

image.png

程序下载

将STM32F103C8主板通过数据线连接到电脑的USB端口,选择对应的USB串口,点击“上传”即可下载程序到主板上。下载完成后STM32会自动重启系统。

image.png

十、Mind+支持的芯片使用TW-TTS语音合成模块

Mind+ 官方链接:https://mindplus.cc/

1、在Mind+中添加TW-TTS库文件

学习资料中提供的范例代码文件中已经含有图形库文件,如果仅使用范例可以不需要事先添加导入用户库。

打开Mind+,找到左下角的“扩展”并点击;

image.png

选择“掌控板”并点击上方的“用户库”进入并添加图形库;

image.png

从TW-TTS语音合成模块学习资料依次找到 --> TW-TTS开发库 --> Mind+ --> ESP32>选择mpext文件并点击打开;

image.png

此时会弹出TW-TTS的图形库,点击即可导入图形库文件;

image.png

在已加载中就能看到TW-TTS的图形库,表示已经导入成功。

image.png

返回Mind+主界面,选择左边的用户库,即可弹出TW-TTS的图形块

image.png

2、ESP32如何使用TW-TTS语音合成模块
硬件连接(掌控板的扩展板)
image.png

扩展板的P16引脚接TW_TTS的(R)引脚,P15(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,GND引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)

硬件连接(集成接口的其他品牌掌控板)
image.png

集成接口的其他品牌掌控板的P16引脚接TW_TTS的(R)引脚,(V)引脚以及(G)引脚,P15(RX)引脚接TW_TTS的(T)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码

学习资料中提供的范例代码文件中已经含有图形库文件,如果仅使用范例可以不需要事先添加导入用户库

(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实时查询播报状态;

实现效果:实时查询播报状态并通过串口打印模块返回的状态。

image.png

程序下载

将ESP32掌控通过TypeC数据线连接到电脑的USB端口,选择对应的USB串口,点击“上传到设备”即可下载程序到主板上。下载完成后掌控会自动重启系统。

image.png

image.png

3、Arduino Uno如何使用TW-TTS语音合成模块
硬件连接
image.png

Uno的1(TX)引脚接TW_TTS的(R)引脚,Uno的0(RX)引脚接TW_TTS的(T)引脚。注意:Uno串口只有1(TX)和0(RX),如连接TW-TTS模块的同时需要下载程序;需将TW-TTS的RX(0)连接线拔掉才能正常下载程序;5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

image.png

(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

image.png

(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

image.png

(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

image.png

(5)实时查询播报状态;

实现效果:实时查询播报状态并通过串口打印状态。

image.png

程序下载

将Uno通过数据线连接到电脑的USB端口,选择对应的USB串口,点击“上传到设备”即可下载程序到主板上。下载完成后Uno会自动重启系统。

image.png

image.png

十一、Arduino IDE支持的芯片使用TW-TTS语音合成模块

Arduino IDE软件下载链接:

Arduino官方链接:https://www.arduino.cc/en/software

1、在Arduino IDE中添加TW-TTS库文件

从TW-TTS语音合成模块学习资料依次找到 --> TW-TTS开发库 -->Arduino IDE --> 将整个TW_TTS文件夹复制,然后找到Arduino IDE的安装路径,点击进入arduino或者Arduino IDE。

image.png

找到libraries文件夹并打开;

image.png

将复制的TW_TTS文件夹粘贴到libraries文件夹目录下;

image.png

image.png

打开Arduino IDE(如果在操作前就打开了Arduino IDE,建议重启软件,有时候需要重启才能识别新库),依次选择并点击 项目 > 导入库>TW_TTS就表明库文件已经导入成功了。

image.png

2、ESP32C3如何使用TW-TTS语音合成模块
硬件连接
image.png

ESP32C3主板支持任意的GPIO引脚映射;这里我们使用TX0和1;ESP32C3的0(TX)引脚接TW_TTS的(R)引脚,ESP32C3的1(RX)引脚接TW_TTS的(T)引脚。5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚。TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
可直接将范例代码复制粘贴到Arduino IDE的代码框中
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好

  1. #include "HardwareSerial.h"
  2. #include "TW_TTS.h"

  3. TW_TTS tts_Serial;

  4. void setup(){

  5. }

  6. void loop(){
  7.     /*
  8.     播放“天问五幺,你好”
  9.     仅使用TW-TTS的G,V,R三个引脚
  10.     G->GND,V->5V,R->0
  11.   */
  12.     Serial.begin(9600,SERIAL_8N1,1,0);
  13.     tts_Serial.begin(Serial);
  14.     tts_Serial.tts_play("天问五幺,你好");

  15. }
复制代码
(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

  1. #include "HardwareSerial.h"
  2. #include "TW_TTS.h"

  3. TW_TTS tts_Serial;

  4. void LLD() {
  5.   tts_Serial.tts_volume(3);
  6.   delay(500);
  7.   tts_Serial.tts_speed(1);
  8.   delay(500);
  9.   tts_Serial.tts_tone(1);
  10.   delay(500);
  11.   tts_Serial.tts_play("已更换声音模式");
  12.   delay(500);
  13. }

  14. void HFU() {
  15.   tts_Serial.tts_volume(9);
  16.   delay(500);
  17.   tts_Serial.tts_speed(9);
  18.   delay(500);
  19.   tts_Serial.tts_tone(9);
  20.   delay(500);
  21.   tts_Serial.tts_play("已更换声音模式");
  22.   delay(500);
  23. }

  24. void setup(){
  25.   /*
  26.     长文本的,播报暂停、继续、停止,音量、速度、音调调节
  27.     仅使用TW-TTS的G,V,R三个引脚
  28.     G->GND,V->5V,R->0
  29.   */
  30.   Serial.begin(9600,SERIAL_8N1,1,0);
  31.   tts_Serial.begin(Serial);
  32.   tts_Serial.tts_play("杭州天问五幺科技 2020 年成立,聚焦单片机开发,自研天问 Block 开发工具,深耕软硬件研发、物联网与人工智能应用开发领域");
  33.   delay(5000);
  34.   tts_Serial.tts_pause();
  35.   delay(3000);
  36.   tts_Serial.tts_resume();
  37.   delay(5000);
  38.   tts_Serial.tts_stop();
  39.   delay(500);
  40.   tts_Serial.tts_play("播放停止");
  41.   delay(2000);
  42.   LLD();
  43.   delay(2000);
  44.   HFU();
  45. }

  46. void loop(){

  47. }
复制代码
(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

  1. #include "HardwareSerial.h"
  2. #include "TW_TTS.h"

  3. TW_TTS tts_Serial;

  4. void setup(){
  5.   /*
  6.     数值、号码、多音字标注等特殊标注
  7.     仅使用TW-TTS的G,V,R三个引脚
  8.     G->GND,V->5V,R->0
  9.   */
  10.   Serial.begin(9600,SERIAL_8N1,1,0);
  11.   tts_Serial.begin(Serial);
  12.   tts_Serial.tts_play("[n2]88888888");
  13.   delay(5000);
  14.   tts_Serial.tts_play("[n1]12345678905");
  15.   delay(5000);
  16.   tts_Serial.tts_play("[n3]1148148488");
  17.   delay(5000);
  18.   tts_Serial.tts_play("这首乐[=yue4]曲太难了,我得[=dei3]乐[=le4]观一点,才能坚持练下去.不然连调[=diao4]都找不到,更别说调[=tiao2]音了。");
  19.   delay(6000);
  20.   tts_Serial.tts_play("他倒[=dao4]了一杯水,想倒[=dao3]下休息,却怕文件被别人倒[=dao2]腾乱了。");
  21.   delay(6000);
  22.   tts_Serial.tts_play("订单号[n1]20250401,金额[n2]1280元,验证码[n3]7391。", 请拨打客服电话[n3]4008889999,重[=chong2]复一遍:[n3]4008889999。");
  23. }

  24. void loop(){

  25. }
复制代码
(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。


  1. #include "HardwareSerial.h"
  2. #include "TW_TTS.h"

  3. TW_TTS tts_Serial;

  4. void setup(){
  5.   /*
  6.     警示音、提示音、铃声、正版测试
  7.     仅使用TW-TTS的G,V,R三个引脚
  8.     G->GND,V->5V,R->0
  9.   */
  10.   Serial.begin(9600,SERIAL_8N1,1,0);
  11.   tts_Serial.begin(Serial);
  12.   tts_Serial.tts_play_msg(1);
  13.   delay(3000);
  14.   tts_Serial.tts_play_alert(1);
  15.   delay(2000);
  16.   tts_Serial.tts_play_ring(1);
  17. }
  18. void loop(){

  19. }
复制代码
(5)实现效果:实时查询播报状态和正确帧检查并在串口打印,初始化完成通过TTS播报
  1. #include "HardwareSerial.h"
  2. #include "TW_TTS.h"
  3. volatile unsigned int state;
  4. TW_TTS tts_Serial;
  5. /*
  6.   检测状态范例
  7.   TW-TTS使用G,V,R,T四线引脚T引脚负责发送芯片当前状态
  8.   G->GND,V->5V,R->0,T->1
  9. */
  10. void setup(){
  11.   state = 0;
  12.   Serial.begin(9600,SERIAL_8N1,1,0);
  13.   tts_Serial.begin(Serial);
  14.   Serial.begin(9600);
  15. }
  16. void loop(){
  17.   while (true) {
  18.     state = (tts_Serial.tts_queryState());
  19.     switch (state) {
  20.      case TTS_STATE_PLAYING:
  21.       Serial.println("播放状态");
  22.       break;
  23.      case TTS_STATE_IDLE:
  24.       Serial.println("空闲状态");
  25.       break;
  26.      case TTS_STATE_INIT:
  27.       Serial.println("初始化状态");
  28.       tts_Serial.tts_play("初始化完成");
  29.       break;
  30.      case TTS_STATE_CHECK:
  31.       Serial.println("正确帧检查");
  32.       break;
  33.      case TTS_STATE_ERROR:
  34.       Serial.println("查询失败/命令错误");
  35.       break;
  36.     }
  37.     delay(500);
  38.   }
  39. }
复制代码

程序下载

将ESP32C3主板通过TypeC数据线连接到电脑的USB端口,选择对应的USB串口,串口处会正常显示ESP32C3 Dev Module。

image.png

如果串口处没有出现ESP32C3 Dev Module,需要点击“选择其他开发版和接口”根据下图所示找到并选择ESP32C3 Dev Module,然后点击“确定”。

image.png

再点击“上传”即可通过编译下载程序到主板上,下载完成后ESP32C3会自动重启系统。

image.png

点击上传后下方会有显示编译-->下载-->下载完成

image.png

image.png

3、Arduino Uno如何使用TW-TTS语音合成模块
硬件连接
image.png

Uno的1(TX)引脚接TW_TTS的(R)引脚,Uno的0(RX)引脚接TW_TTS的(T)引脚;这个串口同样是程序下载的默认串口,程序下载前需要将RX线拔掉再进行下载;5V引脚接TW-TTS的(V)引脚,G引脚接TW-TTS的(G)引脚;TW-TTS的SPK+和SPK- 分别连接喇叭的+(红线)和-(黑线)。

范例代码
可直接将范例代码复制粘贴到Arduino IDE的代码框中
(1)文本播报,天问五幺,你好;

实现效果:单片机上电自动播报:天问五幺,你好。

  1. #include <TW_TTS.h>
  2. // 创建对象
  3. TW_TTS tts;
  4. // 主程序开始
  5. void setup() {
  6.     tts.begin();
  7.     // TTS初始化完成
  8.     tts.tts_play("播放“天问五幺,你好”");
  9. }
  10. void loop() {
  11. }
复制代码
(2)长文本播报,展示暂停、继续、停止功能;展示音量、语速、语调的调节功能;

实现效果:上电自动播报长文本,每隔几秒钟依次展示暂停、继续、音量3语速1和语调1的短文本、音量9语速9语调9的短文本展示。

  1. #include <TW_TTS.h>
  2. // 函数声明
  3. void LLD();
  4. void HFU();
  5. // 创建对象
  6. TW_TTS tts;

  7. // 主程序开始
  8. void setup() {
  9.     tts.begin();
  10.     // TTS初始化完成
  11.     tts.tts_play("杭州天问五幺科技 2020 年成立,聚焦单片机开发,自研天问 Block 开发工具,深耕软硬件研发、物联网与人工智能应用开发领域。");
  12.     delay(5000);
  13.     tts.tts_pause();
  14.     delay(3000);
  15.     tts.tts_resume();
  16.     delay(5000);
  17.     tts.tts_stop();
  18.     delay(500);
  19.     tts.tts_play("播放停止");
  20.     delay(2000);
  21.     LLD();
  22.     delay(2000);
  23.     HFU();
  24. }
  25. void loop() {

  26. }

  27. // 自定义函数
  28. void LLD() {
  29.     tts.tts_tone(3);
  30.     delay(500);
  31.     tts.tts_speed(1);
  32.     delay(500);
  33.     tts.tts_volume(1);
  34.     delay(500);
  35.     tts.tts_play("已更换声音模式");
  36.     delay(500);
  37. }
  38. void HFU() {
  39.     tts.tts_tone(9);
  40.     delay(500);
  41.     tts.tts_speed(9);
  42.     delay(500);
  43.     tts.tts_volume(9);
  44.     delay(500);
  45.     tts.tts_play("已更换声音模式");
  46.     delay(500);
  47. }
复制代码
(3)多文本播报,展示数字、数值、号码、多音字的文本标注以及文本中数字数值标注功能;

实现效果:上电每隔约5秒依次播报数字、数值、号码、多音字。

  1. #include <TW_TTS.h>
  2. // 创建对象
  3. TW_TTS tts;
  4. // 主程序开始
  5. void setup() {
  6.     tts.begin();
  7.     // TTS初始化完成
  8.     tts.tts_play("[n2]88888888");
  9.     delay(5000);
  10.     tts.tts_play("[n1]12345678905");
  11.     delay(5000);
  12.     tts.tts_play("[n3]1148148488");
  13.     delay(5000);
  14.     tts.tts_play("这首乐[=yue4]曲太难了,我得[=dei3]乐[=le4]观一点,才能坚持练下去.不然连调[=diao4]都找不到,更别说调[=tiao2]音了。");
  15.     delay(5000);
  16.     tts.tts_play("他倒[=dao4]了一杯水,想倒[=dao3]下休息,却怕文件被别人倒[=dao2]腾乱了。");
  17.     delay(5000);
  18.     tts.tts_play("订单号[n1]20250401,金额[n2]1280元,验证码[n3]7391。", 请拨打客服电话[n3]4008889999,重[=chong2]复一遍:[n3]4008889999。");
  19. }
  20. void loop() {
  21. }
复制代码
(4)提示音效和正品验证音效;

实现效果:上电依次自动播报提示音1(天问正品验证)、警示音1、铃声1。

  1. #include <TW_TTS.h>
  2. // 创建对象
  3. TW_TTS tts;

  4. // 主程序开始
  5. void setup() {
  6.     tts.begin();
  7.     // TTS初始化完成
  8.     tts.tts_play_msg(1);
  9.     delay(3000);
  10.     tts.tts_play_alert(1);
  11.     delay(2000);
  12.     tts.tts_play_ring(1);
  13. }
  14. void loop() {

  15. }
复制代码
(5)实现效果:实时查询播报状态和正确帧检查并在串口打印,初始化完成通过TTS播报。
  1. #include <TW_TTS.h>
  2. // 动态变量
  3. volatile float state;
  4. // 创建对象
  5. TW_TTS tts;
  6. // 主程序开始
  7. void setup() {
  8.     Serial.begin(9600);
  9.     tts.begin();
  10.     // TTS初始化完成
  11. }
  12. void loop() {
  13.     state = tts.tts_queryState();
  14.     if ((state==TTS_STATE_PLAYING)) {
  15.         Serial.println("播放状态");
  16.     }
  17.     else if ((state==TTS_STATE_IDLE)) {
  18.         Serial.println("空闲状态");
  19.     }
  20.     else if ((state==TTS_STATE_INIT)) {
  21.         Serial.println("初始化状态");
  22.         tts.tts_play("初始化完成");
  23.     }
  24.     else if ((state==TTS_STATE_CHECK)) {
  25.         Serial.println("正确帧检查");
  26.     }
  27.     else if ((state==TTS_STATE_ERROR)) {
  28.         Serial.println("查询失败/命令错误");
  29.     }
  30.     delay(1000);
  31. }
复制代码
程序下载

将Uno主板通过数据线连接到电脑的USB端口,选择对应的USB串口,串口处出会正常显示Arduino Uno

image.png

如果串口处没有出现Arduino Uno,需要点击“选择其他开发版和接口”根据下图所示找到并选择ESP32C3 Dev Module,然后点击“确定”。

image.png

再点击“上传”即可通过编译下载程序到主板上,下载完成后Uno会自动重启系统。

image.png

点击上传后下方会有显示正在编译-->下载-->下载完成。

image.png

十二、调试TW-TTS语音合成模块
(暂无)
十三、常见问题解决问题1:TTS模块没有声音或者声音卡顿

常见原因及处理办法:

1、供电问题:使用电脑的USB供电可能会因为电流电压不足造成播报卡顿或者没有反应,建议上位机使用5V供电的USB电源适配器进行供电或者使用5V供电的充电宝。
2、上电初始化:TTS模块从上电初始化到文本发送需要预留出至少1-2秒钟的延时。
3、发送太频繁:当第一条文本还没有合成播报完成就发送第二条文本,造成程序卡顿或者没有播报第二条的情况,建议使用queryState轮询状态函数,当检测到TTS是空闲状态,再发送文本进行合成播报。
4、TTS模块的音量太低:模块的音量设置为0时是没有声音的,等于进入静音状态。
问题2:中文播报出现很明显的错误

常见原因及处理办法:

1、编码格式问题:TW-TTS支持UTF-8和GB2312格式,检查编码格式以及文本是否有中文生僻字或者乱码等情况。
问题3:语音断续、卡顿、杂音

常见原因及处理办法:

1、波特率不准确:TTS模块支持9600波特率,使用其他波特率发送会造成丢位的情况。
2、供电电压波纹过大:建议供电电压在3.6-5.5V,或者增加滤波电容。
3、V和G连线问题:检查连线是否有虚接或者接反的情况,会导致有杂音的出现。
4、晶振干扰:用手触摸TTS模块上的晶振部分会产生信号干扰,会有明显的杂音,
问题4:文本播报没有声音,使用串口打印却显示正常发送

常见原因及处理办法:

1、连线错误:VCC和GND接反,或者串口uart连接错误,TTS没有实际收到指令
问题5:连续两个相同的字母进行播报时候有播报错误

常见原因及处理办法:

字符发音太接近:可以在相同字母中间添加[wo]或者空格,达到停顿的目的。
问题6:程序和接线编译都没问题,就是下载程序报错

常见原因及处理办法:

1、TTS串口和程序下载串口冲突:如果使用硬件串口需要先查看主控芯片的编程手册或者使用手册,有很多开发板只有1-2个硬件串口并且和程序下载串口是共用的,要避开程序下载的串口防止干扰。或者在进行程序下载前将连接在TTS模块的T引脚的连线拔掉,再进行下载。
问题7:模块默认的音量、语速和音调是多少?

默认音量为5,默认语速为5,默认音调为5。

问题8:图形块调整语调、音量或者语速没有变化

常见原因及处理办法:

1、库文件问题:最初版本的库文件有问题,建议把图形块扩展移除或者删除掉,再重新导入v0.1学习资料文件夹中的开发库,然后重新打开开发软件。
2、代码下载问题:没有成功下载程序或者发出指令有问题,建议同时打开串口助手使用USB-CDC助手工具进行实时查看串口发送信息。
问题9:Mxily米思齐里没有ESP32C3 变成语音为Mircopython的主板

建议使用2.0 rc4的版本,Mixly3.0版本中的主板要少一些。

问题10:Mixly米思齐中Mircopython的库文件要怎么导入到主板中?

Mixly目前不支持Mircopython的库文件直接导入,建议使用天问Block的字符编程模式中,连接电脑与主板,然后将库文件导入,详情请看本手册第九章第2节Mircopython的库文件导入。


十四、附录

TW-TTS语音合成模块学习资料V0.1.zip




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号 )

GMT+8, 2026-3-12 12:14 , Processed in 0.231177 second(s), 26 queries .

Powered by Discuz!

© 2001-2026 Comsenz Inc.

快速回复 返回顶部 返回列表