GENIE / README.md
Tom1986's picture
重构:将app.py拆分为模块化架构 + 修复onnxruntime依赖问题
24437ee
---
title: GENIE TTS
emoji: 🔮
colorFrom: pink
colorTo: gray
sdk: gradio
sdk_version: 5.46.0
app_file: app.py
pinned: false
license: apache-2.0
short_description: High-quality Japanese TTS based on Genie (GPT-SoVITS V2)
---
# 🔮 Genie TTS - Hugging Face Spaces Deployment
基于 [High-Logic/Genie](https://github.com/High-Logic/Genie) 的官方 TTS 引擎,提供高质量日语语音合成服务。
## ✨ 功能特点
- 🚀 **高性能推理**:基于 ONNX Runtime 的 CPU 优化推理
- 🎯 **即开即用**:内置 misono_mika 预定义角色,无需额外模型
- 📱 **Web 界面**:响应式 Gradio 界面,支持音频实时播放
- 🔧 **官方对齐**:配置与上游官方项目完全一致
- 💾 **智能缓存**:自动模型缓存,提升后续使用体验
## ⚠️ 部署状态
> **Hugging Face Spaces 环境限制**
>
> 由于 Hugging Face Spaces 环境缺少 `portaudio19-dev` 系统依赖,PyAudio 编译可能失败,导致 genie-tts 安装失败。我们已添加了:
>
> - ✅ `packages.txt` 文件尝试安装系统依赖
> - ✅ 智能错误处理和状态显示
> - ✅ 运行时安装策略(`--no-deps` 模式)
> - ✅ 详细的故障诊断信息
>
> 🔧 **推荐解决方案:**
> 1. **本地运行**:在本地环境可完整安装所有依赖
> 2. **Docker 部署**:使用官方 Docker 配置
> 3. **其他云平台**:支持系统依赖安装的平台
## 🏗️ 技术架构
```
用户输入 → Gradio界面 → Genie TTS引擎 → ONNX推理 → 音频输出
↓ ↓ ↓ ↓ ↓
文本预处理 参数验证 模型加载 语音合成 Web播放
```
### 核心组件
- **TTS Engine**: Genie TTS v1.0+ (官方包)
- **Model Runtime**: ONNX Runtime 1.16+
- **Audio Processing**: SoundFile + SoXR
- **Web Interface**: Gradio 4.0+
- **Text Processing**: PyOpenJTalk (日语支持)
## 🚀 快速开始
### 本地开发
```bash
# 1. 克隆仓库
git clone <repository-url>
cd genie-tts-deployment
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动应用
python app.py
```
### Hugging Face Spaces 部署
1. **Fork 仓库** 到您的 GitHub 账户
2. **创建 Space**
- 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
- 选择 "Create new Space"
- 选择 "Gradio" SDK
- 连接 GitHub 仓库
3. **自动部署**:推送代码后自动构建部署
## 📋 依赖说明
### 核心依赖(基于官方配置)
```txt
# 官方 TTS 引擎
genie-tts>=1.0.0
# Web 界面框架
gradio>=4.0.0
# 机器学习推理
onnxruntime>=1.16.0
# 音频处理(官方核心依赖)
soundfile>=0.12.0 # 音频文件读写
soxr>=0.3.0 # 高质量音频重采样
librosa>=0.10.0 # 音频分析
scipy>=1.9.0 # 科学计算
# 日语文本处理
pyopenjtalk # 日语分词和读音
# 模型下载
huggingface-hub>=0.17.0
# 系统工具
rich>=12.0.0 # 美化日志输出
requests>=2.25.0 # 网络请求
psutil>=5.8.0 # 系统信息
```
### 兼容性说明
- **PyAudio 处理**:移除以避免 HF Spaces 编译错误
- **音频播放**:通过 Web 界面实现,无需本地音频设备
- **Python 版本**:支持 3.9+(与官方一致)
## 🎮 使用指南
### 基础用法
1. **选择角色**:当前支持 `misono_mika`
2. **输入文本**:支持日语文本(建议500字符以内)
3. **点击合成**:等待处理完成
4. **播放音频**:直接在浏览器中播放
### 示例文本
```
どうしようかな……やっぱりやりたいかも……!
私も昔、これと似たようなの持ってたなぁ…。
おはようございます!今日もよろしくお願いします。
```
## 🔧 技术细节
### 模型信息
- **架构**:GPT-SoVITS V2
- **语言支持**:日语
- **采样率**:32kHz
- **推理引擎**:ONNX Runtime (CPU)
- **模型大小**:约180MB
### 性能优化
- **内存管理**:自动垃圾回收
- **缓存策略**:智能模型缓存
- **错误处理**:完善的异常捕获
- **资源限制**:文本长度限制
## 📚 参考资料
- [官方项目](https://github.com/High-Logic/Genie)
- [官方文档](https://github.com/High-Logic/Genie/tree/main/README.md)
- [API 教程](https://github.com/High-Logic/Genie/tree/main/Tutorial)
- [配置对齐说明](./OFFICIAL_ALIGNMENT.md)
## 📄 许可证
本项目基于 Apache-2.0 许可证开源,详情请见 [LICENSE](./LICENSE) 文件。
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference