ZeroTang05/easytts
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.
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 ToolsREADME.en.md
OriginalEasyTTS — 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.