HS-S77-PL TTS語音合成模組

HS-S77-PL  TTS語音合成模組

1、介紹

2、原理圖

3、模組參數

引腳名稱

描述

G

GND(電源輸入負極)

V

VCC(電源輸入正極)

RX

接受針腳

TX

發送針腳

  • 供電電壓: 3.3V-5V

  • 連接方式:PH2.0 4P端子線

  • 安裝方式:積木固定

4、電路板尺寸

5、添加Arduino庫文件

不會使用庫文件的參考這裡:庫文件安裝使用

庫文件下載:點擊下載

米思齊UNO開發板庫文件安裝步驟(使用代碼前先下載安裝米思齊庫文件):參考連結

6、加入MicroPython環境庫檔案

米思齊ESP32開發板庫檔案下載安裝步驟(使用代碼前先下載安裝米思齊庫檔案):參考連結

7、Arduino IDE範例程式

範例程式(UNO開發板):點擊下載

#include "VTX316.h"

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

}

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

}

範例程式(ESP32開發板):

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('欢迎使用语音合成模块')

8、米思齊 Mixly 示例程式(圖形化語言)

示例程式(UNO開發板):點擊下載

示例程序(ESP32開發板):點擊下載

9、測試環境搭建

Arduino UNO 測試環境搭建

準備配件:

  • UNO-R3 開發板 *1

  • UNO-R3 EXP 開放板 *1

  • USB type-c 資料線 *1

  • HS-S77-PL TTS語音合成模組 *1

  • PH2.0 4P雙頭端子線 *1

電路接線圖:

ESP32 Python 測試環境搭建

10、視頻教學

Arduino UNO視頻教學:按鈕查看

ESP32 Python視頻教學:

11、測試結論

Arduino UNO測試結論:

上傳代碼後,發現模組一直循環播放語音。