mirror of
https://github.com/RVC-Boss/GPT-SoVITS.git
synced 2026-04-29 12:34:03 +08:00
Compare commits
7 Commits
2ec561432b
...
29fb89337c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29fb89337c | ||
|
|
ea2d2a8166 | ||
|
|
d9f03dad3e | ||
|
|
647935357a | ||
|
|
02425ea256 | ||
|
|
7f6787121b | ||
|
|
6e027ec111 |
5
.gitignore
vendored
5
.gitignore
vendored
@ -193,3 +193,8 @@ cython_debug/
|
||||
|
||||
# PyPI configuration file
|
||||
.pypirc
|
||||
/.vs
|
||||
/GPT_SoVITS/configs/tts_infer.yaml
|
||||
/GPT_SoVITS/configs/infer_settings.json
|
||||
/last_selected_preset.json
|
||||
/last_selected_models.json
|
||||
|
||||
@ -8,30 +8,30 @@ def multi_head_attention_forward_patched(
|
||||
query,
|
||||
key,
|
||||
value,
|
||||
embed_dim_to_check: int,
|
||||
num_heads: int,
|
||||
embed_dim_to_check,
|
||||
num_heads,
|
||||
in_proj_weight,
|
||||
in_proj_bias: Optional[Tensor],
|
||||
bias_k: Optional[Tensor],
|
||||
bias_v: Optional[Tensor],
|
||||
add_zero_attn: bool,
|
||||
dropout_p: float,
|
||||
out_proj_weight: Tensor,
|
||||
out_proj_bias: Optional[Tensor],
|
||||
training: bool = True,
|
||||
key_padding_mask: Optional[Tensor] = None,
|
||||
need_weights: bool = True,
|
||||
attn_mask: Optional[Tensor] = None,
|
||||
use_separate_proj_weight: bool = False,
|
||||
q_proj_weight: Optional[Tensor] = None,
|
||||
k_proj_weight: Optional[Tensor] = None,
|
||||
v_proj_weight: Optional[Tensor] = None,
|
||||
static_k: Optional[Tensor] = None,
|
||||
static_v: Optional[Tensor] = None,
|
||||
average_attn_weights: bool = True,
|
||||
is_causal: bool = False,
|
||||
in_proj_bias,
|
||||
bias_k,
|
||||
bias_v,
|
||||
add_zero_attn,
|
||||
dropout_p,
|
||||
out_proj_weight,
|
||||
out_proj_bias,
|
||||
training=True,
|
||||
key_padding_mask=None,
|
||||
need_weights=True,
|
||||
attn_mask=None,
|
||||
use_separate_proj_weight=False,
|
||||
q_proj_weight=None,
|
||||
k_proj_weight=None,
|
||||
v_proj_weight=None,
|
||||
static_k=None,
|
||||
static_v=None,
|
||||
average_attn_weights=True,
|
||||
is_causal=False,
|
||||
cache=None,
|
||||
) -> Tuple[Tensor, Optional[Tensor]]:
|
||||
):
|
||||
# set up shape vars
|
||||
_, _, embed_dim = query.shape
|
||||
attn_mask = _canonical_mask(
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
custom:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cuda
|
||||
is_half: true
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt
|
||||
version: v2
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth
|
||||
v1:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt
|
||||
version: v1
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/s2G488k.pth
|
||||
v2:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt
|
||||
version: v2
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth
|
||||
v2Pro:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/s1v3.ckpt
|
||||
version: v2Pro
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/v2Pro/s2Gv2Pro.pth
|
||||
v2ProPlus:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/s1v3.ckpt
|
||||
version: v2ProPlus
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/v2Pro/s2Gv2ProPlus.pth
|
||||
v3:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/s1v3.ckpt
|
||||
version: v3
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/s2Gv3.pth
|
||||
v4:
|
||||
bert_base_path: GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
|
||||
cnhuhbert_base_path: GPT_SoVITS/pretrained_models/chinese-hubert-base
|
||||
device: cpu
|
||||
is_half: false
|
||||
t2s_weights_path: GPT_SoVITS/pretrained_models/s1v3.ckpt
|
||||
version: v4
|
||||
vits_weights_path: GPT_SoVITS/pretrained_models/gsv-v4-pretrained/s2Gv4.pth
|
||||
File diff suppressed because it is too large
Load Diff
425
GPT_SoVITS/persistence_tools.py
Normal file
425
GPT_SoVITS/persistence_tools.py
Normal file
@ -0,0 +1,425 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
GPT-SoVITS 持久化工具类
|
||||
包含:模型配置、参考音频、推理参数 的持久化读写与管理
|
||||
抽离自主文件,减少主文件臃肿,方便后续维护
|
||||
"""
|
||||
import json
|
||||
import yaml
|
||||
import hashlib
|
||||
import os
|
||||
import shutil
|
||||
import random
|
||||
from pathlib import Path
|
||||
|
||||
# ===================== 全局配置(统一管理所有持久化文件路径) =====================
|
||||
# 模型持久化配置文件
|
||||
LAST_SELECTED_MODELS_JSON = Path("./last_selected_models.json")
|
||||
# 参考预设最后选中配置文件
|
||||
LAST_SELECTED_PRESET_JSON = Path("./last_selected_preset.json")
|
||||
# 参考音频持久化目录
|
||||
REF_AUDIO_DIR = Path("GPT_SoVITS/ref_audios")
|
||||
# 参考预设配置文件
|
||||
REF_PRESETS_YAML = Path("GPT_SoVITS/configs/ref_audios_presets.yaml")
|
||||
# 推理参数配置文件
|
||||
INFER_SETTINGS_JSON = Path("GPT_SoVITS/configs/infer_settings.json")
|
||||
|
||||
# 参考音频配置常量
|
||||
MAX_FILENAME_LENGTH = 40
|
||||
INVALID_FILE_CHARS = set(r'\/:*?"<>|')
|
||||
|
||||
# 默认推理参数
|
||||
DEFAULT_INFER_SETTINGS = {
|
||||
"batch_size": 20,
|
||||
"sample_steps": 32,
|
||||
"fragment_interval": 0.2,
|
||||
"speed_factor": 1.0,
|
||||
"top_k": 5,
|
||||
"top_p": 1.0,
|
||||
"temperature": 1.0,
|
||||
"repetition_penalty": 1.35,
|
||||
"how_to_cut": "凑四句一切",
|
||||
"super_sampling": False,
|
||||
"parallel_infer": True,
|
||||
"split_bucket": True,
|
||||
"seed": -1,
|
||||
"keep_random": True
|
||||
}
|
||||
|
||||
# ===================== 通用工具函数(抽离重复逻辑) =====================
|
||||
def sanitize_filename(name):
|
||||
"""清理文件名中的非法字符,替换为下划线"""
|
||||
if not name:
|
||||
return "unnamed_preset"
|
||||
return ''.join(c if c not in INVALID_FILE_CHARS else '_' for c in name)
|
||||
|
||||
def get_audio_md5(file_path, chunk_size=4096):
|
||||
"""计算音频文件的MD5值(取前8位),用于区分不同音频内容"""
|
||||
if not os.path.exists(file_path):
|
||||
return "invalid_file"
|
||||
try:
|
||||
md5 = hashlib.md5()
|
||||
with open(file_path, 'rb') as f:
|
||||
while chunk := f.read(chunk_size):
|
||||
md5.update(chunk)
|
||||
return md5.hexdigest()[:8]
|
||||
except Exception as e:
|
||||
print(f"计算音频MD5失败:{e}")
|
||||
return f"err_{random.randint(10000000, 99999999)}"
|
||||
|
||||
def ensure_dir_exists(dir_path):
|
||||
"""确保目录存在,不存在则创建"""
|
||||
if dir_path and not dir_path.exists():
|
||||
dir_path.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
# ===================== 1. 模型配置持久化(last_selected_models.json) =====================
|
||||
def init_last_selected_models(gpt_default, sovits_default, current_version):
|
||||
"""初始化模型配置文件,写入默认模型路径"""
|
||||
ensure_dir_exists(LAST_SELECTED_MODELS_JSON.parent)
|
||||
init_data = {
|
||||
"gpt_model_path": gpt_default,
|
||||
"sovits_model_path": sovits_default,
|
||||
"version": current_version
|
||||
}
|
||||
with open(LAST_SELECTED_MODELS_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(init_data, f, ensure_ascii=False, indent=4)
|
||||
print(f"首次生成模型配置文件:{LAST_SELECTED_MODELS_JSON}")
|
||||
return init_data
|
||||
|
||||
def read_last_selected_models():
|
||||
"""读取模型配置文件中的路径"""
|
||||
if not LAST_SELECTED_MODELS_JSON.exists():
|
||||
return None
|
||||
try:
|
||||
with open(LAST_SELECTED_MODELS_JSON, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
# 校验必要字段
|
||||
required_fields = ["gpt_model_path", "sovits_model_path", "version"]
|
||||
for field in required_fields:
|
||||
if field not in data:
|
||||
return None
|
||||
return data
|
||||
except Exception as e:
|
||||
print(f"读取模型配置失败:{e}")
|
||||
return None
|
||||
|
||||
def write_last_selected_models(gpt_path_new, sovits_path_new, current_version):
|
||||
"""写入新的模型路径到配置文件"""
|
||||
ensure_dir_exists(LAST_SELECTED_MODELS_JSON.parent)
|
||||
try:
|
||||
data = read_last_selected_models() or {}
|
||||
data["gpt_model_path"] = gpt_path_new
|
||||
data["sovits_model_path"] = sovits_path_new
|
||||
data["version"] = current_version
|
||||
with open(LAST_SELECTED_MODELS_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=4)
|
||||
except Exception as e:
|
||||
print(f"写入模型配置失败:{e}")
|
||||
|
||||
# ===================== 2. 参考音频预设持久化(last_selected_preset.json + ref_audios_presets.yaml) =====================
|
||||
# 2.1 最后选中预设的读写清
|
||||
def read_last_selected_preset():
|
||||
"""读取最后一次选中的预设名称"""
|
||||
if not LAST_SELECTED_PRESET_JSON.exists():
|
||||
return None
|
||||
try:
|
||||
with open(LAST_SELECTED_PRESET_JSON, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
return data.get("last_selected_preset")
|
||||
except Exception as e:
|
||||
print(f"读取最后选中预设失败:{e}")
|
||||
return None
|
||||
|
||||
def write_last_selected_preset(preset_name):
|
||||
"""写入最后一次选中的预设名称"""
|
||||
ensure_dir_exists(LAST_SELECTED_PRESET_JSON.parent)
|
||||
try:
|
||||
data = {"last_selected_preset": preset_name.strip()}
|
||||
with open(LAST_SELECTED_PRESET_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=4)
|
||||
print(f"已记录最后选中的预设:{preset_name.strip()}")
|
||||
except Exception as e:
|
||||
print(f"写入最后选中预设失败:{e}")
|
||||
|
||||
def clear_last_selected_preset():
|
||||
"""清空最后选中的预设记录"""
|
||||
if not LAST_SELECTED_PRESET_JSON.exists():
|
||||
return
|
||||
try:
|
||||
with open(LAST_SELECTED_PRESET_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump({"last_selected_preset": ""}, f, ensure_ascii=False, indent=4)
|
||||
except Exception as e:
|
||||
print(f"清空最后选中预设失败:{e}")
|
||||
|
||||
# 2.2 参考预设配置的加载/保存/删除
|
||||
def load_ref_presets():
|
||||
"""加载多组参考预设配置"""
|
||||
ensure_dir_exists(REF_PRESETS_YAML.parent)
|
||||
|
||||
# 新增:配置文件不存在时,自动创建空文件
|
||||
if not REF_PRESETS_YAML.exists():
|
||||
with open(REF_PRESETS_YAML, "w", encoding="utf-8") as f:
|
||||
yaml.dump([], f, indent=4, allow_unicode=True)
|
||||
print(f"暂未检测到参考预设配置文件,已自动创建空文件:{REF_PRESETS_YAML}")
|
||||
return []
|
||||
|
||||
try:
|
||||
with open(REF_PRESETS_YAML, "r", encoding="utf-8") as f:
|
||||
presets = yaml.load(f, Loader=yaml.FullLoader) or []
|
||||
|
||||
# 兼容旧格式转换
|
||||
if isinstance(presets, dict):
|
||||
presets = [{"name": "旧配置转换", "ref_audio_path": presets.get("ref_audio_path"),
|
||||
"prompt_text": presets.get("prompt_text", ""), "prompt_language": presets.get("prompt_language", "中文")}]
|
||||
|
||||
# 补充缺失字段 + 校验音频路径
|
||||
default_template = {"name": "", "ref_audio_path": None, "prompt_text": "", "prompt_language": "中文"}
|
||||
for preset in presets:
|
||||
for key, value in default_template.items():
|
||||
preset.setdefault(key, value)
|
||||
# 校验音频路径有效性
|
||||
audio_path = preset["ref_audio_path"]
|
||||
if audio_path and not os.path.exists(str(audio_path)):
|
||||
preset["ref_audio_path"] = None
|
||||
|
||||
# 清理冗余音频
|
||||
clean_unreferenced_audios(presets)
|
||||
print(f"参考预设加载成功,共 {len(presets)} 组")
|
||||
return presets
|
||||
except Exception as e:
|
||||
print(f"参考预设加载失败:{e}")
|
||||
return []
|
||||
|
||||
def get_preset_by_name(preset_name, presets=None):
|
||||
"""根据配置名称查询对应的配置详情"""
|
||||
# 核心修复:先判断 preset_name 是否为 None,避免 AttributeError
|
||||
if preset_name is None:
|
||||
return {"name": "", "ref_audio_path": None, "prompt_text": "", "prompt_language": "中文"}
|
||||
|
||||
if not presets:
|
||||
presets = load_ref_presets()
|
||||
|
||||
# 现在再调用 strip(),确保 preset_name 不是 None
|
||||
preset_name_str = preset_name.strip()
|
||||
for preset in presets:
|
||||
if preset["name"].strip() == preset_name_str:
|
||||
return preset
|
||||
|
||||
# 无匹配预设时,返回空的合法预设字典
|
||||
return {"name": "", "ref_audio_path": None, "prompt_text": "", "prompt_language": "中文"}
|
||||
|
||||
def save_ref_preset_core(preset_name, ref_audio_path, prompt_text, prompt_language, confirm_override=False):
|
||||
"""保存/覆盖参考预设核心逻辑(返回:提示信息、是否成功、预设列表)"""
|
||||
ensure_dir_exists(REF_AUDIO_DIR)
|
||||
presets = load_ref_presets()
|
||||
preset_name = preset_name.strip()
|
||||
|
||||
# 前置校验
|
||||
if not ref_audio_path or not os.path.exists(str(ref_audio_path)):
|
||||
return "保存失败!请先上传有效的主参考音频文件。", False, [p["name"] for p in presets]
|
||||
if not preset_name:
|
||||
return "保存失败!配置名称不能为空。", False, [p["name"] for p in presets]
|
||||
|
||||
# 音频持久化处理
|
||||
persistent_audio_path = get_persistent_audio_path(ref_audio_path, preset_name)
|
||||
if not persistent_audio_path:
|
||||
return "保存失败!音频文件持久化存储失败。", False, [p["name"] for p in presets]
|
||||
|
||||
# 同名检测
|
||||
preset_index = -1
|
||||
for idx, p in enumerate(presets):
|
||||
if p["name"].strip() == preset_name:
|
||||
preset_index = idx
|
||||
break
|
||||
|
||||
if preset_index >= 0 and not confirm_override:
|
||||
return f"配置「{preset_name}」已存在,如需替换请确认覆盖!", False, [p["name"] for p in presets]
|
||||
|
||||
# 构造新配置
|
||||
new_preset = {
|
||||
"name": preset_name,
|
||||
"ref_audio_path": persistent_audio_path,
|
||||
"prompt_text": prompt_text,
|
||||
"prompt_language": prompt_language
|
||||
}
|
||||
|
||||
# 更新配置列表
|
||||
is_new_preset = preset_index < 0
|
||||
if preset_index >= 0:
|
||||
presets[preset_index] = new_preset
|
||||
tip = "同名配置已覆盖!"
|
||||
else:
|
||||
presets.append(new_preset)
|
||||
tip = "新配置已新增!"
|
||||
|
||||
# 写入配置文件
|
||||
try:
|
||||
with open(REF_PRESETS_YAML, "w", encoding="utf-8") as f:
|
||||
yaml.dump(presets, f, indent=4, allow_unicode=True)
|
||||
|
||||
# 新增预设自动记录为最后选中
|
||||
if is_new_preset:
|
||||
write_last_selected_preset(preset_name)
|
||||
|
||||
preset_names = [p["name"] for p in presets]
|
||||
return f"配置保存成功!{tip}", True, preset_names
|
||||
except Exception as e:
|
||||
return f"保存失败:{str(e)}", False, [p["name"] for p in presets]
|
||||
|
||||
def delete_ref_preset_core(preset_name):
|
||||
"""删除参考预设核心逻辑(返回:提示信息、预设列表、默认选中预设)"""
|
||||
presets = load_ref_presets()
|
||||
preset_name = preset_name.strip()
|
||||
|
||||
if not presets:
|
||||
return "暂无配置可删除!", [], None
|
||||
|
||||
# 获取待删除音频路径
|
||||
target_audio_path = None
|
||||
for p in presets:
|
||||
if p["name"].strip() == preset_name:
|
||||
target_audio_path = p.get("ref_audio_path")
|
||||
break
|
||||
|
||||
# 过滤删除
|
||||
presets = [p for p in presets if p["name"].strip() != preset_name]
|
||||
|
||||
# 写入配置文件
|
||||
try:
|
||||
with open(REF_PRESETS_YAML, "w", encoding="utf-8") as f:
|
||||
yaml.dump(presets, f, indent=4, allow_unicode=True)
|
||||
|
||||
# 删除对应音频
|
||||
if target_audio_path and os.path.exists(target_audio_path):
|
||||
os.unlink(target_audio_path)
|
||||
print(f"同步删除配置对应音频:{target_audio_path}")
|
||||
|
||||
# 清空最后选中记录(若删除的是最后选中的预设)
|
||||
last_selected = read_last_selected_preset()
|
||||
if last_selected and last_selected == preset_name:
|
||||
clear_last_selected_preset()
|
||||
|
||||
preset_names = [p["name"] for p in presets]
|
||||
new_selected = preset_names[0] if preset_names else None
|
||||
tip = "配置删除成功!已同步清理对应音频文件" if preset_names else "配置删除成功!已同步清理对应音频文件,当前无剩余配置"
|
||||
return tip, preset_names, new_selected
|
||||
except Exception as e:
|
||||
return f"删除失败:{str(e)}", [p["name"] for p in presets], preset_name
|
||||
|
||||
# 2.3 参考音频文件管理
|
||||
def get_persistent_audio_path(src_audio_path, preset_name):
|
||||
"""获取音频持久化路径,清理同配置名旧音频"""
|
||||
if not src_audio_path or not os.path.exists(src_audio_path):
|
||||
return None
|
||||
|
||||
# 清理文件名
|
||||
safe_preset_name = sanitize_filename(preset_name)
|
||||
safe_preset_name = safe_preset_name[:MAX_FILENAME_LENGTH]
|
||||
|
||||
# 提取后缀
|
||||
src_suffix = Path(src_audio_path).suffix.lower()
|
||||
if not src_suffix or src_suffix not in [".wav", ".mp3", ".flac", ".ogg", ".m4a"]:
|
||||
src_suffix = ".wav"
|
||||
|
||||
# 计算MD5
|
||||
audio_md5 = get_audio_md5(src_audio_path)
|
||||
dst_filename = f"{safe_preset_name}_{audio_md5}{src_suffix}"
|
||||
dst_path = REF_AUDIO_DIR / dst_filename
|
||||
|
||||
# 清理同配置名旧音频
|
||||
for old_audio in REF_AUDIO_DIR.glob(f"{safe_preset_name}_*"):
|
||||
if old_audio.suffix.lower() in [".wav", ".mp3", ".flac", ".ogg", ".m4a"]:
|
||||
try:
|
||||
old_audio.unlink()
|
||||
except Exception as e:
|
||||
print(f"清理旧音频失败:{e}")
|
||||
|
||||
# 复制新音频
|
||||
try:
|
||||
shutil.copy2(src_audio_path, dst_path)
|
||||
return str(dst_path)
|
||||
except Exception as e:
|
||||
print(f"音频持久化复制失败:{e}")
|
||||
return None
|
||||
|
||||
def clean_unreferenced_audios(presets):
|
||||
"""清理未被任何预设引用的冗余音频"""
|
||||
if not REF_AUDIO_DIR.exists():
|
||||
return
|
||||
|
||||
# 收集已引用音频
|
||||
referenced = set()
|
||||
for preset in presets:
|
||||
audio_path = preset.get("ref_audio_path")
|
||||
if audio_path and os.path.exists(audio_path):
|
||||
referenced.add(Path(audio_path).absolute())
|
||||
|
||||
# 删除未引用音频
|
||||
deleted_count = 0
|
||||
for audio_file in REF_AUDIO_DIR.glob("*"):
|
||||
if audio_file.is_file() and audio_file.suffix.lower() in [".wav", ".mp3", ".flac", ".ogg", ".m4a"]:
|
||||
if audio_file.absolute() not in referenced:
|
||||
try:
|
||||
audio_file.unlink()
|
||||
deleted_count += 1
|
||||
except Exception as e:
|
||||
print(f"清理冗余音频失败:{e}")
|
||||
|
||||
if deleted_count > 0:
|
||||
print(f"清理冗余未引用音频 {deleted_count} 个")
|
||||
|
||||
# ===================== 3. 推理参数持久化(infer_settings.json) =====================
|
||||
def load_infer_settings():
|
||||
"""加载推理参数配置"""
|
||||
ensure_dir_exists(INFER_SETTINGS_JSON.parent)
|
||||
if not INFER_SETTINGS_JSON.exists():
|
||||
return DEFAULT_INFER_SETTINGS
|
||||
try:
|
||||
with open(INFER_SETTINGS_JSON, "r", encoding="utf-8") as f:
|
||||
saved = json.load(f)
|
||||
return {**DEFAULT_INFER_SETTINGS, **saved}
|
||||
except Exception as e:
|
||||
print(f"加载推理参数失败,使用默认值:{e}")
|
||||
return DEFAULT_INFER_SETTINGS
|
||||
|
||||
def save_infer_settings_core(settings):
|
||||
"""保存推理参数核心逻辑(返回:提示信息)"""
|
||||
ensure_dir_exists(INFER_SETTINGS_JSON.parent)
|
||||
try:
|
||||
with open(INFER_SETTINGS_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(settings, f, indent=4, ensure_ascii=False)
|
||||
|
||||
# 精简日志输出
|
||||
print(f"✅ 推理配置保存成功:{INFER_SETTINGS_JSON.absolute()}")
|
||||
return "推理设置保存成功!已覆盖原有配置文件。"
|
||||
except Exception as e:
|
||||
print(f"❌ 推理配置保存失败:{e}")
|
||||
return f"推理设置保存失败:{str(e)}"
|
||||
|
||||
def restore_default_infer_settings_core():
|
||||
"""恢复推理参数默认值核心逻辑(返回:默认参数列表)"""
|
||||
ensure_dir_exists(INFER_SETTINGS_JSON.parent)
|
||||
try:
|
||||
with open(INFER_SETTINGS_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(DEFAULT_INFER_SETTINGS, f, indent=4, ensure_ascii=False)
|
||||
print(f"✅ 推理配置已恢复默认值:{INFER_SETTINGS_JSON.absolute()}")
|
||||
except Exception as e:
|
||||
print(f"❌ 推理配置恢复默认失败:{e}")
|
||||
|
||||
# 返回默认参数(按顺序对应UI组件)
|
||||
return [
|
||||
DEFAULT_INFER_SETTINGS["batch_size"],
|
||||
DEFAULT_INFER_SETTINGS["sample_steps"],
|
||||
DEFAULT_INFER_SETTINGS["fragment_interval"],
|
||||
DEFAULT_INFER_SETTINGS["speed_factor"],
|
||||
DEFAULT_INFER_SETTINGS["top_k"],
|
||||
DEFAULT_INFER_SETTINGS["top_p"],
|
||||
DEFAULT_INFER_SETTINGS["temperature"],
|
||||
DEFAULT_INFER_SETTINGS["repetition_penalty"],
|
||||
DEFAULT_INFER_SETTINGS["how_to_cut"],
|
||||
DEFAULT_INFER_SETTINGS["super_sampling"],
|
||||
DEFAULT_INFER_SETTINGS["parallel_infer"],
|
||||
DEFAULT_INFER_SETTINGS["split_bucket"],
|
||||
DEFAULT_INFER_SETTINGS["seed"],
|
||||
DEFAULT_INFER_SETTINGS["keep_random"]
|
||||
]
|
||||
@ -48,6 +48,8 @@ https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-
|
||||
|
||||
请不要尬黑GPT-SoVITS推理速度慢,谢谢!
|
||||
|
||||
CPU-Optimized Inference Version:https://github.com/baicai-1145/GPT-SoVITS-CPUFast
|
||||
|
||||
**User guide: [简体中文](https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e) | [English](https://rentry.co/GPT-SoVITS-guide#/)**
|
||||
|
||||
## Installation
|
||||
|
||||
@ -594,11 +594,11 @@
|
||||
- 内容: 修复实验名结尾出现空格在win中路径不正确的问题
|
||||
- 类型: 修复
|
||||
- 提交: RVC-Boss
|
||||
- 2025.06.10 [Commit#746cb536](https://github.com/RVC-Boss/GPT-SoVITS/commit/746cb536c68b1fe6ce3ca7e882235375b8a8dd89)
|
||||
- 2025.06.10 [PR#2449](https://github.com/RVC-Boss/GPT-SoVITS/pull/2449)
|
||||
- 内容: 语种分割优化
|
||||
- 类型: 优化
|
||||
- 提交: KamioRinn
|
||||
- 2025.06.11 [Commit#dd2b9253](https://github.com/RVC-Boss/GPT-SoVITS/commit/dd2b9253aabb09db32db7a3344570ed9df043351)
|
||||
- 2025.06.11 [PR#2450](https://github.com/RVC-Boss/GPT-SoVITS/pull/2450)
|
||||
- 内容: 修复并行推理对v2pro支持bug
|
||||
- 类型: 修复
|
||||
- 提交: YYuX-1145
|
||||
@ -606,21 +606,132 @@
|
||||
- 内容: v2pro对ge提取时会出现数值溢出的问题修复
|
||||
- 类型: 修复
|
||||
- 提交: RVC-Boss
|
||||
- 2025.06.11 [Commit#37f5abfc](https://github.com/RVC-Boss/GPT-SoVITS/commit/6fdc67ca83418306f11e90b9139278313ac5c3e9)[Commit#6fdc67ca](https://github.com/RVC-Boss/GPT-SoVITS/commit/37f5abfcb4a6553652235909db2e124b6f8ff3a5)
|
||||
- 2025.06.17 [PR#2464](https://github.com/RVC-Boss/GPT-SoVITS/pull/2464) [PR#2482](https://github.com/RVC-Boss/GPT-SoVITS/pull/2482)
|
||||
- 内容: install.sh逻辑优化
|
||||
- 类型: 优化
|
||||
- 提交: XXXXRT666
|
||||
- 2025.06.27 [Commit#90ebefa7](https://github.com/RVC-Boss/GPT-SoVITS/commit/90ebefa78fd544da36eebe0b2003620879c921b0)
|
||||
- 2025.06.27 [PR#2489](https://github.com/RVC-Boss/GPT-SoVITS/pull/2489)
|
||||
- 内容: onnxruntime加载逻辑优化(对gpu/cpu的判断)
|
||||
- 类型: 优化
|
||||
- 提交: KamioRinn
|
||||
- 2025.06.27 [Commit#6df61f58](https://github.com/RVC-Boss/GPT-SoVITS/commit/6df61f58e4d18d4c2ad9d1eddd6a1bd690034c23)
|
||||
- 2025.06.27 [PR#2488](https://github.com/RVC-Boss/GPT-SoVITS/pull/2488)
|
||||
- 内容: 语言分割及格式化优化
|
||||
- 类型: 优化
|
||||
- 提交: KamioRinn
|
||||
|
||||
## 202507
|
||||
|
||||
- 2025.07.10 [Commit#426e1a2bb](https://github.com/RVC-Boss/GPT-SoVITS/commit/426e1a2bb43614af2479b877c37acfb0591e952f)
|
||||
- 内容: 提升推理进程优先级(修复win11下可能GPU利用率受限的问题)
|
||||
- 类型: 修复
|
||||
- 类型: 优化
|
||||
- 提交: XianYue0125
|
||||
- 2025.07.16 [PR#2490](https://github.com/RVC-Boss/GPT-SoVITS/pull/2490)
|
||||
- 内容: 解决 TTS.py 无法识别真正支持版本 v2Pro、v2ProPlus 的问题, 同时更新一版默认配置。
|
||||
- 类型: 修复
|
||||
- 提交: jiangsier-xyz
|
||||
- 2025.07.16 [Commit#4d8ebf85](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d8ebf85233d4f1166d7cc02fdc595602975ca8f)
|
||||
- 内容: 修复并行推理模式下v2pro模型识别问题
|
||||
- 类型: 修复
|
||||
- 提交: RVC-Boss
|
||||
- 2025.07.17 [PR#2531](https://github.com/RVC-Boss/GPT-SoVITS/pull/2531)
|
||||
- 内容: whisper asr支持性价比更高的distill模型
|
||||
- 类型: 优化
|
||||
- 提交: XXXXRT666
|
||||
- 2025.07.18 [PR#2536](https://github.com/RVC-Boss/GPT-SoVITS/pull/2536)
|
||||
- 内容: 优化TTS_Config的代码逻辑
|
||||
- 类型: 优化
|
||||
- 提交: ChasonJiang
|
||||
- 2025.07.18 [PR#2537](https://github.com/RVC-Boss/GPT-SoVITS/pull/2537)
|
||||
- 内容: 修复gpt的loss计算问题
|
||||
- 类型: 修复
|
||||
- 提交: ChasonJiang
|
||||
|
||||
## 202508
|
||||
|
||||
- 2025.08.02 [PR#2561](https://github.com/RVC-Boss/GPT-SoVITS/pull/2561)
|
||||
- 内容: WSL Rocm
|
||||
- 类型: 修复
|
||||
- 提交: XXXXRT666
|
||||
|
||||
## 202509
|
||||
|
||||
- 2025.09.10 [Commit#11aa78bd](https://github.com/RVC-Boss/GPT-SoVITS/commit/11aa78bd9bda8b53047cfcae03abf7ca94d27391)
|
||||
- 内容: 修复环境变量可能不为str的问题
|
||||
- 类型: 修复
|
||||
- 提交: RVC-Boss
|
||||
|
||||
## 202511
|
||||
|
||||
- 2025.11.28 [PR#2671](https://github.com/RVC-Boss/GPT-SoVITS/pull/2671) [PR#2678](https://github.com/RVC-Boss/GPT-SoVITS/pull/2678)
|
||||
- 内容: 流式推理
|
||||
- 类型: 新功能
|
||||
- 提交: ChasonJiang
|
||||
- 2025.11.28 [PR#2636](https://github.com/RVC-Boss/GPT-SoVITS/pull/2636)
|
||||
- 内容: 数学计算文本前端逻辑优化
|
||||
- 类型: 优化
|
||||
- 提交: KamioRinn
|
||||
- 2025.11.28 [PR#2469](https://github.com/RVC-Boss/GPT-SoVITS/pull/2469)
|
||||
- 内容: 流式推理
|
||||
- 类型: 新功能
|
||||
- 提交: L-jasmine
|
||||
- 2025.11.28 [PR#2577](https://github.com/RVC-Boss/GPT-SoVITS/pull/2577)
|
||||
- 内容: 支持vq分布式训练
|
||||
- 类型: 优化
|
||||
- 提交: wzy3650
|
||||
- 2025.11.28 [PR#2627](https://github.com/RVC-Boss/GPT-SoVITS/pull/2627) [PR#2679](https://github.com/RVC-Boss/GPT-SoVITS/pull/2679)
|
||||
- 内容: ASR模型下载逻辑优化
|
||||
- 类型: 优化
|
||||
- 提交: XXXXRT666
|
||||
- 2025.11.28 [PR#2662](https://github.com/RVC-Boss/GPT-SoVITS/pull/2662)
|
||||
- 内容: default batch size bug 修复
|
||||
- 类型: 修复
|
||||
- 提交: Spr-Aachen
|
||||
|
||||
## 202512
|
||||
|
||||
- 2025.12.30 [PR#2703](https://github.com/RVC-Boss/GPT-SoVITS/pull/2703) [PR#2704](https://github.com/RVC-Boss/GPT-SoVITS/pull/2704)
|
||||
- 内容: 修复采样错误
|
||||
- 类型: 修复
|
||||
- 提交: ChasonJiang
|
||||
|
||||
## 202602
|
||||
|
||||
- 2026.02.08 [PR#2727](https://github.com/RVC-Boss/GPT-SoVITS/pull/2727)
|
||||
- 内容: 修复 Conda 条款未同意导致的构建失败
|
||||
- 类型: 修复
|
||||
- 提交: Oarora
|
||||
- 2026.02.09 [PR#2732](https://github.com/RVC-Boss/GPT-SoVITS/pull/2732)
|
||||
- 内容: 环境自动构建优化
|
||||
- 类型: 优化
|
||||
- 提交: XXXXRT666
|
||||
|
||||
## 202604
|
||||
|
||||
- 2026.04.18 [PR#2763](https://github.com/RVC-Boss/GPT-SoVITS/pull/2763)
|
||||
- 内容: 优化 G2PW 的推理输入构造与多音字处理流程,减少重复计算,降低长句场景下的推理开销
|
||||
- 类型: 优化
|
||||
- 提交: baicai-1145
|
||||
- 2026.04.18 [PR#2767](https://github.com/RVC-Boss/GPT-SoVITS/pull/2767)
|
||||
- 内容: 改进 Windows 单卡 v3 LoRA 训练流程
|
||||
- 类型: 优化
|
||||
- 提交: 2409324124
|
||||
- 2026.04.18 [PR#2755](https://github.com/RVC-Boss/GPT-SoVITS/pull/2755)
|
||||
- 内容: 修复多个模块中的独立 bug
|
||||
- 类型: 修复
|
||||
- 提交: wishhyt
|
||||
- 2026.04.18 [PR#2758](https://github.com/RVC-Boss/GPT-SoVITS/pull/2758)
|
||||
- 内容: 添加数据集的错误处理提示
|
||||
- 类型: 优化
|
||||
- 提交: mushroomcowisheggs
|
||||
- 2026.04.18 [PR#2753](https://github.com/RVC-Boss/GPT-SoVITS/pull/2753)
|
||||
- 内容: 并行推理部分bug修复
|
||||
- 类型: 修复
|
||||
- 提交: wishhyt
|
||||
- 2026.04.18 [PR#2733](https://github.com/RVC-Boss/GPT-SoVITS/pull/2733)
|
||||
- 内容: bug修复:DPO 训练不支持漏字模拟
|
||||
- 类型: 修复
|
||||
- 提交: Mr-Neutr0n
|
||||
- 2026.04.18 [Commit#02425ea](https://github.com/RVC-Boss/GPT-SoVITS/commit/02425ea25680c26c700be0bc158756c69103d827)
|
||||
- 内容: 修复onnx脚本未导入Optional等的问题
|
||||
- 类型: 修复
|
||||
- 提交: RVC-Boss
|
||||
@ -578,3 +578,160 @@
|
||||
- Content: Optimized automatic precision detection logic; added collapsible functionality to WebUI frontend modules.
|
||||
- Type: New Feature
|
||||
- Contributors: XXXXRT666, RVC-Boss
|
||||
- 2025.06.06 [PR#2427](https://github.com/RVC-Boss/GPT-SoVITS/pull/2427)
|
||||
- Content: Fix polyphone detection for "X一X" pattern
|
||||
- Type: Fix
|
||||
- Contributor: wzy3650
|
||||
- 2025.06.05 [PR#2439](https://github.com/RVC-Boss/GPT-SoVITS/pull/2439)
|
||||
- Content: Config fix; fix SoVITS model loading
|
||||
- Type: Fix
|
||||
- Contributor: wzy3650
|
||||
- 2025.06.09 [Commit#8056efe4](https://github.com/RVC-Boss/GPT-SoVITS/commit/8056efe4ab7bbc3610c72ae356a6f37518441f7d)
|
||||
- Content: Fix possible numerical explosion of `ge.sum` causing silent inference
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
- 2025.06.10 [Commit#2c0436b9](https://github.com/RVC-Boss/GPT-SoVITS/commit/2c0436b9ce397424ae03476c836fb64c6e5ebcc6)
|
||||
- Content: Fix incorrect Windows path when experiment name ends with a space
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
- 2025.06.10 [PR#2449](https://github.com/RVC-Boss/GPT-SoVITS/pull/2449)
|
||||
- Content: Optimize language segmentation
|
||||
- Type: Optimization
|
||||
- Contributor: KamioRinn
|
||||
- 2025.06.11 [PR#2450](https://github.com/RVC-Boss/GPT-SoVITS/pull/2450)
|
||||
- Content: Fix bug in parallel inference support for v2pro
|
||||
- Type: Fix
|
||||
- Contributor: YYuX-1145
|
||||
- 2025.06.11 [Commit#ed89a023](https://github.com/RVC-Boss/GPT-SoVITS/commit/ed89a023378dabba9d4b6580235bb9742245816d)
|
||||
- Content: Fix numerical overflow issue when extracting `ge` for v2pro
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
- 2025.06.17 [PR#2464](https://github.com/RVC-Boss/GPT-SoVITS/pull/2464) [PR#2482](https://github.com/RVC-Boss/GPT-SoVITS/pull/2482)
|
||||
- Content: Optimize `install.sh` logic
|
||||
- Type: Optimization
|
||||
- Contributor: XXXXRT666
|
||||
- 2025.06.27 [PR#2489](https://github.com/RVC-Boss/GPT-SoVITS/pull/2489)
|
||||
- Content: Optimize onnxruntime loading logic (GPU/CPU detection)
|
||||
- Type: Optimization
|
||||
- Contributor: KamioRinn
|
||||
- 2025.06.27 [PR#2488](https://github.com/RVC-Boss/GPT-SoVITS/pull/2488)
|
||||
- Content: Optimize language segmentation and formatting
|
||||
- Type: Optimization
|
||||
- Contributor: KamioRinn
|
||||
|
||||
## 202507
|
||||
|
||||
- 2025.07.10 [Commit#426e1a2bb](https://github.com/RVC-Boss/GPT-SoVITS/commit/426e1a2bb43614af2479b877c37acfb0591e952f)
|
||||
- Content: Increase inference process priority (fix possible GPU utilization limitation on Win11)
|
||||
- Type: Optimization
|
||||
- Contributor: XianYue0125
|
||||
- 2025.07.16 [PR#2490](https://github.com/RVC-Boss/GPT-SoVITS/pull/2490)
|
||||
- Content: Fix TTS.py not recognizing actually supported versions v2Pro and v2ProPlus, and update default configuration
|
||||
- Type: Fix
|
||||
- Contributor: jiangsier-xyz
|
||||
- 2025.07.16 [Commit#4d8ebf85](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d8ebf85233d4f1166d7cc02fdc595602975ca8f)
|
||||
- Content: Fix v2pro model recognition issue in parallel inference mode
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
- 2025.07.17 [PR#2531](https://github.com/RVC-Boss/GPT-SoVITS/pull/2531)
|
||||
- Content: Whisper ASR supports more cost-effective distill models
|
||||
- Type: Optimization
|
||||
- Contributor: XXXXRT666
|
||||
- 2025.07.18 [PR#2536](https://github.com/RVC-Boss/GPT-SoVITS/pull/2536)
|
||||
- Content: Optimize `TTS_Config` code logic
|
||||
- Type: Optimization
|
||||
- Contributor: ChasonJiang
|
||||
- 2025.07.18 [PR#2537](https://github.com/RVC-Boss/GPT-SoVITS/pull/2537)
|
||||
- Content: Fix GPT loss calculation issue
|
||||
- Type: Fix
|
||||
- Contributor: ChasonJiang
|
||||
|
||||
## 202508
|
||||
|
||||
- 2025.08.02 [PR#2561](https://github.com/RVC-Boss/GPT-SoVITS/pull/2561)
|
||||
- Content: WSL Rocm
|
||||
- Type: Fix
|
||||
- Contributor: XXXXRT666
|
||||
|
||||
## 202509
|
||||
|
||||
- 2025.09.10 [Commit#11aa78bd](https://github.com/RVC-Boss/GPT-SoVITS/commit/11aa78bd9bda8b53047cfcae03abf7ca94d27391)
|
||||
- Content: Fix issue where environment variable may not be a string
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
|
||||
## 202511
|
||||
|
||||
- 2025.11.28 [PR#2671](https://github.com/RVC-Boss/GPT-SoVITS/pull/2671) [PR#2678](https://github.com/RVC-Boss/GPT-SoVITS/pull/2678)
|
||||
- Content: Streaming inference
|
||||
- Type: New Feature
|
||||
- Contributor: ChasonJiang
|
||||
- 2025.11.28 [PR#2636](https://github.com/RVC-Boss/GPT-SoVITS/pull/2636)
|
||||
- Content: Optimize text frontend logic for mathematical expression text
|
||||
- Type: Optimization
|
||||
- Contributor: KamioRinn
|
||||
- 2025.11.28 [PR#2469](https://github.com/RVC-Boss/GPT-SoVITS/pull/2469)
|
||||
- Content: Streaming inference
|
||||
- Type: New Feature
|
||||
- Contributor: L-jasmine
|
||||
- 2025.11.28 [PR#2577](https://github.com/RVC-Boss/GPT-SoVITS/pull/2577)
|
||||
- Content: Support VQ distributed training
|
||||
- Type: Optimization
|
||||
- Contributor: wzy3650
|
||||
- 2025.11.28 [PR#2627](https://github.com/RVC-Boss/GPT-SoVITS/pull/2627) [PR#2679](https://github.com/RVC-Boss/GPT-SoVITS/pull/2679)
|
||||
- Content: Optimize ASR model download logic
|
||||
- Type: Optimization
|
||||
- Contributor: XXXXRT666
|
||||
- 2025.11.28 [PR#2662](https://github.com/RVC-Boss/GPT-SoVITS/pull/2662)
|
||||
- Content: Fix default batch size bug
|
||||
- Type: Fix
|
||||
- Contributor: Spr-Aachen
|
||||
|
||||
## 202512
|
||||
|
||||
- 2025.12.30 [PR#2703](https://github.com/RVC-Boss/GPT-SoVITS/pull/2703) [PR#2704](https://github.com/RVC-Boss/GPT-SoVITS/pull/2704)
|
||||
- Content: Fix sampling error
|
||||
- Type: Fix
|
||||
- Contributor: ChasonJiang
|
||||
|
||||
## 202602
|
||||
|
||||
- 2026.02.08 [PR#2727](https://github.com/RVC-Boss/GPT-SoVITS/pull/2727)
|
||||
- Content: Fix build failure caused by unaccepted Conda terms
|
||||
- Type: Fix
|
||||
- Contributor: Oarora
|
||||
- 2026.02.09 [PR#2732](https://github.com/RVC-Boss/GPT-SoVITS/pull/2732)
|
||||
- Content: Optimize automatic environment setup
|
||||
- Type: Optimization
|
||||
- Contributor: XXXXRT666
|
||||
|
||||
## 202604
|
||||
|
||||
- 2026.04.18 [PR#2763](https://github.com/RVC-Boss/GPT-SoVITS/pull/2763)
|
||||
- Content: Optimize G2PW inference input construction and polyphone handling to reduce redundant computation and inference overhead for long sentences
|
||||
- Type: Optimization
|
||||
- Contributor: baicai-1145
|
||||
- 2026.04.18 [PR#2767](https://github.com/RVC-Boss/GPT-SoVITS/pull/2767)
|
||||
- Content: Improve the LoRA training flow for GPT-SoVITS v3 on a single card under Windows
|
||||
- Type: Optimization
|
||||
- Contributor: 2409324124
|
||||
- 2026.04.18 [PR#2755](https://github.com/RVC-Boss/GPT-SoVITS/pull/2755)
|
||||
- Content: Fix miscellaneous bugs in multiple modules
|
||||
- Type: Fix
|
||||
- Contributor: wishhyt
|
||||
- 2026.04.18 [PR#2758](https://github.com/RVC-Boss/GPT-SoVITS/pull/2758)
|
||||
- Content: Add error handling hints for dataset processing
|
||||
- Type: Optimization
|
||||
- Contributor: mushroomcowisheggs
|
||||
- 2026.04.18 [PR#2753](https://github.com/RVC-Boss/GPT-SoVITS/pull/2753)
|
||||
- Content: Fix some bugs in parallel inference
|
||||
- Type: Fix
|
||||
- Contributor: wishhyt
|
||||
- 2026.04.18 [PR#2733](https://github.com/RVC-Boss/GPT-SoVITS/pull/2733)
|
||||
- Content: Fix bug where DPO training does not support missing word simulation
|
||||
- Type: Fix
|
||||
- Contributor: Mr-Neutr0n
|
||||
- 2026.04.18 [Commit#02425ea](https://github.com/RVC-Boss/GPT-SoVITS/commit/02425ea25680c26c700be0bc158756c69103d827)
|
||||
- Content: Fix missing imports (e.g., Optional) in ONNX script
|
||||
- Type: Fix
|
||||
- Contributor: RVC-Boss
|
||||
@ -578,3 +578,160 @@
|
||||
- 内容: 自動精度検出ロジックを最適化し、WebUI フロントエンドモジュールに折り畳み(Collapsible)機能を追加
|
||||
- タイプ: 新機能
|
||||
- 貢献者: XXXXRT666, RVC-Boss
|
||||
- 2025.06.06 [PR#2427](https://github.com/RVC-Boss/GPT-SoVITS/pull/2427)
|
||||
- 内容: 「X一X」パターンの多音字検出を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: wzy3650
|
||||
- 2025.06.05 [PR#2439](https://github.com/RVC-Boss/GPT-SoVITS/pull/2439)
|
||||
- 内容: 設定の修正;SoVITSモデル読み込みの修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: wzy3650
|
||||
- 2025.06.09 [Commit#8056efe4](https://github.com/RVC-Boss/GPT-SoVITS/commit/8056efe4ab7bbc3610c72ae356a6f37518441f7d)
|
||||
- 内容: `ge.sum`の数値爆発による推論の無音化を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.06.10 [Commit#2c0436b9](https://github.com/RVC-Boss/GPT-SoVITS/commit/2c0436b9ce397424ae03476c836fb64c6e5ebcc6)
|
||||
- 内容: 実験名がスペースで終わる場合のWindowsパスの誤りを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.06.10 [PR#2449](https://github.com/RVC-Boss/GPT-SoVITS/pull/2449)
|
||||
- 内容: 言語分割の最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: KamioRinn
|
||||
- 2025.06.11 [PR#2450](https://github.com/RVC-Boss/GPT-SoVITS/pull/2450)
|
||||
- 内容: v2proの並列推論対応におけるバグを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: YYuX-1145
|
||||
- 2025.06.11 [Commit#ed89a023](https://github.com/RVC-Boss/GPT-SoVITS/commit/ed89a023378dabba9d4b6580235bb9742245816d)
|
||||
- 内容: v2proの`ge`抽出時の数値オーバーフロー問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.06.17 [PR#2464](https://github.com/RVC-Boss/GPT-SoVITS/pull/2464) [PR#2482](https://github.com/RVC-Boss/GPT-SoVITS/pull/2482)
|
||||
- 内容: `install.sh`のロジックを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.06.27 [PR#2489](https://github.com/RVC-Boss/GPT-SoVITS/pull/2489)
|
||||
- 内容: onnxruntime読み込みロジックを最適化(GPU/CPU検出)
|
||||
- タイプ: 最適化
|
||||
- 貢献者: KamioRinn
|
||||
- 2025.06.27 [PR#2488](https://github.com/RVC-Boss/GPT-SoVITS/pull/2488)
|
||||
- 内容: 言語分割と書式を最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: KamioRinn
|
||||
|
||||
## 202507
|
||||
|
||||
- 2025.07.10 [Commit#426e1a2bb](https://github.com/RVC-Boss/GPT-SoVITS/commit/426e1a2bb43614af2479b877c37acfb0591e952f)
|
||||
- 内容: 推論プロセスの優先度を上げる(Win11でのGPU利用制限の可能性を修正)
|
||||
- タイプ: 最適化
|
||||
- 貢献者: XianYue0125
|
||||
- 2025.07.16 [PR#2490](https://github.com/RVC-Boss/GPT-SoVITS/pull/2490)
|
||||
- 内容: TTS.pyが実際にサポートされているバージョンv2Proおよびv2ProPlusを認識しない問題を修正し、デフォルト設定を更新
|
||||
- タイプ: 修正
|
||||
- 貢献者: jiangsier-xyz
|
||||
- 2025.07.16 [Commit#4d8ebf85](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d8ebf85233d4f1166d7cc02fdc595602975ca8f)
|
||||
- 内容: 並列推論モードでのv2proモデル認識問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.07.17 [PR#2531](https://github.com/RVC-Boss/GPT-SoVITS/pull/2531)
|
||||
- 内容: Whisper ASRがよりコスト効率の高い蒸留モデルをサポート
|
||||
- タイプ: 最適化
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.07.18 [PR#2536](https://github.com/RVC-Boss/GPT-SoVITS/pull/2536)
|
||||
- 内容: `TTS_Config`のコードロジックを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: ChasonJiang
|
||||
- 2025.07.18 [PR#2537](https://github.com/RVC-Boss/GPT-SoVITS/pull/2537)
|
||||
- 内容: GPT損失計算の問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: ChasonJiang
|
||||
|
||||
## 202508
|
||||
|
||||
- 2025.08.02 [PR#2561](https://github.com/RVC-Boss/GPT-SoVITS/pull/2561)
|
||||
- 内容: WSL Rocm対応
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
|
||||
## 202509
|
||||
|
||||
- 2025.09.10 [Commit#11aa78bd](https://github.com/RVC-Boss/GPT-SoVITS/commit/11aa78bd9bda8b53047cfcae03abf7ca94d27391)
|
||||
- 内容: 環境変数が文字列でない可能性がある問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
|
||||
## 202511
|
||||
|
||||
- 2025.11.28 [PR#2671](https://github.com/RVC-Boss/GPT-SoVITS/pull/2671) [PR#2678](https://github.com/RVC-Boss/GPT-SoVITS/pull/2678)
|
||||
- 内容: ストリーミング推論
|
||||
- タイプ: 新機能
|
||||
- 貢献者: ChasonJiang
|
||||
- 2025.11.28 [PR#2636](https://github.com/RVC-Boss/GPT-SoVITS/pull/2636)
|
||||
- 内容: 数式テキストに対するテキスト前処理ロジックを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: KamioRinn
|
||||
- 2025.11.28 [PR#2469](https://github.com/RVC-Boss/GPT-SoVITS/pull/2469)
|
||||
- 内容: ストリーミング推論
|
||||
- タイプ: 新機能
|
||||
- 貢献者: L-jasmine
|
||||
- 2025.11.28 [PR#2577](https://github.com/RVC-Boss/GPT-SoVITS/pull/2577)
|
||||
- 内容: VQ分散学習をサポート
|
||||
- タイプ: 最適化
|
||||
- 貢献者: wzy3650
|
||||
- 2025.11.28 [PR#2627](https://github.com/RVC-Boss/GPT-SoVITS/pull/2627) [PR#2679](https://github.com/RVC-Boss/GPT-SoVITS/pull/2679)
|
||||
- 内容: ASRモデルダウンロードロジックを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.11.28 [PR#2662](https://github.com/RVC-Boss/GPT-SoVITS/pull/2662)
|
||||
- 内容: デフォルトのバッチサイズのバグを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: Spr-Aachen
|
||||
|
||||
## 202512
|
||||
|
||||
- 2025.12.30 [PR#2703](https://github.com/RVC-Boss/GPT-SoVITS/pull/2703) [PR#2704](https://github.com/RVC-Boss/GPT-SoVITS/pull/2704)
|
||||
- 内容: サンプリングエラーを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: ChasonJiang
|
||||
|
||||
## 202602
|
||||
|
||||
- 2026.02.08 [PR#2727](https://github.com/RVC-Boss/GPT-SoVITS/pull/2727)
|
||||
- 内容: 受け入れられなかったConda利用規約によるビルド失敗を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: Oarora
|
||||
- 2026.02.09 [PR#2732](https://github.com/RVC-Boss/GPT-SoVITS/pull/2732)
|
||||
- 内容: 自動環境セットアップを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: XXXXRT666
|
||||
|
||||
## 202604
|
||||
|
||||
- 2026.04.18 [PR#2763](https://github.com/RVC-Boss/GPT-SoVITS/pull/2763)
|
||||
- 内容: G2PW推論入力の構築と多音字処理を最適化し、長文における冗長な計算と推論オーバーヘッドを削減
|
||||
- タイプ: 最適化
|
||||
- 貢献者: baicai-1145
|
||||
- 2026.04.18 [PR#2767](https://github.com/RVC-Boss/GPT-SoVITS/pull/2767)
|
||||
- 内容: WindowsでのシングルカードにおけるGPT-SoVITS v3のLoRAトレーニングフローを改善
|
||||
- タイプ: 最適化
|
||||
- 貢献者: 2409324124
|
||||
- 2026.04.18 [PR#2755](https://github.com/RVC-Boss/GPT-SoVITS/pull/2755)
|
||||
- 内容: 複数モジュールの雑多なバグを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: wishhyt
|
||||
- 2026.04.18 [PR#2758](https://github.com/RVC-Boss/GPT-SoVITS/pull/2758)
|
||||
- 内容: データセット処理時のエラーハンドリングヒントを追加
|
||||
- タイプ: 最適化
|
||||
- 貢献者: mushroomcowisheggs
|
||||
- 2026.04.18 [PR#2753](https://github.com/RVC-Boss/GPT-SoVITS/pull/2753)
|
||||
- 内容: 並列推論の一部バグを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: wishhyt
|
||||
- 2026.04.18 [PR#2733](https://github.com/RVC-Boss/GPT-SoVITS/pull/2733)
|
||||
- 内容: DPOトレーニングが欠落単語シミュレーションをサポートしないバグを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: Mr-Neutr0n
|
||||
- 2026.04.18 [Commit#02425ea](https://github.com/RVC-Boss/GPT-SoVITS/commit/02425ea25680c26c700be0bc158756c69103d827)
|
||||
- 内容: ONNXスクリプトでの(Optionalなどの)不足インポートを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
@ -578,3 +578,160 @@
|
||||
- 내용: 자동 정밀도 감지 로직 최적화; WebUI 프론트엔드 모듈에 접기 기능 추가
|
||||
- 유형: 신규 기능
|
||||
- 기여자: XXXXRT666, RVC-Boss
|
||||
- 2025.06.06 [PR#2427](https://github.com/RVC-Boss/GPT-SoVITS/pull/2427)
|
||||
- 내용: "X一X" 패턴의 다중 발음 감지 오류 수정
|
||||
- 유형: 수정
|
||||
- 기여자: wzy3650
|
||||
- 2025.06.05 [PR#2439](https://github.com/RVC-Boss/GPT-SoVITS/pull/2439)
|
||||
- 내용: 설정 오류 수정; SoVITS 모델 로딩 오류 수정
|
||||
- 유형: 수정
|
||||
- 기여자: wzy3650
|
||||
- 2025.06.09 [Commit#8056efe4](https://github.com/RVC-Boss/GPT-SoVITS/commit/8056efe4ab7bbc3610c72ae356a6f37518441f7d)
|
||||
- 내용: `ge.sum`의 수치 폭발 가능성으로 인한 추론 무음 현상 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
- 2025.06.10 [Commit#2c0436b9](https://github.com/RVC-Boss/GPT-SoVITS/commit/2c0436b9ce397424ae03476c836fb64c6e5ebcc6)
|
||||
- 내용: 실험 이름이 공백으로 끝날 때 발생하는 잘못된 Windows 경로 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
- 2025.06.10 [PR#2449](https://github.com/RVC-Boss/GPT-SoVITS/pull/2449)
|
||||
- 내용: 언어 분할 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: KamioRinn
|
||||
- 2025.06.11 [PR#2450](https://github.com/RVC-Boss/GPT-SoVITS/pull/2450)
|
||||
- 내용: v2pro 병렬 추론 지원 버그 수정
|
||||
- 유형: 수정
|
||||
- 기여자: YYuX-1145
|
||||
- 2025.06.11 [Commit#ed89a023](https://github.com/RVC-Boss/GPT-SoVITS/commit/ed89a023378dabba9d4b6580235bb9742245816d)
|
||||
- 내용: v2pro의 `ge` 추출 시 수치 오버플로우 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
- 2025.06.17 [PR#2464](https://github.com/RVC-Boss/GPT-SoVITS/pull/2464) [PR#2482](https://github.com/RVC-Boss/GPT-SoVITS/pull/2482)
|
||||
- 내용: `install.sh` 로직 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: XXXXRT666
|
||||
- 2025.06.27 [PR#2489](https://github.com/RVC-Boss/GPT-SoVITS/pull/2489)
|
||||
- 내용: onnxruntime 로딩 로직 최적화 (GPU/CPU 감지)
|
||||
- 유형: 최적화
|
||||
- 기여자: KamioRinn
|
||||
- 2025.06.27 [PR#2488](https://github.com/RVC-Boss/GPT-SoVITS/pull/2488)
|
||||
- 내용: 언어 분할 및 형식 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: KamioRinn
|
||||
|
||||
## 202507
|
||||
|
||||
- 2025.07.10 [Commit#426e1a2bb](https://github.com/RVC-Boss/GPT-SoVITS/commit/426e1a2bb43614af2479b877c37acfb0591e952f)
|
||||
- 내용: 추론 프로세스 우선순위 증가 (Win11에서 GPU 활용 제한 가능성 수정)
|
||||
- 유형: 최적화
|
||||
- 기여자: XianYue0125
|
||||
- 2025.07.16 [PR#2490](https://github.com/RVC-Boss/GPT-SoVITS/pull/2490)
|
||||
- 내용: TTS.py가 실제 지원되는 버전 v2Pro 및 v2ProPlus를 인식하지 못하는 문제 수정 및 기본 설정 업데이트
|
||||
- 유형: 수정
|
||||
- 기여자: jiangsier-xyz
|
||||
- 2025.07.16 [Commit#4d8ebf85](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d8ebf85233d4f1166d7cc02fdc595602975ca8f)
|
||||
- 내용: 병렬 추론 모드에서 v2pro 모델 인식 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
- 2025.07.17 [PR#2531](https://github.com/RVC-Boss/GPT-SoVITS/pull/2531)
|
||||
- 내용: Whisper ASR이 더 비용 효율적인 distill 모델 지원
|
||||
- 유형: 최적화
|
||||
- 기여자: XXXXRT666
|
||||
- 2025.07.18 [PR#2536](https://github.com/RVC-Boss/GPT-SoVITS/pull/2536)
|
||||
- 내용: `TTS_Config` 코드 로직 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: ChasonJiang
|
||||
- 2025.07.18 [PR#2537](https://github.com/RVC-Boss/GPT-SoVITS/pull/2537)
|
||||
- 내용: GPT 손실(loss) 계산 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: ChasonJiang
|
||||
|
||||
## 202508
|
||||
|
||||
- 2025.08.02 [PR#2561](https://github.com/RVC-Boss/GPT-SoVITS/pull/2561)
|
||||
- 내용: WSL Rocm
|
||||
- 유형: 수정
|
||||
- 기여자: XXXXRT666
|
||||
|
||||
## 202509
|
||||
|
||||
- 2025.09.10 [Commit#11aa78bd](https://github.com/RVC-Boss/GPT-SoVITS/commit/11aa78bd9bda8b53047cfcae03abf7ca94d27391)
|
||||
- 내용: 환경 변수가 문자열이 아닐 수 있는 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
|
||||
## 202511
|
||||
|
||||
- 2025.11.28 [PR#2671](https://github.com/RVC-Boss/GPT-SoVITS/pull/2671) [PR#2678](https://github.com/RVC-Boss/GPT-SoVITS/pull/2678)
|
||||
- 내용: 스트리밍 추론
|
||||
- 유형: 새 기능
|
||||
- 기여자: ChasonJiang
|
||||
- 2025.11.28 [PR#2636](https://github.com/RVC-Boss/GPT-SoVITS/pull/2636)
|
||||
- 내용: 수학 표현식 텍스트에 대한 텍스트 전처리 로직 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: KamioRinn
|
||||
- 2025.11.28 [PR#2469](https://github.com/RVC-Boss/GPT-SoVITS/pull/2469)
|
||||
- 내용: 스트리밍 추론
|
||||
- 유형: 새 기능
|
||||
- 기여자: L-jasmine
|
||||
- 2025.11.28 [PR#2577](https://github.com/RVC-Boss/GPT-SoVITS/pull/2577)
|
||||
- 내용: VQ 분산 학습 지원
|
||||
- 유형: 최적화
|
||||
- 기여자: wzy3650
|
||||
- 2025.11.28 [PR#2627](https://github.com/RVC-Boss/GPT-SoVITS/pull/2627) [PR#2679](https://github.com/RVC-Boss/GPT-SoVITS/pull/2679)
|
||||
- 내용: ASR 모델 다운로드 로직 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: XXXXRT666
|
||||
- 2025.11.28 [PR#2662](https://github.com/RVC-Boss/GPT-SoVITS/pull/2662)
|
||||
- 내용: 기본 배치 크기 버그 수정
|
||||
- 유형: 수정
|
||||
- 기여자: Spr-Aachen
|
||||
|
||||
## 202512
|
||||
|
||||
- 2025.12.30 [PR#2703](https://github.com/RVC-Boss/GPT-SoVITS/pull/2703) [PR#2704](https://github.com/RVC-Boss/GPT-SoVITS/pull/2704)
|
||||
- 내용: 샘플링 오류 수정
|
||||
- 유형: 수정
|
||||
- 기여자: ChasonJiang
|
||||
|
||||
## 202602
|
||||
|
||||
- 2026.02.08 [PR#2727](https://github.com/RVC-Boss/GPT-SoVITS/pull/2727)
|
||||
- 내용: Conda 약관 미동의로 인한 빌드 실패 수정
|
||||
- 유형: 수정
|
||||
- 기여자: Oarora
|
||||
- 2026.02.09 [PR#2732](https://github.com/RVC-Boss/GPT-SoVITS/pull/2732)
|
||||
- 내용: 자동 환경 설정 최적화
|
||||
- 유형: 최적화
|
||||
- 기여자: XXXXRT666
|
||||
|
||||
## 202604
|
||||
|
||||
- 2026.04.18 [PR#2763](https://github.com/RVC-Boss/GPT-SoVITS/pull/2763)
|
||||
- 내용: G2PW 추론 입력 구성 및 다중 발음 처리를 최적화하여 긴 문장에 대한 중복 계산 및 추론 오버헤드 감소
|
||||
- 유형: 최적화
|
||||
- 기여자: baicai-1145
|
||||
- 2026.04.18 [PR#2767](https://github.com/RVC-Boss/GPT-SoVITS/pull/2767)
|
||||
- 내용: Windows 환경 단일 GPU에서 GPT-SoVITS v3의 LoRA 학습 흐름 개선
|
||||
- 유형: 최적화
|
||||
- 기여자: 2409324124
|
||||
- 2026.04.18 [PR#2755](https://github.com/RVC-Boss/GPT-SoVITS/pull/2755)
|
||||
- 내용: 여러 모듈의 잡다한 버그 수정
|
||||
- 유형: 수정
|
||||
- 기여자: wishhyt
|
||||
- 2026.04.18 [PR#2758](https://github.com/RVC-Boss/GPT-SoVITS/pull/2758)
|
||||
- 내용: 데이터셋 처리를 위한 오류 처리 힌트 추가
|
||||
- 유형: 최적화
|
||||
- 기여자: mushroomcowisheggs
|
||||
- 2026.04.18 [PR#2753](https://github.com/RVC-Boss/GPT-SoVITS/pull/2753)
|
||||
- 내용: 병렬 추론의 일부 버그 수정
|
||||
- 유형: 수정
|
||||
- 기여자: wishhyt
|
||||
- 2026.04.18 [PR#2733](https://github.com/RVC-Boss/GPT-SoVITS/pull/2733)
|
||||
- 내용: DPO 학습이 누락 단어 시뮬레이션을 지원하지 않는 버그 수정
|
||||
- 유형: 수정
|
||||
- 기여자: Mr-Neutr0n
|
||||
- 2026.04.18 [Commit#02425ea](https://github.com/RVC-Boss/GPT-SoVITS/commit/02425ea25680c26c700be0bc158756c69103d827)
|
||||
- 내용: ONNX 스크립트에서 Optional 등 누락된 임포트 문제 수정
|
||||
- 유형: 수정
|
||||
- 기여자: RVC-Boss
|
||||
@ -2,8 +2,6 @@
|
||||
|
||||
## 202401
|
||||
|
||||
## 202401
|
||||
|
||||
- 2024.01.21 [PR#108](https://github.com/RVC-Boss/GPT-SoVITS/pull/108)
|
||||
- İçerik: WebUI'ya İngilizce sistem çeviri desteği eklendi.
|
||||
- Tür: Dokümantasyon
|
||||
@ -332,6 +330,8 @@
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: RVC-Boss, GoHomeToMacDonal
|
||||
- İlgili: [PR#672](https://github.com/RVC-Boss/GPT-SoVITS/pull/672)
|
||||
- Gelecek güncellemeler, `fast_inference` dalındaki değişikliklerin tutarlılığını doğrulamaya devam edecek.
|
||||
|
||||
- 2024.07.13 [PR#1294](https://github.com/RVC-Boss/GPT-SoVITS/pull/1294), [PR#1298](https://github.com/RVC-Boss/GPT-SoVITS/pull/1298)
|
||||
- İçerik: i18n taraması yeniden düzenlendi ve çok dilli yapılandırma dosyaları güncellendi
|
||||
- Tür: Dokümantasyon
|
||||
@ -578,3 +578,160 @@
|
||||
- İçerik: Otomatik hassasiyet algılama mantığı optimize edildi; WebUI önyüz modüllerine katlanabilir özellik eklendi
|
||||
- Tür: Yeni Özellik
|
||||
- Katkıda Bulunanlar: XXXXRT666, RVC-Boss
|
||||
- 2025.06.06 [PR#2427](https://github.com/RVC-Boss/GPT-SoVITS/pull/2427)
|
||||
- İçerik: "X一X" kalıbı için çok sesli harf tespitini düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: wzy3650
|
||||
- 2025.06.05 [PR#2439](https://github.com/RVC-Boss/GPT-SoVITS/pull/2439)
|
||||
- İçerik: Yapılandırma düzeltmesi; SoVITS model yüklemesini düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: wzy3650
|
||||
- 2025.06.09 [Commit#8056efe4](https://github.com/RVC-Boss/GPT-SoVITS/commit/8056efe4ab7bbc3610c72ae356a6f37518441f7d)
|
||||
- İçerik: `ge.sum` kaynaklı olası sayısal patlamayı (sessiz çıkarıma yol açan) düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
- 2025.06.10 [Commit#2c0436b9](https://github.com/RVC-Boss/GPT-SoVITS/commit/2c0436b9ce397424ae03476c836fb64c6e5ebcc6)
|
||||
- İçerik: Deney adı boşlukla bittiğinde oluşan hatalı Windows yolunu düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
- 2025.06.10 [PR#2449](https://github.com/RVC-Boss/GPT-SoVITS/pull/2449)
|
||||
- İçerik: Dil bölütlemeyi optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: KamioRinn
|
||||
- 2025.06.11 [PR#2450](https://github.com/RVC-Boss/GPT-SoVITS/pull/2450)
|
||||
- İçerik: v2pro için paralel çıkarım desteğindeki hatayı düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: YYuX-1145
|
||||
- 2025.06.11 [Commit#ed89a023](https://github.com/RVC-Boss/GPT-SoVITS/commit/ed89a023378dabba9d4b6580235bb9742245816d)
|
||||
- İçerik: v2pro için `ge` çıkarımındaki sayısal taşma sorununu düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
- 2025.06.17 [PR#2464](https://github.com/RVC-Boss/GPT-SoVITS/pull/2464) [PR#2482](https://github.com/RVC-Boss/GPT-SoVITS/pull/2482)
|
||||
- İçerik: `install.sh` mantığını optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: XXXXRT666
|
||||
- 2025.06.27 [PR#2489](https://github.com/RVC-Boss/GPT-SoVITS/pull/2489)
|
||||
- İçerik: onnxruntime yükleme mantığını optimize et (GPU/CPU algılama)
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: KamioRinn
|
||||
- 2025.06.27 [PR#2488](https://github.com/RVC-Boss/GPT-SoVITS/pull/2488)
|
||||
- İçerik: Dil bölütleme ve biçimlendirmeyi optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: KamioRinn
|
||||
|
||||
## 202507
|
||||
|
||||
- 2025.07.10 [Commit#426e1a2bb](https://github.com/RVC-Boss/GPT-SoVITS/commit/426e1a2bb43614af2479b877c37acfb0591e952f)
|
||||
- İçerik: Çıkarım işlem önceliğini artır (Win11'de olası GPU kullanım sınırlamasını düzelt)
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: XianYue0125
|
||||
- 2025.07.16 [PR#2490](https://github.com/RVC-Boss/GPT-SoVITS/pull/2490)
|
||||
- İçerik: TTS.py'nin gerçekte desteklenen sürümler olan v2Pro ve v2ProPlus'ı tanımaması sorununu düzelt ve varsayılan yapılandırmayı güncelle
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: jiangsier-xyz
|
||||
- 2025.07.16 [Commit#4d8ebf85](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d8ebf85233d4f1166d7cc02fdc595602975ca8f)
|
||||
- İçerik: Paralel çıkarım modunda v2pro model tanıma sorununu düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
- 2025.07.17 [PR#2531](https://github.com/RVC-Boss/GPT-SoVITS/pull/2531)
|
||||
- İçerik: Whisper ASR daha uygun maliyetli distill modellerini destekler
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: XXXXRT666
|
||||
- 2025.07.18 [PR#2536](https://github.com/RVC-Boss/GPT-SoVITS/pull/2536)
|
||||
- İçerik: `TTS_Config` kod mantığını optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: ChasonJiang
|
||||
- 2025.07.18 [PR#2537](https://github.com/RVC-Boss/GPT-SoVITS/pull/2537)
|
||||
- İçerik: GPT kayıp (loss) hesaplama sorununu düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: ChasonJiang
|
||||
|
||||
## 202508
|
||||
|
||||
- 2025.08.02 [PR#2561](https://github.com/RVC-Boss/GPT-SoVITS/pull/2561)
|
||||
- İçerik: WSL Rocm
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: XXXXRT666
|
||||
|
||||
## 202509
|
||||
|
||||
- 2025.09.10 [Commit#11aa78bd](https://github.com/RVC-Boss/GPT-SoVITS/commit/11aa78bd9bda8b53047cfcae03abf7ca94d27391)
|
||||
- İçerik: Ortam değişkeninin dize (string) olmaması sorununu düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
|
||||
## 202511
|
||||
|
||||
- 2025.11.28 [PR#2671](https://github.com/RVC-Boss/GPT-SoVITS/pull/2671) [PR#2678](https://github.com/RVC-Boss/GPT-SoVITS/pull/2678)
|
||||
- İçerik: Akışlı çıkarım (streaming inference)
|
||||
- Tür: Yeni Özellik
|
||||
- Katkıda Bulunan: ChasonJiang
|
||||
- 2025.11.28 [PR#2636](https://github.com/RVC-Boss/GPT-SoVITS/pull/2636)
|
||||
- İçerik: Matematiksel ifade metinleri için metin ön uç (frontend) mantığını optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: KamioRinn
|
||||
- 2025.11.28 [PR#2469](https://github.com/RVC-Boss/GPT-SoVITS/pull/2469)
|
||||
- İçerik: Akışlı çıkarım (streaming inference)
|
||||
- Tür: Yeni Özellik
|
||||
- Katkıda Bulunan: L-jasmine
|
||||
- 2025.11.28 [PR#2577](https://github.com/RVC-Boss/GPT-SoVITS/pull/2577)
|
||||
- İçerik: VQ dağıtılmış eğitimi destekle
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: wzy3650
|
||||
- 2025.11.28 [PR#2627](https://github.com/RVC-Boss/GPT-SoVITS/pull/2627) [PR#2679](https://github.com/RVC-Boss/GPT-SoVITS/pull/2679)
|
||||
- İçerik: ASR model indirme mantığını optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: XXXXRT666
|
||||
- 2025.11.28 [PR#2662](https://github.com/RVC-Boss/GPT-SoVITS/pull/2662)
|
||||
- İçerik: Varsayılan parti boyutu (batch size) hatasını düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: Spr-Aachen
|
||||
|
||||
## 202512
|
||||
|
||||
- 2025.12.30 [PR#2703](https://github.com/RVC-Boss/GPT-SoVITS/pull/2703) [PR#2704](https://github.com/RVC-Boss/GPT-SoVITS/pull/2704)
|
||||
- İçerik: Örnekleme (sampling) hatasını düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: ChasonJiang
|
||||
|
||||
## 202602
|
||||
|
||||
- 2026.02.08 [PR#2727](https://github.com/RVC-Boss/GPT-SoVITS/pull/2727)
|
||||
- İçerik: Kabul edilmeyen Conda koşullarının neden olduğu derleme hatasını düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: Oarora
|
||||
- 2026.02.09 [PR#2732](https://github.com/RVC-Boss/GPT-SoVITS/pull/2732)
|
||||
- İçerik: Otomatik ortam kurulumunu optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: XXXXRT666
|
||||
|
||||
# 202604
|
||||
|
||||
- 2026.04.18 [PR#2763](https://github.com/RVC-Boss/GPT-SoVITS/pull/2763)
|
||||
- İçerik: Uzun cümlelerde gereksiz hesaplama ve çıkarım yükünü azaltmak için G2PW çıkarım girdi oluşturmayı ve çok sesli harf işlemeyi optimize et
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: baicai-1145
|
||||
- 2026.04.18 [PR#2767](https://github.com/RVC-Boss/GPT-SoVITS/pull/2767)
|
||||
- İçerik: Windows altında tek kartta GPT-SoVITS v3 için LoRA eğitim akışını iyileştir
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: 2409324124
|
||||
- 2026.04.18 [PR#2755](https://github.com/RVC-Boss/GPT-SoVITS/pull/2755)
|
||||
- İçerik: Birden çok modüldeki çeşitli hataları düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: wishhyt
|
||||
- 2026.04.18 [PR#2758](https://github.com/RVC-Boss/GPT-SoVITS/pull/2758)
|
||||
- İçerik: Veri kümesi işleme için hata işleme ipuçları ekle
|
||||
- Tür: Optimizasyon
|
||||
- Katkıda Bulunan: mushroomcowisheggs
|
||||
- 2026.04.18 [PR#2753](https://github.com/RVC-Boss/GPT-SoVITS/pull/2753)
|
||||
- İçerik: Paralel çıkarımdaki bazı hataları düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: wishhyt
|
||||
- 2026.04.18 [PR#2733](https://github.com/RVC-Boss/GPT-SoVITS/pull/2733)
|
||||
- İçerik: DPO eğitiminin eksik kelime simülasyonunu desteklememe hatasını düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: Mr-Neutr0n
|
||||
- 2026.04.18 [Commit#02425ea](https://github.com/RVC-Boss/GPT-SoVITS/commit/02425ea25680c26c700be0bc158756c69103d827)
|
||||
- İçerik: ONNX betiğinde (Optional vb.) eksik içe aktarmaları düzelt
|
||||
- Tür: Düzeltme
|
||||
- Katkıda Bulunan: RVC-Boss
|
||||
33
gowebui_batched_infer.bat
Normal file
33
gowebui_batched_infer.bat
Normal file
@ -0,0 +1,33 @@
|
||||
@echo off
|
||||
:: 1. 切换命令行编码为UTF-8,解决中文显示乱码(必须放在最前面)
|
||||
chcp 65001 > nul
|
||||
|
||||
:: 2. 获取当前bat文件所在目录并格式化
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
|
||||
:: 3. 切换到脚本根目录
|
||||
cd /d "%SCRIPT_DIR%"
|
||||
|
||||
:: 4. 创建专属TEMP目录(补充主页面的核心步骤)
|
||||
if not exist "TEMP" md "TEMP"
|
||||
set "TEMP=%SCRIPT_DIR%\TEMP"
|
||||
|
||||
:: 5. 设置核心环境变量(补充推理脚本依赖的配置)
|
||||
set "version=v2Pro"
|
||||
:: 语言配置
|
||||
set "language=zh_CN"
|
||||
:: 启用半精度推理(GPU用户推荐,CPU用户改为False)
|
||||
set "is_half=True"
|
||||
:: 指定GPU卡号(多卡可修改,无GPU则删除此行)
|
||||
set "_CUDA_VISIBLE_DEVICES=0"
|
||||
|
||||
:: 6. 将runtime目录加入环境变量,确保能调用内置python
|
||||
set "PATH=%SCRIPT_DIR%\runtime;%PATH%"
|
||||
|
||||
:: 7. 直接启动并行推理脚本,传入中文语言参数
|
||||
echo 正在启动GPT-SoVITS并行推理页面...
|
||||
runtime\python.exe -I GPT_SoVITS/inference_webui_fast.py zh_CN
|
||||
|
||||
:: 8. 执行完成后暂停,便于查看报错信息
|
||||
pause
|
||||
Loading…
x
Reference in New Issue
Block a user