Skip to content
Projects

ZeroTang05/easytts has 149 GitHub stars and 25 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-14 20:33 UTC. Last push 2026-10-20.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

打造最简单的TTS前端集合,最简单的有声小说制作工作流。基于正则规则对小说进行分句,基于RoBERTa对小说中的对话进行说话人识别,从而实现一键式生成多人有声小说。多说话人的语音合成,高质量的有声小说制作。

Developer Tools

README.en.md

Original

EasyTTS — multi-voice audiobook pipeline with speaker diarization

Split a novel into sentences, work out who is speaking in each one, and generate a multi-character audiobook — with a Flask API and a desktop GUI. 中文说明 · Demo video (Bilibili)

Most TTS tools give you one flat voice. EasyTTS turns a text file into a conversation: a RoBERTa-based speaker-identification model labels each line of dialogue, different characters get different voices, and the result is an audiobook that sounds like a cast instead of a robot.

Features

  • Text to speech — converts text into natural-sounding speech
  • Speaker identification — a BERT/RoBERTa model detects who is speaking each line
  • Multi-voice output — assign a different voice per character
  • Text preprocessing — smart sentence splitting, quote detection
  • REST API — the Flask server exposes the whole pipeline
  • Cross-platform GUI — PyQt6 desktop client
  • Novel-to-audiobook workflow — one command from a text file to a finished audio book

Requirements

  • Python <= 3.11
  • CUDA support (GPU acceleration)
  • 8 GB+ RAM

Install

git clone https://github.com/ZeroTang05/easytts.git
cd easytts

Install uv (recommended)

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Then reload your shell (source ~/.bashrc / source ~/.zshrc) and verify with uv --version.

Install dependencies

uv sync

This creates a .venv and installs everything. A plain requirements.txt is included if you prefer conda or venv.

Download the model

Grab the speaker-identification model from Hugging Face and place it in the project root at:

model/chinese-roberta-wwm-ext-large-csi-v1/

Usage

Run the server

uv run python app.py

Serves on http://127.0.0.1:10032 by default.

Run the desktop client

uv run python main.py

Project layout

.
├── app.py              # Flask server
├── main.py             # GUI client entry point
├── src/
│   ├── client/         # TTS client implementation
│   ├── speaker_identification/  # speaker diarization module
│   ├── ui/             # GUI definitions
│   └── utils.py        # helpers
└── cache/              # cache directory

Notes

  • The bundled speaker-identification checkpoint is trained on Chinese text. For other languages, point the module at a matching checkpoint — the pipeline itself is language-agnostic.
  • Early-stage project: expect rough edges, and issues are welcome.

License

No license file is included yet — treat the code as all rights reserved until the author adds one.