High-Logic/Genie-TTS
High-Logic/Genie-TTS has 1,843 GitHub stars and 125 forks. GitHot measured +7 in 7 days. Last checked 2026-11-09 23:28 UTC. Last push 2026-11-01.
GPT-SoVITS ONNX Inference Engine & Model Converter
实测星标增长
- 24小时
- 更新延迟
- 7天
- +7
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_zh.md
原文██████╗ ███████╗███╗ ██╗██╗███████╗ ██╔════╝ ██╔════╝████╗ ██║██║██╔════╝ ██║ ███╗█████╗ ██╔██╗ ██║██║█████╗ ██║ ██║██╔══╝ ██║╚██╗██║██║██╔══╝ ╚██████╔╝███████╗██║ ╚████║██║███████╗ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚══════╝
GENIE 是一个基于开源 TTS 项目 GPT-SoVITS 构建的轻量级推理引擎。它集成了 TTS 推理、ONNX 模型转换、API 服务端以及其他核心功能,旨在提供极致的性能和便利性。
- ✅ 支持的模型版本: GPT-SoVITS V2, V2ProPlus
- ✅ 支持的语言: 日语、英语、中文、韩语
- ✅ 支持的 Python 版本: >= 3.10
🎬 演示视频
🚀 性能优势
GENIE 针对原始模型进行了优化,以实现出色的 CPU 性能。
| 特性 | 🔮 GENIE | 官方 PyTorch 模型 | 官方 ONNX 模型 |
|---|---|---|---|
| 首次推理延迟 | 1.13s | 1.35s | 3.57s |
| 运行时大小 | ~200MB | ~数 GB | 与 GENIE 相似 |
| 模型大小 | ~230MB | 与 GENIE 相似 | ~750MB |
📝 延迟测试说明: 所有延迟数据均基于 100 个日语句子(每句约 20 个字符)的测试集取平均值。测试环境为 CPU i7-13620H。
🏁 快速开始
⚠️ 重要提示: 建议在 管理员模式 下运行 GENIE,以避免潜在的性能下降。
📦 安装
通过 pip 安装:
pip install genie-tts
📥 预训练模型
首次运行 GENIE 时,需要下载资源文件(~391MB)。您可以按照库的提示自动下载。
或者,您可以从 HuggingFace 手动下载文件并将其放置在本地文件夹中。然后在导入库 之前 设置
GENIE_DATA_DIR环境变量:
import os
# 设置手动下载的资源文件路径
# 注意:请在导入 genie_tts 之前执行此操作
os.environ["GENIE_DATA_DIR"] = r"C:\path\to\your\GenieData"
import genie_tts as genie
# 库现在将从指定目录加载资源
如果你想启用仅用于中文推理、用于改善中文韵律的可选 Chinese RoBERTa 文本特征,也可以这样下载:
import genie_tts as genie
# 只下载可选的 Chinese RoBERTa 资源
genie.download_roberta_data()
# 或者直接走内置的完整资源下载流程,
# 该流程现在也会顺带下载可选的 Chinese RoBERTa 资源
genie.download_genie_data()
这些 RoBERTa 特征仅用于中文路径,以改善中文韵律; 它们不应该用于日语 / 英语 / 韩语推理。
⚡️ 快速试用
还没有 GPT-SoVITS 模型?没问题! GENIE 包含几个预定义的说话人角色,您可以立即使用 —— 例如:
- Mika (聖園ミカ) — 蔚蓝档案 (Blue Archive) (日语)
- ThirtySeven (37) — 重返未来:1999 (Reverse: 1999) (英语)
- Feibi (菲比) — 鸣潮 (Wuthering Waves) (中文)
您可以在此处浏览所有可用角色: https://huggingface.co/High-Logic/Genie/tree/main/CharacterModels
使用以下示例进行尝试:
import genie_tts as genie
import time
# 首次运行时自动下载所需文件
genie.load_predefined_character('mika')
genie.tts(
character_name='mika',
text='どうしようかな……やっぱりやりたいかも……!',
play=True, # 直接播放生成的音频
)
genie.wait_for_playback_done() # 确保音频播放完成
🎤 TTS 最佳实践
一个简单的 TTS 推理示例:
import genie_tts as genie
# 第一步:加载角色语音模型
genie.load_character(
character_name='<CHARACTER_NAME>', # 替换为您的角色名称
onnx_model_dir=r"<PATH_TO_CHARACTER_ONNX_MODEL_DIR>", # 包含 ONNX 模型的文件夹
language='<LANGUAGE_CODE>', # 替换为语言代码,例如 'en', 'zh', 'jp', 'kr'
)
# 第二步:设置参考音频(用于情感和语调克隆)
genie.set_reference_audio(
character_name='<CHARACTER_NAME>', # 必须与加载的角色名称匹配
audio_path=r"<PATH_TO_REFERENCE_AUDIO>", # 参考音频的路径
audio_text="<REFERENCE_AUDIO_TEXT>", # 对应的文本
)
# 第三步:运行 TTS 推理并生成音频
genie.tts(
character_name='<CHARACTER_NAME>', # 必须与加载的角色匹配
text="<TEXT_TO_SYNTHESIZE>", # 要合成的文本
play=True, # 直接播放音频
save_path="<OUTPUT_AUDIO_PATH>", # 输出音频文件路径
)
genie.wait_for_playback_done() # 确保音频播放完成
print("🎉 Audio generation complete!")
🔧 模型转换
要将原始 GPT-SoVITS 模型转换为 GENIE 格式,请确保已安装 torch:
pip install torch
使用内置的转换工具:
提示:
convert_to_onnx目前支持 V2 和 V2ProPlus 模型。
import genie_tts as genie
genie.convert_to_onnx(
torch_pth_path=r"<YOUR .PTH MODEL FILE>", # 替换为您的 .pth 文件
torch_ckpt_path=r"<YOUR .CKPT CHECKPOINT FILE>", # 替换为您的 .ckpt 文件
output_dir=r"<ONNX MODEL OUTPUT DIRECTORY>" # 保存 ONNX 模型的目录
)
🌐 启动 FastAPI 服务
GENIE 包含一个轻量级的 FastAPI 服务器:
import genie_tts as genie
# 启动服务
genie.start_server(
host="0.0.0.0", # 主机地址
port=8000, # 端口
workers=1 # 工作进程数
)
关于请求格式和 API 详情,请参阅我们的 API 服务教程。
📝 路线图
🌐 语言扩展
- 添加对 中文 和 英文 的支持。
🚀 模型兼容性
- 支持
V2ProPlus。 - 支持
V3、V4等更多版本。
- 支持
📦 简易部署
- 发布 官方 Docker 镜像。
- 提供开箱即用的 Windows 整合包。