Skip to content
项目

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: GPT-SoVITS 轻量级推理引擎

在 CPU 上体验近乎即时的语音合成

简体中文 | English


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 整合包。

探索相关项目