Spaces:
Sleeping
Sleeping
Upload 28 files
Browse files- .gitattributes +36 -35
- Dockerfile +22 -0
- README.md +10 -10
- app.py +132 -0
- models/base/config.json +9 -0
- models/base/prompt_encoder_fp16.bin +3 -0
- models/base/prompt_encoder_fp32.onnx +3 -0
- models/base/prompt_wav.json +7 -0
- models/base/ref.wav +0 -0
- models/base/t2s_encoder_fp32.bin +3 -0
- models/base/t2s_encoder_fp32.onnx +3 -0
- models/base/t2s_first_stage_decoder_fp32.onnx +3 -0
- models/base/t2s_shared_fp16.bin +3 -0
- models/base/t2s_stage_decoder_fp32.onnx +3 -0
- models/base/vits_fp16.bin +3 -0
- models/base/vits_fp32.onnx +3 -0
- models/god/config.json +9 -0
- models/god/prompt_encoder_fp16.bin +3 -0
- models/god/prompt_encoder_fp32.onnx +3 -0
- models/god/prompt_wav.json +7 -0
- models/god/ref.wav +0 -0
- models/god/t2s_encoder_fp32.bin +3 -0
- models/god/t2s_encoder_fp32.onnx +3 -0
- models/god/t2s_first_stage_decoder_fp32.onnx +3 -0
- models/god/t2s_shared_fp16.bin +3 -0
- models/god/t2s_stage_decoder_fp32.onnx +3 -0
- models/god/vits_fp16.bin +3 -0
- models/god/vits_fp32.onnx +3 -0
.gitattributes
CHANGED
|
@@ -1,35 +1,36 @@
|
|
| 1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
ref.wav filter=lfs diff=lfs merge=lfs -text
|
Dockerfile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.10-slim
|
| 2 |
+
|
| 3 |
+
WORKDIR /app
|
| 4 |
+
|
| 5 |
+
# 安装 FFmpeg 和基础编译工具
|
| 6 |
+
RUN apt-get update && apt-get install -y \
|
| 7 |
+
git ffmpeg build-essential cmake libmecab-dev mecab-ipadic-utf8 \
|
| 8 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 9 |
+
|
| 10 |
+
# 安装所有必要库
|
| 11 |
+
RUN pip install --no-cache-dir \
|
| 12 |
+
git+https://github.com/High-Logic/Genie-TTS.git \
|
| 13 |
+
python-multipart uvicorn fastapi
|
| 14 |
+
|
| 15 |
+
# 镜像权限处理
|
| 16 |
+
COPY . /app
|
| 17 |
+
RUN chmod -R 777 /app
|
| 18 |
+
|
| 19 |
+
EXPOSE 7860
|
| 20 |
+
|
| 21 |
+
# 使用直接启动模式
|
| 22 |
+
CMD ["python", "app.py"]
|
README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
-
---
|
| 2 |
-
title: Genie TTS
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
-
sdk: docker
|
| 7 |
-
pinned: false
|
| 8 |
-
---
|
| 9 |
-
|
| 10 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Genie TTS
|
| 3 |
+
emoji: 🌍
|
| 4 |
+
colorFrom: yellow
|
| 5 |
+
colorTo: green
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app.py
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import builtins
|
| 2 |
+
import os
|
| 3 |
+
import shutil
|
| 4 |
+
import io
|
| 5 |
+
import time
|
| 6 |
+
import uvicorn
|
| 7 |
+
from fastapi import FastAPI, UploadFile, File, Form, HTTPException
|
| 8 |
+
from fastapi.responses import StreamingResponse
|
| 9 |
+
from huggingface_hub import snapshot_download
|
| 10 |
+
|
| 11 |
+
# 🔴 核心:在所有 import 之前,必须先劫持 input
|
| 12 |
+
builtins.input = lambda prompt="": "y"
|
| 13 |
+
# 适配 Space 路径,本地运行时请确保此目录存在
|
| 14 |
+
os.environ["GENIE_DATA_DIR"] = "/app/GenieData"
|
| 15 |
+
|
| 16 |
+
# 下载环境
|
| 17 |
+
if not os.path.exists("/app/GenieData/G2P"):
|
| 18 |
+
print("📦 Downloading GenieData Assets...")
|
| 19 |
+
snapshot_download(repo_id="High-Logic/Genie", allow_patterns=["GenieData/*"], local_dir="/app", local_dir_use_symlinks=False)
|
| 20 |
+
|
| 21 |
+
import genie_tts
|
| 22 |
+
|
| 23 |
+
app = FastAPI()
|
| 24 |
+
|
| 25 |
+
# 角色模型存放根目录
|
| 26 |
+
MODELS_ROOT = "/app/models"
|
| 27 |
+
os.makedirs(MODELS_ROOT, exist_ok=True)
|
| 28 |
+
|
| 29 |
+
# 默认设置(加载 models/base 和 models/god)
|
| 30 |
+
genie_tts.load_character("Base", "/app/models/base", "zh")
|
| 31 |
+
genie_tts.load_character("god", "/app/models/god", "zh")
|
| 32 |
+
|
| 33 |
+
# 记录每个角色的默认参考音频
|
| 34 |
+
REF_CACHE = {
|
| 35 |
+
"Base": {
|
| 36 |
+
"path": "/app/models/base/ref.wav",
|
| 37 |
+
"text": "琴是个称职的好团长。看到她认真工作的样子,就连我也忍不住想要多帮她一把。",
|
| 38 |
+
"lang": "zh"
|
| 39 |
+
},
|
| 40 |
+
"god": {
|
| 41 |
+
"path": "/app/models/god/ref.wav",
|
| 42 |
+
"text": "很多人的一生,写于纸上也不过几行,大多都是些无聊的故事啊。",
|
| 43 |
+
"lang": "zh"
|
| 44 |
+
}
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
@app.post("/load_model")
|
| 48 |
+
async def load_model(character_name: str = Form(...), model_path: str = Form(...), language: str = Form("zh")):
|
| 49 |
+
"""
|
| 50 |
+
动态加载新模型 API
|
| 51 |
+
model_path: 相对于 /app 的路径,例如 "models/my_character"
|
| 52 |
+
"""
|
| 53 |
+
full_path = os.path.join("/app", model_path)
|
| 54 |
+
if not os.path.exists(full_path):
|
| 55 |
+
raise HTTPException(status_code=404, detail=f"Model path not found: {full_path}")
|
| 56 |
+
|
| 57 |
+
try:
|
| 58 |
+
print(f"📦 Loading character: {character_name} from {full_path}")
|
| 59 |
+
genie_tts.load_character(character_name, full_path, language)
|
| 60 |
+
return {"status": "success", "message": f"Character '{character_name}' loaded."}
|
| 61 |
+
except Exception as e:
|
| 62 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 63 |
+
|
| 64 |
+
@app.post("/upload_and_tts")
|
| 65 |
+
async def upload_and_tts(
|
| 66 |
+
character_name: str = Form("Default"),
|
| 67 |
+
prompt_text: str = Form(...),
|
| 68 |
+
text: str = Form(...),
|
| 69 |
+
language: str = Form("zh"),
|
| 70 |
+
file: UploadFile = File(...)
|
| 71 |
+
):
|
| 72 |
+
"""
|
| 73 |
+
上传临时参考音频并生成语音
|
| 74 |
+
"""
|
| 75 |
+
try:
|
| 76 |
+
ts = int(time.time() * 1000)
|
| 77 |
+
save_path = f"/tmp/ref_{ts}.wav"
|
| 78 |
+
os.makedirs("/tmp", exist_ok=True)
|
| 79 |
+
|
| 80 |
+
with open(save_path, "wb") as buffer:
|
| 81 |
+
shutil.copyfileobj(file.file, buffer)
|
| 82 |
+
|
| 83 |
+
print(f"🔥 [Custom] Using temp audio for {character_name}: {save_path}")
|
| 84 |
+
genie_tts.set_reference_audio(character_name, save_path, prompt_text, language)
|
| 85 |
+
|
| 86 |
+
out_path = f"/tmp/out_{ts}.wav"
|
| 87 |
+
genie_tts.tts(character_name, text, save_path=out_path, play=False)
|
| 88 |
+
|
| 89 |
+
def iterfile():
|
| 90 |
+
with open(out_path, "rb") as f:
|
| 91 |
+
yield from f
|
| 92 |
+
try:
|
| 93 |
+
os.remove(save_path)
|
| 94 |
+
os.remove(out_path)
|
| 95 |
+
except: pass
|
| 96 |
+
|
| 97 |
+
return StreamingResponse(iterfile(), media_type="audio/wav")
|
| 98 |
+
except Exception as e:
|
| 99 |
+
print(f"❌ Error in upload/tts: {e}")
|
| 100 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 101 |
+
|
| 102 |
+
@app.post("/tts")
|
| 103 |
+
async def dynamic_tts(
|
| 104 |
+
text: str = Form(...),
|
| 105 |
+
character_name: str = Form("Default"),
|
| 106 |
+
prompt_text: str = Form(None),
|
| 107 |
+
prompt_lang: str = Form("zh"),
|
| 108 |
+
use_default_ref: bool = Form(True)
|
| 109 |
+
):
|
| 110 |
+
"""
|
| 111 |
+
通用 TTS 接口,支持切换已加载的角色
|
| 112 |
+
"""
|
| 113 |
+
try:
|
| 114 |
+
# 如果提供了 prompt_text 且不是用默认参考,则尝试更新该角色的参考(假设已经有 ref.wav 在该角色目录下)
|
| 115 |
+
# 这里为了简化,如果没传特定音频,就用 REF_CACHE 里的
|
| 116 |
+
ref_info = REF_CACHE.get(character_name, REF_CACHE["Default"])
|
| 117 |
+
|
| 118 |
+
# 允许通过 API 动态覆盖当前参考文本(不换音频文件)
|
| 119 |
+
final_text = prompt_text if prompt_text else ref_info["text"]
|
| 120 |
+
|
| 121 |
+
genie_tts.set_reference_audio(character_name, ref_info["path"], final_text, prompt_lang)
|
| 122 |
+
|
| 123 |
+
out_path = f"/tmp/out_dyn_{int(time.time())}.wav"
|
| 124 |
+
genie_tts.tts(character_name, text, save_path=out_path, play=False)
|
| 125 |
+
|
| 126 |
+
return StreamingResponse(open(out_path, "rb"), media_type="audio/wav")
|
| 127 |
+
except Exception as e:
|
| 128 |
+
print(f"❌ Error: {e}")
|
| 129 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 130 |
+
|
| 131 |
+
if __name__ == "__main__":
|
| 132 |
+
uvicorn.run(app, host="0.0.0.0", port=7860)
|
models/base/config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": "2.0",
|
| 3 |
+
"model_type": "GPT-SoVITS-V2ProPlus",
|
| 4 |
+
"gpt_path": "/app/t2s_stage_decoder_fp32.onnx",
|
| 5 |
+
"sovits_path": "/app/vits_fp32.onnx",
|
| 6 |
+
"first_stage_path": "/app/t2s_first_stage_decoder_fp32.onnx",
|
| 7 |
+
"cnhubert_base": "/app/GenieData/chinese-hubert-base/chinese-hubert-base.onnx",
|
| 8 |
+
"bert": "/app/GenieData/chinese-roberta-wwm-ext-large/chinese-roberta-wwm-ext-large.onnx"
|
| 9 |
+
}
|
models/base/prompt_encoder_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f02368fe1ab5ab43893a37e3034fa40fa30a0b74d84f319fb6ea30bc07c58604
|
| 3 |
+
size 44262912
|
models/base/prompt_encoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c4a3d8c1e385a17aecb7bd9c5ede5707ba390f85c3eb49b388deeaaaf53d2748
|
| 3 |
+
size 44464
|
models/base/prompt_wav.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"default": {
|
| 3 |
+
"wav_path": "ref.wav",
|
| 4 |
+
"prompt_text": "琴是个称职的好团长。看到她认真工作的样子,就连我也忍不住想要多帮她一把。",
|
| 5 |
+
"prompt_lang": "zh"
|
| 6 |
+
}
|
| 7 |
+
}
|
models/base/ref.wav
ADDED
|
Binary file (96.2 kB). View file
|
|
|
models/base/t2s_encoder_fp32.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:928625cb99c00f83e6d7f1bbc2973c86f3fb6e3027e8835995d25617a153ff62
|
| 3 |
+
size 11465732
|
models/base/t2s_encoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f6eb1acd47c8e6d36b777886981a49122e8e070a5eb9888d458fb188dc139f75
|
| 3 |
+
size 14568
|
models/base/t2s_first_stage_decoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:868f395999508905128c5325c5db4f4b37b2e70e04d6e2719fec64cbb60ee7f9
|
| 3 |
+
size 416803
|
models/base/t2s_shared_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9692aabc4830f673de998bcfbe71fad253ee8cf821d8ada2b0e4ddde42ebd30f
|
| 3 |
+
size 153413634
|
models/base/t2s_stage_decoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3f02881c517423deb610f86d5441bd9825937c5069f3887cacefa1e9dc403b0d
|
| 3 |
+
size 417625
|
models/base/vits_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ee040162fc7abe857b8f233e4ae72cfffd786993188a95957a3e406bd499f8f9
|
| 3 |
+
size 124345856
|
models/base/vits_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2f918e08a1bfecc568de4cc5dc96135cb8baf37a07f4eb4ec9258a4854fcd3f3
|
| 3 |
+
size 1611210
|
models/god/config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": "2.0",
|
| 3 |
+
"model_type": "GPT-SoVITS-V2ProPlus",
|
| 4 |
+
"gpt_path": "./t2s_stage_decoder_fp32.onnx",
|
| 5 |
+
"sovits_path": "./vits_fp32.onnx",
|
| 6 |
+
"first_stage_path": "./t2s_first_stage_decoder_fp32.onnx",
|
| 7 |
+
"cnhubert_base": "/app/GenieData/chinese-hubert-base/chinese-hubert-base.onnx",
|
| 8 |
+
"bert": "/app/GenieData/chinese-roberta-wwm-ext-large/chinese-roberta-wwm-ext-large.onnx"
|
| 9 |
+
}
|
models/god/prompt_encoder_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:121a5877a97347e5969a175329fc62a06d53a73fb639f760c48b82bb32c40168
|
| 3 |
+
size 44262912
|
models/god/prompt_encoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c4a3d8c1e385a17aecb7bd9c5ede5707ba390f85c3eb49b388deeaaaf53d2748
|
| 3 |
+
size 44464
|
models/god/prompt_wav.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"default": {
|
| 3 |
+
"wav_path": "ref.wav",
|
| 4 |
+
"prompt_text": "很多人的一生,写于纸上也不过几行,大多都是些无聊的故事啊。",
|
| 5 |
+
"prompt_lang": "zh"
|
| 6 |
+
}
|
| 7 |
+
}
|
models/god/ref.wav
ADDED
|
Binary file (84.7 kB). View file
|
|
|
models/god/t2s_encoder_fp32.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:74af327b9cbd6f4cbc1f1137586b0cebcf360ffa141f75ad59b63b25db7c5eab
|
| 3 |
+
size 11465732
|
models/god/t2s_encoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f6eb1acd47c8e6d36b777886981a49122e8e070a5eb9888d458fb188dc139f75
|
| 3 |
+
size 14568
|
models/god/t2s_first_stage_decoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:868f395999508905128c5325c5db4f4b37b2e70e04d6e2719fec64cbb60ee7f9
|
| 3 |
+
size 416803
|
models/god/t2s_shared_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a01da3c9cbd46c82fcc7bbb1a07d3c7a2d4fcb0a234fdd7055397ad07682752a
|
| 3 |
+
size 153413634
|
models/god/t2s_stage_decoder_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3f02881c517423deb610f86d5441bd9825937c5069f3887cacefa1e9dc403b0d
|
| 3 |
+
size 417625
|
models/god/vits_fp16.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f21017aa6c0076a2bcd379fe591b70f3f8aec4f1e8c920f1ed40965d73a03da0
|
| 3 |
+
size 124345856
|
models/god/vits_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2f918e08a1bfecc568de4cc5dc96135cb8baf37a07f4eb4ec9258a4854fcd3f3
|
| 3 |
+
size 1611210
|