A Fast TTS toolkit
Project description
FlashTTS
基于 SparkTTS、OrpheusTTS、MegaTTS 3 等先进模型,FlashTTS 提供高质量的中文语音合成与零样本声音克隆服务。借助简洁直观的 Web 界面,您可以快速生成自然逼真的人声,满足配音、阅读、无障碍、虚拟角色等多元场景需求。
如果 FlashTTS 对你有帮助,欢迎留下一个 ⭐ Star!
✨ 功能亮点
| 功能 | 说明 | |
|---|---|---|
| 🚀 | 多后端推理加速 | 支持 vllm、sglang、llama‑cpp、mlx‑lm、tensorrt-llm 等多种高性能推理引擎 |
| 🎯 | 高并发 | 动态批处理与异步队列,轻松应对大流量请求 |
| 🎛️ | 全参数控制 | 可调节音调、语速、温度、情感标签等 |
| 📱 | 轻量部署 | 基于 FastAPI,一条命令即可启动;最小依赖 |
| 🔊 | 长文本合成 | 支持超长文本,保持连续音色一致 |
| 🔄 | 流式 TTS | 边生成边播放,降低等待,提高交互体验 |
| 🎭 | 多角色对话 | 同文本多角色合成,适合剧本配音 |
| 🎨 | 现代化前端 | 适配Web端 |
🖼️ 前端示例
https://github.com/user-attachments/assets/1bd9d586-fac7-4016-b955-5a58d8fb9d7e
🔈 语音演示
下列 Demo 展示了 FlashTTS 在不同模型与角色上的克隆效果。
SparkTTS 模型
|
Donald Trump en |
Donald Trump zh |
|
哪吒 |
李靖 |
|
余承东 |
徐志胜 |
MegaTTS 3 模型
|
蔡徐坤 |
太乙真人 |
OrpheusTTS (zh) 模型
|
长乐 |
白芷 |
快速开始
建议在 python 3.8 - 3.12 环境中使用 pip 安装 flashtts:
pip install flashtts
详细安装步骤,请参考:installation.md
本地推理:
flashtts infer \
-i "你好,欢迎使用语音合成。" \
-o output.wav \
-m ./models/your_model \
-b vllm \
[其他可选参数]
详细使用说明,请参考:quick_start.md
部署方式:
flashtts serve \
--model_path Spark-TTS-0.5B \
--backend vllm \
--role_dir data/roles \
--llm_device cuda \
--tokenizer_device cuda \
--detokenizer_device cuda \
--wav2vec_attn_implementation sdpa \
--llm_attn_implementation sdpa \
--torch_dtype "bfloat16" \
--max_length 32768 \
--llm_gpu_memory_utilization 0.6 \
--fix_voice \ # 启动后将固定住spark-tts中内置音色(female和male)
--host 0.0.0.0 \
--port 8000
web地址:http://localhost:8000
接口文档地址:http://localhost:8000/docs
详细部署说明,请参考:server.md
⚡ 推理速度
测试环境:A800 GPU · 模型:Spark-TTS‑0.5B · 测试脚本:speed_test.py
| 场景 | 引擎 | 设备 | 音频长度 (s) | 推理耗时 (s) | RTF |
|---|---|---|---|---|---|
| 短文本 | llama‑cpp | CPU | 7.48 | 6.81 | 0.91 |
| 短文本 | torch | GPU | 7.18 | 7.68 | 1.07 |
| 短文本 | vllm | GPU | 7.24 | 1.66 | 0.23 |
| 短文本 | sglang | GPU | 7.58 | 1.07 | 0.14 |
| 长文本 | llama‑cpp | CPU | 121.98 | 117.83 | 0.97 |
| 长文本 | torch | GPU | 113.70 | 107.17 | 0.94 |
| 长文本 | vllm | GPU | 111.82 | 7.28 | 0.07 |
| 长文本 | sglang | GPU | 117.02 | 4.20 | 0.04 |
RTF < 1 表示实时合成。
⚙️ 使用提示
- SparkTTS 权重需使用
bfloat16或float32;float16会报错。 - 若遇到长时间空白音,可将
repetition_penalty调高 (> 1.0)。 - OrpheusTTS 支持在文本中插入
<tag>控制情感,标签见orpheus_engine.py中LANG_MAP。 - 出于安全考虑,MegaTTS 3 未公开 WaveVAE 编码器,请参考官方说明下载:参考音频。
🤝 鸣谢
⚠️ 免责声明
FlashTTS 仅供学术研究、教育与合法用途,如无障碍辅助、个性化语音合成等。请勿将其用于欺诈、冒充、深度伪造等违法场景。违者自行承担法律与道德责任。
License
本项目沿用 Spark‑TTS 的协议,详情参见 LICENSE。
Star History
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flashtts-0.1.7-py3-none-any.whl.
File metadata
- Download URL: flashtts-0.1.7-py3-none-any.whl
- Upload date:
- Size: 170.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4bfc3b567d1ab30c2040e83498e464ed9b1b61f7ac91d93c69bcf3dde407515
|
|
| MD5 |
93cbac8f1d3c1e2efef2f0bf5ce6e5db
|
|
| BLAKE2b-256 |
4c1b535479c4b00737917e7a829ca0ac54bb186f298cec891aaac88a8f9231b8
|