HS-S77-PL TTS语音合成模块

HS-S77-PL  TTS语音合成模块

1、介绍

TTS 语音合成模块内置语音合成芯片,通过串口接收主控设备(如单片机)的文本数据,经芯片分析处理、调用语音库与算法,转成语音信号,放大后驱动扬声器发声 。将文字信息转换成语音输出。

2、原理图

TTS语音合成模块-HS-S77-PL 原理图 点击查看

3、模块参数

引脚名称

描述

G

GND(电源输入负极)

V

VCC(电源输入正极)

RX

接受引脚

TX

发送引脚

  • 供电电压: 3.3V-5V

  • 连接方式:PH2.0 4P端子线

  • 安装方式:积木固定

4、电路板尺寸

5、Arduino IDE示例程序

注意:程序上传时如果提示库文件报错,请先导入库文件!
Arduino IDE 库文件下载及导入教程:
点击查看

示例程序(UNO开发板):

#include "VTX316.h"

void setup(){
  VTX316_Init(6,5);

}

void loop(){
  Voice_BOBAO("今天天气晴,适合外出");
  delay(5000);

}

6、ESP32 Python 示例(适用于Mixly IDE /米思齐)

开发板选择 Python ESP32 【ESP32 Generic(4MB)】切换为代码模式上传

注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
点击查看

示例程序(ESP32-Python):

from machine import UART, Pin
import time
class VTX316:
    def __init__(self, tx_pin: int, rx_pin: int, baudrate=115200, uart_id=2):
        """初始化 VTX316 语音模块"""
        self.uart = UART(uart_id, baudrate=baudrate, tx=Pin(tx_pin), rx=Pin(rx_pin))
        time.sleep_ms(200)

    def _send_bytes(self, data: bytes):
        """发送原始字节"""
        self.uart.write(data)

    def _send_text(self, text: str):
        """发送字符串文本"""
        self.uart.write(text.encode('gbk'))

    def bobo(self, message: str):
        if not message:
            return
        msg_bytes = message.encode('gbk')
        length = len(msg_bytes)
        frame_head = bytes([0xFD, 0x00, length + 2, 0x01, 0x05])
        self._send_bytes(frame_head)
        time.sleep_ms(2)
        self._send_bytes(msg_bytes)
        time.sleep_ms(length + 50)

    def yinliang(self, level: int):
        if level < 0:
            level = 0
        elif level > 10:
            level = 10
        frame = bytes([
            0xFD, 0x00, 0x06,
            0x01, 0x01,
            0x5B, 0x76,
            0x30 + level,
            0x5D
        ])
        self._send_bytes(frame)
        time.sleep_ms(100)

    def zanting(self):
        cmd = bytes([0xFD, 0x00, 0x01, 0x03])
        self._send_bytes(cmd)

    def huifu(self):
        cmd = bytes([0xFD, 0x00, 0x01, 0x04])
        self._send_bytes(cmd)

    def fayanren(self, idx: int):
        if idx < 1 or idx > 7:
            idx = 1
        cmd_str = f"[m5{idx}]"
        msg_bytes = cmd_str.encode('gbk')
        length = len(msg_bytes)

        frame_head = bytes([0xFD, 0x00, length + 2, 0x01, 0x05])
        self._send_bytes(frame_head)
        time.sleep_ms(2)
        self._send_bytes(msg_bytes)
        time.sleep_ms(50)



voice = VTX316(tx_pin=17, rx_pin=16)

voice.yinliang(6)

voice.bobo('欢迎使用语音合成模块')

7、米思齐 Mixly 示例程序(图形化语言)

示例程序(UNO开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE Arduino库文件下载及导入教程:点击查看

示例程序(ESP32开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
点击查看

8、测试环境搭建

Arduino UNO 测试环境搭建

准备配件:

  • UNO-R3 开发板 *1

  • UNO-R3 EXP 扩展板 *1

  • USB type-c 数据线 *1

  • HS-S77-PL TTS语音合成模块 *1

  • PH2.0 4P双头端子线 *1

电路接线图:

ESP32 测试环境搭建

准备配件:待更新...

电路接线图:待更新...

9、视频教程

Arduino UNO视频教程点击查看

ESP32 Python视频教程:点击查看

10、测试结果

Arduino UNO 测试结果:

上传代码后,发现模块一直循环播放语音。