mirror of
https://github.com/RVC-Boss/GPT-SoVITS.git
synced 2026-07-04 21:11:11 +08:00
.
This commit is contained in:
parent
6bea410296
commit
1721760d9e
@ -147,5 +147,5 @@ class T2SSessionMLX:
|
||||
)
|
||||
attn_mask[bs, pos:seq_len, pos:seq_len] = ar_mask
|
||||
|
||||
attn_mask = mx.repeat(mx.expand_dims(attn_mask, 1), decoder.n_head, 1)
|
||||
attn_mask = mx.expand_dims(attn_mask, 1)
|
||||
self.attn_mask = attn_mask
|
||||
|
||||
@ -29,7 +29,7 @@ class T2SEngine(T2SEngineProtocol):
|
||||
if isinstance(device, str):
|
||||
match device:
|
||||
case "mx.cpu":
|
||||
device = mx.Device(mx.cpu)
|
||||
device = mx.Device(mx.cpu) if not mx.metal.is_available() else mx.Device(mx.gpu)
|
||||
case "mx.gpu":
|
||||
device = mx.Device(mx.gpu)
|
||||
device = cast(mx.Device, device)
|
||||
@ -57,6 +57,7 @@ class T2SEngine(T2SEngineProtocol):
|
||||
self.decoder_model.compile()
|
||||
|
||||
def _handle_request(self, request: T2SRequest):
|
||||
mx.clear_cache()
|
||||
decoder = self.decoder_model
|
||||
session = T2SSessionMLX(decoder, request, device=self.device, dtype=self.dtype)
|
||||
batch_idx = mx.arange(session.bsz)
|
||||
@ -195,7 +196,6 @@ class T2SEngine(T2SEngineProtocol):
|
||||
result_mlx = session.y_results[: request.valid_length]
|
||||
mx.eval(result_mlx)
|
||||
result = [torch.tensor(k) for k in result_mlx]
|
||||
mx.clear_cache()
|
||||
|
||||
if debug:
|
||||
timer.summary()
|
||||
|
||||
@ -420,7 +420,6 @@ class T2SDecoderABC(nn.Module, T2SDecoderProtocol):
|
||||
range_tensor = mx.arange(self.max_seq_length).reshape(1, 1, 1, self.max_seq_length)
|
||||
prefill_len_expanded = prefill_len.reshape(bsz, 1, 1, 1)
|
||||
attn_mask = range_tensor < prefill_len_expanded
|
||||
attn_mask = mx.repeat(attn_mask, self.n_head, 1)
|
||||
|
||||
session.attn_mask = attn_mask
|
||||
|
||||
|
||||
@ -103,7 +103,6 @@ class T2SDecoder(T2SDecoderABC):
|
||||
range_tensor = torch.arange(self.max_seq_length).view(1, 1, 1, self.max_seq_length)
|
||||
prefill_len_expanded = prefill_len.view(bsz, 1, 1, 1)
|
||||
attn_mask = range_tensor < prefill_len_expanded
|
||||
attn_mask = attn_mask.expand(-1, self.n_head, -1, -1)
|
||||
|
||||
session.attn_mask = attn_mask
|
||||
|
||||
|
||||
@ -118,7 +118,6 @@ class T2SDecoder(T2SDecoderABC):
|
||||
range_tensor = torch.arange(self.max_seq_length).view(1, 1, 1, self.max_seq_length)
|
||||
prefill_len_expanded = prefill_len.view(bsz, 1, 1, 1)
|
||||
attn_mask = range_tensor < prefill_len_expanded
|
||||
attn_mask = attn_mask.expand(-1, self.n_head, -1, -1)
|
||||
|
||||
session.attn_mask = attn_mask
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ class T2SSession:
|
||||
|
||||
# Forward args
|
||||
self.x = [i.to(device) for i in request.x]
|
||||
self.x_lens = request.x_lens.to(torch.int32)
|
||||
self.x_lens = request.x_lens.to(device, torch.int32)
|
||||
self.y = torch.zeros((bsz, decoder.max_seq_length)).to(torch.int32)
|
||||
self.y[:, : request.prompts.shape[-1]] = request.prompts
|
||||
self.bert_feature = [i.to(device, dtype) for i in request.bert_feature]
|
||||
@ -144,7 +144,7 @@ class T2SSession:
|
||||
attn_mask[bs, pos:seq_len, pos:seq_len] = ar_mask
|
||||
|
||||
self.attn_mask = attn_mask
|
||||
self.attn_mask = attn_mask.unsqueeze(0).expand(-1, decoder.n_head, -1, -1)
|
||||
self.attn_mask = attn_mask.unsqueeze(1)
|
||||
|
||||
self.id: int = -1
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ class T2SEngine(T2SEngineProtocol):
|
||||
assert device.type in {"cpu", "cuda", "mps", "xpu", "mtia"}
|
||||
assert dtype in {torch.float16, torch.bfloat16, torch.float32}
|
||||
|
||||
self.device = device
|
||||
self.device = device if device.type != "mps" else torch.device("cpu")
|
||||
self.dtype = dtype
|
||||
|
||||
self.decoder_model: T2SDecoderABC = decoder_model.to(self.device, self.dtype)
|
||||
@ -61,11 +61,11 @@ class T2SEngine(T2SEngineProtocol):
|
||||
) as progress,
|
||||
):
|
||||
torch_profiler.start()
|
||||
max_token = min(int(1500 - session.input_pos.max()), 1000)
|
||||
max_token = min(int(1500 - session.input_pos.max()), 1000) * session.bsz
|
||||
task = progress.add_task("T2S Decoding", total=max_token)
|
||||
|
||||
for idx in range(max_token):
|
||||
progress.update(task, advance=1)
|
||||
progress.update(task, advance=session.bsz)
|
||||
if idx == 0:
|
||||
with torch_profiler.record("Prefill"), timer("Torch.Prefill", debug=debug):
|
||||
session.kv_cache = decoder.init_cache(session.bsz)
|
||||
@ -128,7 +128,7 @@ class T2SEngine(T2SEngineProtocol):
|
||||
|
||||
if newly_done_indices.numel() > 0:
|
||||
for i in newly_done_indices:
|
||||
session.y_results[i] = session.y[i, session.y_len : session.y_len + idx]
|
||||
session.y_results[i] = session.y[i, session.y_len : session.y_len + idx].squeeze(0)
|
||||
session.completed[newly_done_indices] = True
|
||||
|
||||
if torch.all(session.completed).item():
|
||||
@ -145,7 +145,9 @@ class T2SEngine(T2SEngineProtocol):
|
||||
if (request.early_stop_num != -1 and idx >= request.early_stop_num) or idx == max_token - 1:
|
||||
for i in range(session.bsz):
|
||||
if not session.completed[i].item():
|
||||
session.y_results[i] = session.y[[i], session.y_len : session.y_len + idx]
|
||||
session.y_results[i] = session.y[[i], session.y_len : session.y_len + idx].squeeze(
|
||||
0
|
||||
)
|
||||
session.completed[i] = True
|
||||
logger.error("Bad Full Prediction")
|
||||
infer_time = time.perf_counter() - t1
|
||||
|
||||
@ -308,7 +308,7 @@ class AttentionABC(nn.Module, ABC):
|
||||
|
||||
attn = F.scaled_dot_product_attention(q, k, v, attn_mask)
|
||||
|
||||
attn = attn.transpose(1, 2).contiguous().view(1, -1, self.hidden_dim)
|
||||
attn = attn.transpose(1, 2).contiguous().view(bsz, seqlen, -1)
|
||||
|
||||
output = self.out_proj(attn)
|
||||
|
||||
|
||||
@ -1,15 +1,14 @@
|
||||
import asyncio
|
||||
import gc
|
||||
import math
|
||||
import os
|
||||
import random
|
||||
import time
|
||||
import traceback
|
||||
import warnings
|
||||
from copy import deepcopy
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import ffmpeg
|
||||
import librosa
|
||||
import numpy as np
|
||||
import torch
|
||||
@ -17,10 +16,11 @@ import torch.nn.functional as F
|
||||
import torchaudio
|
||||
import yaml
|
||||
from peft import LoraConfig, get_peft_model
|
||||
from rich.table import Table
|
||||
from tqdm import tqdm
|
||||
from transformers import AutoModelForMaskedLM, AutoTokenizer
|
||||
|
||||
from GPT_SoVITS.Accelerate import MLX, PyTorch, T2SEngineProtocol, T2SRequest, backends, console
|
||||
from GPT_SoVITS.Accelerate import MLX, PyTorch, T2SEngineProtocol, T2SRequest, backends, console, logger
|
||||
from GPT_SoVITS.BigVGAN.bigvgan import BigVGAN
|
||||
from GPT_SoVITS.feature_extractor.cnhubert import CNHubert
|
||||
from GPT_SoVITS.module.mel_processing import mel_spectrogram_torch, spectrogram_torch
|
||||
@ -33,8 +33,6 @@ from tools.audio_sr import AP_BWE
|
||||
from tools.i18n.i18n import I18nAuto
|
||||
from tools.my_utils import DictToAttrRecursive
|
||||
|
||||
now_dir = os.getcwd()
|
||||
|
||||
resample_transform_dict = {}
|
||||
v3v4set = {"v3", "v4"}
|
||||
|
||||
@ -99,27 +97,6 @@ def mel_fn_v4(x):
|
||||
)
|
||||
|
||||
|
||||
def speed_change(input_audio: np.ndarray, speed: float, sr: int):
|
||||
# 将 NumPy 数组转换为原始 PCM 流
|
||||
raw_audio = input_audio.astype(np.int16).tobytes()
|
||||
|
||||
# 设置 ffmpeg 输入流
|
||||
input_stream = ffmpeg.input("pipe:", format="s16le", acodec="pcm_s16le", ar=str(sr), ac=1)
|
||||
|
||||
# 变速处理
|
||||
output_stream = input_stream.filter("atempo", speed)
|
||||
|
||||
# 输出流到管道
|
||||
out, _ = output_stream.output("pipe:", format="s16le", acodec="pcm_s16le").run(
|
||||
input=raw_audio, capture_stdout=True, capture_stderr=True
|
||||
)
|
||||
|
||||
# 将管道输出解码为 NumPy 数组
|
||||
processed_audio = np.frombuffer(out, np.int16)
|
||||
|
||||
return processed_audio
|
||||
|
||||
|
||||
class NO_PROMPT_ERROR(Exception):
|
||||
pass
|
||||
|
||||
@ -362,16 +339,22 @@ class TTS_Config:
|
||||
self.version = version
|
||||
self.languages = self.v1_languages if self.version == "v1" else self.v2_languages
|
||||
|
||||
def __str__(self):
|
||||
def print(self):
|
||||
self.configs = self.update_configs()
|
||||
string = "TTS Config".center(100, "-") + "\n"
|
||||
|
||||
table = Table(title="TTS Config", title_style="bold cyan", show_lines=True)
|
||||
|
||||
table.add_column("Key", style="yellow", no_wrap=True)
|
||||
table.add_column("Value", style="cyan")
|
||||
|
||||
for k, v in self.configs.items():
|
||||
string += f"{str(k).ljust(20)}: {str(v)}\n"
|
||||
string += "-" * 100 + "\n"
|
||||
return string
|
||||
table.add_row(str(k), str(v))
|
||||
|
||||
console.print(table)
|
||||
|
||||
def __repr__(self):
|
||||
return self.__str__()
|
||||
self.print()
|
||||
return ""
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.configs_path)
|
||||
@ -381,7 +364,7 @@ class TTS_Config:
|
||||
|
||||
|
||||
class TTS:
|
||||
def __init__(self, configs: dict | str | TTS_Config):
|
||||
def __init__(self, configs: dict | str | TTS_Config, ar_backend: str = backends[-1], quantization: Any = None):
|
||||
if isinstance(configs, TTS_Config):
|
||||
self.configs = configs
|
||||
else:
|
||||
@ -420,6 +403,9 @@ class TTS:
|
||||
self.stop_flag: bool = False
|
||||
self.precision: torch.dtype = torch.float16 if self.configs.is_half else torch.float32
|
||||
|
||||
self.backend: str = ar_backend
|
||||
self.quantization: Any = quantization
|
||||
|
||||
self._init_models()
|
||||
|
||||
self.text_preprocessor: TextPreprocessor = TextPreprocessor(
|
||||
@ -436,7 +422,7 @@ class TTS:
|
||||
# self.enable_half_precision(self.configs.is_half)
|
||||
|
||||
def init_cnhuhbert_weights(self, base_path: str):
|
||||
print(f"Loading CNHuBERT weights from {base_path}")
|
||||
logger.info(f"Loading CNHuBERT weights from {base_path}")
|
||||
self.cnhuhbert_model = CNHubert(base_path)
|
||||
self.cnhuhbert_model = self.cnhuhbert_model.eval()
|
||||
self.cnhuhbert_model = self.cnhuhbert_model.to(self.configs.device)
|
||||
@ -444,7 +430,7 @@ class TTS:
|
||||
self.cnhuhbert_model = self.cnhuhbert_model.half()
|
||||
|
||||
def init_bert_weights(self, base_path: str):
|
||||
print(f"Loading BERT weights from {base_path}")
|
||||
logger.info(f"Loading BERT weights from {base_path}")
|
||||
self.bert_tokenizer = AutoTokenizer.from_pretrained(base_path)
|
||||
self.bert_model = AutoModelForMaskedLM.from_pretrained(base_path)
|
||||
self.bert_model = self.bert_model.eval()
|
||||
@ -460,7 +446,7 @@ class TTS:
|
||||
path_sovits: str = self.configs.default_configs[model_version]["vits_weights_path"]
|
||||
|
||||
if if_lora_v3 is True and os.path.exists(path_sovits) is False:
|
||||
info = path_sovits + i18n(f"SoVITS {model_version} 底模缺失,无法加载相应 LoRA 权重")
|
||||
info = path_sovits + i18n(f"SoVITS {model_version} 底模缺失, 无法加载相应 LoRA 权重")
|
||||
raise FileExistsError(info)
|
||||
|
||||
# dict_s2 = torch.load(weights_path, map_location=self.configs.device,weights_only=False)
|
||||
@ -474,13 +460,11 @@ class TTS:
|
||||
self.configs.n_speakers = hps["data"]["n_speakers"]
|
||||
self.configs.semantic_frame_rate = hps["model"]["semantic_frame_rate"]
|
||||
kwargs = hps["model"]
|
||||
# print(f"self.configs.sampling_rate:{self.configs.sampling_rate}")
|
||||
|
||||
self.configs.update_version(model_version)
|
||||
|
||||
# print(f"model_version:{model_version}")
|
||||
# print(f'hps["model"]["version"]:{hps["model"]["version"]}')
|
||||
if model_version not in v3v4set:
|
||||
kwargs["version"] = model_version
|
||||
vits_model = SynthesizerTrn(
|
||||
self.configs.filter_length // 2 + 1,
|
||||
self.configs.segment_size // self.configs.hop_length,
|
||||
@ -504,13 +488,11 @@ class TTS:
|
||||
self.is_v2pro = model_version in {"v2Pro", "v2ProPlus"}
|
||||
|
||||
if if_lora_v3 is False:
|
||||
print(
|
||||
f"Loading VITS weights from {weights_path}. {vits_model.load_state_dict(dict_s2['weight'], strict=True)}"
|
||||
)
|
||||
console.print(f">> loading sovits_{model_version}", vits_model.load_state_dict(dict_s2["weight"]))
|
||||
else:
|
||||
print(f">> loading sovits_{model_version}spretrained_G")
|
||||
console.print(f">> loading sovits_{model_version} pretrained_G")
|
||||
dict_pretrain = torch.load(path_sovits)["weight"]
|
||||
print(f">> loading sovits_{model_version}_lora{model_version}")
|
||||
console.print(f">> loading sovits_{model_version}_lora{model_version}")
|
||||
dict_pretrain.update(dict_s2["weight"])
|
||||
state_dict = dict_pretrain
|
||||
lora_rank = dict_s2["lora_rank"]
|
||||
@ -534,15 +516,16 @@ class TTS:
|
||||
|
||||
self.configs.save_configs()
|
||||
|
||||
def init_t2s_weights(self, weights_path: str, ar_backend: str = backends[-1], quantization: Any = None):
|
||||
print(f"Loading Text2Semantic weights from {weights_path}")
|
||||
def init_t2s_weights(self, weights_path: str):
|
||||
ar_backend = self.backend
|
||||
quantization = self.quantization
|
||||
self.configs.t2s_weights_path = weights_path
|
||||
self.configs.save_configs()
|
||||
|
||||
if "mlx" in ar_backend.lower():
|
||||
t2s_engine = MLX.T2SEngineMLX(
|
||||
MLX.T2SEngineMLX.load_decoder(
|
||||
Path(weights_path), backend=ar_backend, quantize_mode=quantization, max_batch_size=20
|
||||
Path(weights_path), backend=ar_backend, quantize_mode=quantization, max_batch_size=40
|
||||
),
|
||||
"mx.gpu" if self.configs.device.type != "cpu" else "mx.cpu",
|
||||
dtype=self.precision,
|
||||
@ -550,7 +533,7 @@ class TTS:
|
||||
else:
|
||||
t2s_engine = PyTorch.T2SEngineTorch(
|
||||
PyTorch.T2SEngineTorch.load_decoder(
|
||||
Path(weights_path), backend=ar_backend, quantize_mode=quantization, max_batch_size=20
|
||||
Path(weights_path), backend=ar_backend, quantize_mode=quantization, max_batch_size=40
|
||||
),
|
||||
self.configs.device if not torch.mps.is_available() else torch.device("cpu"),
|
||||
dtype=self.precision,
|
||||
@ -568,7 +551,7 @@ class TTS:
|
||||
self.empty_cache()
|
||||
|
||||
self.vocoder = BigVGAN.from_pretrained(
|
||||
"%s/GPT_SoVITS/pretrained_models/models--nvidia--bigvgan_v2_24khz_100band_256x" % (now_dir,),
|
||||
"GPT_SoVITS/pretrained_models/models--nvidia--bigvgan_v2_24khz_100band_256x",
|
||||
use_cuda_kernel=False,
|
||||
) # if True, RuntimeError: Ninja is required to load C++ extensions
|
||||
# remove weight norm in the model and set to eval mode
|
||||
@ -601,11 +584,11 @@ class TTS:
|
||||
)
|
||||
self.vocoder.remove_weight_norm()
|
||||
state_dict_g = torch.load(
|
||||
"%s/GPT_SoVITS/pretrained_models/gsv-v4-pretrained/vocoder.pth" % (now_dir,),
|
||||
"GPT_SoVITS/pretrained_models/gsv-v4-pretrained/vocoder.pth",
|
||||
map_location="cpu",
|
||||
weights_only=False,
|
||||
)
|
||||
print("loading vocoder", self.vocoder.load_state_dict(state_dict_g))
|
||||
console.print("loading vocoder", self.vocoder.load_state_dict(state_dict_g))
|
||||
|
||||
self.vocoder_configs["sr"] = 48000
|
||||
self.vocoder_configs["T_ref"] = 500
|
||||
@ -626,7 +609,7 @@ class TTS:
|
||||
self.sr_model: AP_BWE = AP_BWE(self.configs.device, DictToAttrRecursive)
|
||||
self.sr_model_not_exist = False
|
||||
except FileNotFoundError:
|
||||
print(i18n("你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好"))
|
||||
print(i18n("你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好"))
|
||||
self.sr_model_not_exist = True
|
||||
|
||||
def init_sv_model(self):
|
||||
@ -759,7 +742,7 @@ class TTS:
|
||||
with torch.no_grad():
|
||||
wav16k, sr = librosa.load(ref_wav_path, sr=16000)
|
||||
if wav16k.shape[0] > 160000 or wav16k.shape[0] < 48000:
|
||||
raise OSError(i18n("参考音频在3~10秒范围外,请更换!"))
|
||||
raise OSError(i18n("参考音频在3~10秒范围外, 请更换!"))
|
||||
wav16k = torch.from_numpy(wav16k)
|
||||
zero_wav_torch = torch.from_numpy(zero_wav)
|
||||
wav16k = wav16k.to(self.configs.device)
|
||||
@ -939,8 +922,7 @@ class TTS:
|
||||
"""
|
||||
self.stop_flag = True
|
||||
|
||||
@torch.no_grad()
|
||||
def run(self, inputs: dict):
|
||||
async def run(self, inputs: dict):
|
||||
"""
|
||||
Text to speech inference.
|
||||
|
||||
@ -972,6 +954,7 @@ class TTS:
|
||||
Tuple[int, np.ndarray]: sampling rate and audio data.
|
||||
"""
|
||||
########## variables initialization ###########
|
||||
torch.set_grad_enabled(False)
|
||||
ttfb_time = time.perf_counter()
|
||||
self.stop_flag: bool = False
|
||||
text: str = inputs.get("text", "")
|
||||
@ -998,11 +981,11 @@ class TTS:
|
||||
super_sampling = inputs.get("super_sampling", False)
|
||||
|
||||
if return_fragment:
|
||||
print(i18n("分段返回模式已开启"))
|
||||
logger.info(i18n("分段返回模式已开启"))
|
||||
|
||||
if fragment_interval < 0.01:
|
||||
fragment_interval = 0.01
|
||||
print(i18n("分段间隔过小,已自动设置为0.01"))
|
||||
logger.warning(i18n("分段间隔过小,已自动设置为0.01"))
|
||||
|
||||
no_prompt_text = False
|
||||
if prompt_text in [None, ""]:
|
||||
@ -1042,7 +1025,7 @@ class TTS:
|
||||
if path in [None, ""]:
|
||||
continue
|
||||
if not os.path.exists(path):
|
||||
print(i18n("音频文件不存在,跳过:"), path)
|
||||
logger.warning(i18n("音频文件不存在,跳过:"), path)
|
||||
continue
|
||||
self.prompt_cache["refer_spec"].append(self._get_ref_spec(path))
|
||||
|
||||
@ -1081,7 +1064,7 @@ class TTS:
|
||||
precision=self.precision,
|
||||
)
|
||||
else:
|
||||
print(f"############ {i18n('切分文本')} ############")
|
||||
logger.info(i18n("切分文本"))
|
||||
texts = self.text_preprocessor.pre_seg_text(text, text_lang, text_split_method)
|
||||
data = []
|
||||
for i in range(len(texts)):
|
||||
@ -1091,7 +1074,7 @@ class TTS:
|
||||
|
||||
def make_batch(batch_texts):
|
||||
batch_data = []
|
||||
print(f"############ {i18n('提取文本Bert特征')} ############")
|
||||
logger.info(i18n("提取文本Bert特征"))
|
||||
for text in tqdm(batch_texts):
|
||||
phones, bert_features, norm_text = self.text_preprocessor.segment_and_extract_feature_for_text(
|
||||
text, text_lang, self.configs.version
|
||||
@ -1122,8 +1105,7 @@ class TTS:
|
||||
infer_time: list[float] = []
|
||||
audio_len = [0.0]
|
||||
try:
|
||||
print("############ 推理 ############")
|
||||
###### inference ######
|
||||
logger.info("Inference Start")
|
||||
t_34 = 0.0
|
||||
t_45 = 0.0
|
||||
audio = []
|
||||
@ -1137,20 +1119,17 @@ class TTS:
|
||||
|
||||
batch_phones: list[torch.Tensor] = item["phones"]
|
||||
# batch_phones:torch.LongTensor = item["phones"]
|
||||
batch_phones_len: torch.Tensor = item["phones_len"]
|
||||
all_phoneme_ids: list[torch.Tensor] = item["all_phones"]
|
||||
all_phoneme_lens: torch.Tensor = item["all_phones_len"]
|
||||
all_bert_features: list[torch.Tensor] = item["all_bert_features"]
|
||||
norm_text: str = item["norm_text"]
|
||||
max_len = item["max_len"]
|
||||
|
||||
print(i18n("前端处理后的文本(每句):"), norm_text)
|
||||
if no_prompt_text:
|
||||
prompt = torch.zeros(1, 0).to(self.configs.device, self.precision)
|
||||
prompt = torch.zeros(1, 0).to(self.configs.device, torch.int32)
|
||||
else:
|
||||
prompt = self.prompt_cache["prompt_semantic"].to(self.configs.device).unsqueeze(0)
|
||||
|
||||
print(f"############ {i18n('预测语义Token')} ############")
|
||||
t2s_request = T2SRequest(
|
||||
all_phoneme_ids,
|
||||
all_phoneme_lens,
|
||||
@ -1160,6 +1139,7 @@ class TTS:
|
||||
top_k=top_k,
|
||||
top_p=top_p,
|
||||
temperature=temperature,
|
||||
repetition_penalty=repetition_penalty,
|
||||
debug=os.environ.get("DEBUG", "0") == "1",
|
||||
use_cuda_graph=torch.cuda.is_available(),
|
||||
)
|
||||
@ -1201,10 +1181,10 @@ class TTS:
|
||||
# batch_audio_fragment = (self.vits_model.batched_decode(
|
||||
# pred_semantic, pred_semantic_len, batch_phones, batch_phones_len,refer_audio_spec
|
||||
# ))
|
||||
print(f"############ {i18n('合成音频')} ############")
|
||||
logger.info(i18n("合成音频"))
|
||||
if not self.configs.use_vocoder:
|
||||
if speed_factor == 1.0:
|
||||
print(f"{i18n('并行合成中')}...")
|
||||
if speed_factor == 1.0 and parallel_infer:
|
||||
console.print(f"{i18n('并行合成中')}...")
|
||||
# ## vits并行推理 method 2
|
||||
upsample_rate = math.prod(self.vits_model.upsample_rates)
|
||||
audio_frag_idx = [
|
||||
@ -1231,10 +1211,10 @@ class TTS:
|
||||
]
|
||||
else:
|
||||
# ## vits串行推理
|
||||
for i, idx in enumerate(tqdm(idx_list)):
|
||||
for i in range(len(pred_semantic_list)):
|
||||
phones = batch_phones[i].unsqueeze(0).to(self.configs.device)
|
||||
_pred_semantic = (
|
||||
pred_semantic_list[i][-idx:].unsqueeze(0).unsqueeze(0)
|
||||
pred_semantic_list[i].unsqueeze(0).unsqueeze(0)
|
||||
) # .unsqueeze(0)#mq要多unsqueeze一次
|
||||
if not self.is_v2pro:
|
||||
audio_fragment = self.vits_model.decode(
|
||||
@ -1247,16 +1227,16 @@ class TTS:
|
||||
batch_audio_fragment.append(audio_fragment) ###试试重建不带上prompt部分
|
||||
else:
|
||||
if parallel_infer:
|
||||
print(f"{i18n('并行合成中')}...")
|
||||
console.print(f"{i18n('并行合成中')}...")
|
||||
audio_fragments = self.using_vocoder_synthesis_batched_infer(
|
||||
idx_list, pred_semantic_list, batch_phones, speed=speed_factor, sample_steps=sample_steps
|
||||
pred_semantic_list, batch_phones, speed=speed_factor, sample_steps=sample_steps
|
||||
)
|
||||
batch_audio_fragment.extend(audio_fragments)
|
||||
else:
|
||||
for i, idx in enumerate(tqdm(idx_list)):
|
||||
for i in range(len(pred_semantic_list)):
|
||||
phones = batch_phones[i].unsqueeze(0).to(self.configs.device)
|
||||
_pred_semantic = (
|
||||
pred_semantic_list[i][-idx:].unsqueeze(0).unsqueeze(0)
|
||||
pred_semantic_list[i].unsqueeze(0).unsqueeze(0)
|
||||
) # .unsqueeze(0)#mq要多unsqueeze一次
|
||||
audio_fragment = self.using_vocoder_synthesis(
|
||||
_pred_semantic, phones, speed=speed_factor, sample_steps=sample_steps
|
||||
@ -1281,6 +1261,7 @@ class TTS:
|
||||
yield tmp
|
||||
else:
|
||||
audio.append(batch_audio_fragment)
|
||||
await asyncio.sleep(0)
|
||||
|
||||
if self.stop_flag:
|
||||
audio_len.append(1)
|
||||
@ -1307,7 +1288,7 @@ class TTS:
|
||||
yield tmp
|
||||
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
logger.bind(show_locals=False).exception("TTS Inference Error: ")
|
||||
# 必须返回一个空音频, 否则会导致显存不释放。
|
||||
audio_len.append(1)
|
||||
yield 16000, np.zeros(int(16000), dtype=np.int16)
|
||||
@ -1318,13 +1299,14 @@ class TTS:
|
||||
self.vits_model = None
|
||||
self.init_t2s_weights(self.configs.t2s_weights_path)
|
||||
self.init_vits_weights(self.configs.vits_weights_path)
|
||||
raise e
|
||||
raise RuntimeError("TTS Inference Error") from e
|
||||
finally:
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time)
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time) if infer_time else 0
|
||||
rtf_value = sum((t1 - t0, t2 - t1, t_34, t_45)) / sum(audio_len)
|
||||
console.print(f">> Time Stamps: {t1 - t0:.3f}\t{t2 - t1:.3f}\t{t_34:.3f}\t{t_45:.3f}")
|
||||
console.print(f">> Infer Speed: {infer_speed_avg:.2f} Token/s")
|
||||
console.print(f">> RTF: {rtf_value:.2f}")
|
||||
|
||||
if ttfb_time > 2:
|
||||
console.print(f">> TTFB: {ttfb_time:.3f} s")
|
||||
else:
|
||||
@ -1333,14 +1315,18 @@ class TTS:
|
||||
self.empty_cache()
|
||||
|
||||
def empty_cache(self):
|
||||
try:
|
||||
gc.collect() # 触发gc的垃圾回收。避免内存一直增长。
|
||||
if "cuda" in str(self.configs.device):
|
||||
torch.cuda.empty_cache()
|
||||
elif str(self.configs.device) == "mps":
|
||||
torch.mps.empty_cache()
|
||||
except:
|
||||
pass
|
||||
gc.collect()
|
||||
if self.configs.device.type == "cuda":
|
||||
torch.cuda.empty_cache()
|
||||
elif self.configs.device.type == "mps":
|
||||
torch.mps.empty_cache()
|
||||
gc.collect()
|
||||
|
||||
if self.configs.device.type == "cuda":
|
||||
logger.info(str(torch.cuda.memory_allocated(self.configs.device.index) / 1024**3), "GB")
|
||||
elif self.configs.device.type == "mps":
|
||||
logger.info("Curr: " + str(torch.mps.current_allocated_memory() / 1024**3) + " GB")
|
||||
logger.info("Driver: " + str(torch.mps.driver_allocated_memory() / 1024**3) + " GB")
|
||||
|
||||
def audio_postprocess(
|
||||
self,
|
||||
@ -1373,7 +1359,7 @@ class TTS:
|
||||
audio = torch.cat(audio, dim=0)
|
||||
|
||||
if super_sampling:
|
||||
print(f"############ {i18n('音频超采样')} ############")
|
||||
logger.info(i18n("音频超采样"))
|
||||
t1 = time.perf_counter()
|
||||
self.init_sr_model()
|
||||
if not self.sr_model_not_exist:
|
||||
@ -1388,12 +1374,6 @@ class TTS:
|
||||
|
||||
audio = (audio * 32768).astype(np.int16)
|
||||
|
||||
# try:
|
||||
# if speed_factor != 1.0:
|
||||
# audio = speed_change(audio, speed=speed_factor, sr=int(sr))
|
||||
# except Exception as e:
|
||||
# print(f"Failed to change speed of audio: \n{e}")
|
||||
|
||||
return sr, audio
|
||||
|
||||
def using_vocoder_synthesis(
|
||||
@ -1463,7 +1443,6 @@ class TTS:
|
||||
|
||||
def using_vocoder_synthesis_batched_infer(
|
||||
self,
|
||||
idx_list: list[int],
|
||||
semantic_tokens_list: list[torch.Tensor],
|
||||
batch_phones: list[torch.Tensor],
|
||||
speed: float = 1.0,
|
||||
@ -1509,11 +1488,9 @@ class TTS:
|
||||
feat_lens = []
|
||||
feat_list = []
|
||||
|
||||
for i, idx in enumerate(idx_list):
|
||||
for i in range(len(semantic_tokens_list)):
|
||||
phones = batch_phones[i].unsqueeze(0).to(self.configs.device)
|
||||
semantic_tokens = (
|
||||
semantic_tokens_list[i][-idx:].unsqueeze(0).unsqueeze(0)
|
||||
) # .unsqueeze(0)#mq要多unsqueeze一次
|
||||
semantic_tokens = semantic_tokens_list[i].unsqueeze(0).unsqueeze(0) # .unsqueeze(0)#mq要多unsqueeze一次
|
||||
feat, _ = self.vits_model.decode_encp(semantic_tokens, phones, refer_audio_spec, ge, speed)
|
||||
feat_list.append(feat)
|
||||
feat_lens.append(feat.shape[2])
|
||||
|
||||
@ -586,7 +586,7 @@ def get_sovits_weights(sovits_path):
|
||||
|
||||
model_version, version, if_lora_v3, hps, dict_s2 = inspect_version(sovits_path)
|
||||
if if_lora_v3 is True and is_exist_s2gv3 is False:
|
||||
logger.info("SoVITS V3 底模缺失,无法加载相应 LoRA 权重")
|
||||
logger.info("SoVITS V3 底模缺失, 无法加载相应 LoRA 权重")
|
||||
|
||||
hps = DictToAttrRecursive(hps)
|
||||
hps.model.semantic_frame_rate = "25hz"
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import argparse
|
||||
import asyncio
|
||||
import contextlib
|
||||
import gc
|
||||
import logging
|
||||
@ -296,14 +297,14 @@ def get_bert_feature(text, word2ph):
|
||||
return phone_level_feature_t.T
|
||||
|
||||
|
||||
def change_sovits_weights(sovits_path, prompt_language=None, text_language=None):
|
||||
async def change_sovits_weights(sovits_path, prompt_language=None, text_language=None):
|
||||
global vq_model, hps, version, model_version, dict_language
|
||||
model_version, version, is_lora, hps, dict_s2 = inspect_version(sovits_path)
|
||||
print(sovits_path, version, model_version, is_lora)
|
||||
is_exist = is_exist_s2gv3 if model_version == "v3" else is_exist_s2gv4
|
||||
path_sovits = path_sovits_v3 if model_version == "v3" else path_sovits_v4
|
||||
if is_lora is True and is_exist is False:
|
||||
info = f"{path_sovits} SoVITS {model_version} {i18n('底模缺失,无法加载相应 LoRA 权重')}"
|
||||
info = f"{path_sovits} SoVITS {model_version} {i18n('底模缺失, 无法加载相应 LoRA 权重')}"
|
||||
gr.Warning(info)
|
||||
raise FileNotFoundError(info)
|
||||
dict_language = dict_language_v1 if version == "v1" else dict_language_v2
|
||||
@ -339,7 +340,7 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
gr.update(visible=visible_inp_refs),
|
||||
gr.update(value=False, interactive=True if model_version not in v3v4set else False),
|
||||
gr.update(visible=True if model_version == "v3" else False),
|
||||
gr.update(value=i18n("模型加载中,请等待"), interactive=False),
|
||||
gr.update(value=i18n("模型加载中, 请等待"), interactive=False),
|
||||
)
|
||||
|
||||
hps = DictToAttrRecursive(hps)
|
||||
@ -368,7 +369,7 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
console.print(f">> loading sovits_{model_version}", vq_model.load_state_dict(dict_s2["weight"]))
|
||||
else:
|
||||
path_sovits = path_sovits_v3 if model_version == "v3" else path_sovits_v4
|
||||
console.print(f">> loading sovits_{model_version}spretrained_G")
|
||||
console.print(f">> loading sovits_{model_version} pretrained_G")
|
||||
dict_pretrain = torch.load(path_sovits)["weight"]
|
||||
console.print(f">> loading sovits_{model_version}_lora{model_version}")
|
||||
dict_pretrain.update(dict_s2["weight"])
|
||||
@ -401,10 +402,10 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
|
||||
|
||||
with contextlib.suppress(UnboundLocalError):
|
||||
next(change_sovits_weights(sovits_path))
|
||||
asyncio.run(anext(change_sovits_weights(sovits_path)))
|
||||
|
||||
|
||||
def change_gpt_weights(gpt_path):
|
||||
async def change_gpt_weights(gpt_path):
|
||||
global t2s_engine, config
|
||||
if "mlx" in ar_backend.lower():
|
||||
t2s_engine = MLX.T2SEngineMLX(
|
||||
@ -425,7 +426,7 @@ def change_gpt_weights(gpt_path):
|
||||
console.print(">> Number of parameter: %.2fM" % (total / 1e6))
|
||||
|
||||
|
||||
change_gpt_weights(gpt_path)
|
||||
asyncio.run(change_gpt_weights(gpt_path))
|
||||
|
||||
|
||||
def clean_hifigan_model():
|
||||
@ -677,7 +678,7 @@ def audio_sr(audio, sr):
|
||||
try:
|
||||
sr_model = AP_BWE(infer_device, DictToAttrRecursive)
|
||||
except FileNotFoundError:
|
||||
gr.Warning(i18n("你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好"))
|
||||
gr.Warning(i18n("你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好"))
|
||||
return audio.cpu().numpy(), sr
|
||||
return sr_model(audio, sr)
|
||||
|
||||
@ -685,7 +686,7 @@ def audio_sr(audio, sr):
|
||||
cache: dict[int, Any] = {}
|
||||
|
||||
|
||||
def get_tts_wav(
|
||||
async def get_tts_wav(
|
||||
ref_wav_path,
|
||||
prompt_text,
|
||||
prompt_language,
|
||||
@ -702,8 +703,10 @@ def get_tts_wav(
|
||||
sample_steps=8,
|
||||
if_sr=False,
|
||||
pause_second=0.3,
|
||||
progress=gr.Progress(),
|
||||
):
|
||||
torch.set_grad_enabled(False)
|
||||
progress(0, desc="Inferencing...")
|
||||
debug = os.getenv("DEBUG") == "1"
|
||||
ttfb_time = ttime()
|
||||
|
||||
@ -751,8 +754,8 @@ def get_tts_wav(
|
||||
assert vq_model
|
||||
wav16k, sr = librosa.load(ref_wav_path, sr=16000)
|
||||
if wav16k.shape[0] > 160000 or wav16k.shape[0] < 48000:
|
||||
gr.Warning(i18n("参考音频在3~10秒范围外,请更换!"))
|
||||
raise OSError(i18n("参考音频在3~10秒范围外,请更换!"))
|
||||
gr.Warning(i18n("参考音频在3~10秒范围外, 请更换!"))
|
||||
raise OSError(i18n("参考音频在3~10秒范围外, 请更换!"))
|
||||
wav16k_t = torch.from_numpy(wav16k)
|
||||
if is_half is True:
|
||||
wav16k_t = wav16k_t.half().to(infer_device)
|
||||
@ -795,6 +798,7 @@ def get_tts_wav(
|
||||
infer_time: list[float] = []
|
||||
assert vq_model
|
||||
|
||||
percent = 1 / len(texts)
|
||||
for i_text, text in enumerate(texts):
|
||||
# 解决输入目标文本的空行导致报错的问题
|
||||
if len(text.strip()) == 0:
|
||||
@ -835,7 +839,7 @@ def get_tts_wav(
|
||||
raise RuntimeError()
|
||||
pred_semantic_list = t2s_result.result
|
||||
assert pred_semantic_list, t2s_result.traceback
|
||||
pred_semantic = pred_semantic_list[0].unsqueeze(0).to(infer_device)
|
||||
pred_semantic = pred_semantic_list[0].unsqueeze(0).unsqueeze(0).to(infer_device)
|
||||
infer_len.append(t2s_result.total_tokens)
|
||||
infer_time.append(t2s_result.infer_speed[-1])
|
||||
|
||||
@ -850,7 +854,7 @@ def get_tts_wav(
|
||||
init_sv_cn()
|
||||
if inp_refs:
|
||||
for path in inp_refs:
|
||||
try: # 这里加上提取sv的逻辑,要么一堆sv一堆refer,要么单个sv单个refer
|
||||
try: # 这里加上提取sv的逻辑, 要么一堆sv一堆refer, 要么单个sv单个refer
|
||||
refer, audio_tensor = get_spepc(hps, path.name, dtype, infer_device, is_v2pro)
|
||||
refers.append(refer)
|
||||
if is_v2pro:
|
||||
@ -943,6 +947,7 @@ def get_tts_wav(
|
||||
t4 = ttime()
|
||||
t.extend([t2 - t1, t3 - t2, t4 - t3])
|
||||
t1 = ttime()
|
||||
progress((i_text + 1) * percent, desc="Inferencing...")
|
||||
|
||||
audio_opt_t = torch.cat(audio_opt, 0) # np.concatenate
|
||||
if model_version in {"v1", "v2", "v2Pro", "v2ProPlus"}:
|
||||
@ -965,7 +970,7 @@ def get_tts_wav(
|
||||
t2 = sum(t[2::3])
|
||||
t3 = sum(t[3::3])
|
||||
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time)
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time) if infer_time else 0
|
||||
rtf_value = sum(t) / (audio_opt_n.__len__() / opt_sr)
|
||||
|
||||
console.print(f">> Time Stamps: {t0:.3f}\t{t1:.3f}\t{t2:.3f}\t{t3:.3f}")
|
||||
@ -977,15 +982,21 @@ def get_tts_wav(
|
||||
|
||||
if ttfb_time > 2:
|
||||
console.print(f">> TTFB: {ttfb_time:.3f} s")
|
||||
gr.Info(f">> TTFB: {ttfb_time:.3f} s")
|
||||
gr.Info(f"{ttfb_time:.3f} s", title="TTFB")
|
||||
else:
|
||||
console.print(f">> TTFB: {ttfb_time * 1000:.3f} ms")
|
||||
gr.Info(f">> TTFB: {ttfb_time * 1000:.3f} ms")
|
||||
gr.Info(f"{ttfb_time * 1000:.3f} ms", title="TTFB")
|
||||
|
||||
progress(1, desc="Done")
|
||||
yield opt_sr, (audio_opt_n * 32767).astype(np.int16)
|
||||
|
||||
if torch.cuda.is_available():
|
||||
gc.collect()
|
||||
|
||||
if device.type == "cuda":
|
||||
torch.cuda.empty_cache()
|
||||
elif device.type == "mps":
|
||||
torch.mps.empty_cache()
|
||||
|
||||
gc.collect()
|
||||
|
||||
|
||||
@ -998,7 +1009,7 @@ def split(todo_text):
|
||||
todo_texts = []
|
||||
while 1:
|
||||
if i_split_head >= len_text:
|
||||
break # 结尾一定有标点,所以直接跳出即可,最后一段在上次已加入
|
||||
break # 结尾一定有标点, 所以直接跳出即可, 最后一段在上次已加入
|
||||
if todo_text[i_split_head] in splits:
|
||||
i_split_head += 1
|
||||
todo_texts.append(todo_text[i_split_tail:i_split_head])
|
||||
@ -1040,7 +1051,7 @@ def cut2(inp):
|
||||
tmp_str = ""
|
||||
if tmp_str != "":
|
||||
opts.append(tmp_str)
|
||||
if len(opts) > 1 and len(opts[-1]) < 50: # 如果最后一个太短了,和前一个合一起
|
||||
if len(opts) > 1 and len(opts[-1]) < 50: # 如果最后一个太短了, 和前一个合一起
|
||||
opts[-2] = opts[-2] + opts[-1]
|
||||
opts = opts[:-1]
|
||||
opts = [item for item in opts if not set(item).issubset(punctuation)]
|
||||
@ -1143,7 +1154,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column(scale=1):
|
||||
inp_ref = gr.Audio(
|
||||
label=i18n("请上传3~10秒内参考音频,超过会报错!"),
|
||||
label=i18n("请上传3~10秒内参考音频, 超过会报错!"),
|
||||
type="filepath",
|
||||
sources="upload",
|
||||
scale=13,
|
||||
@ -1153,14 +1164,12 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
with gr.Column(scale=1):
|
||||
gr.Markdown(
|
||||
html_center(
|
||||
i18n("使用无参考文本模式时建议使用微调的GPT")
|
||||
+ "<br>"
|
||||
+ i18n("听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。")
|
||||
i18n("使用无参考文本模式时建议使用微调的GPT") + ", " + i18n("开启后无视填写的参考文本")
|
||||
)
|
||||
)
|
||||
ref_text_free = gr.Checkbox(
|
||||
label=i18n("开启无参考文本模式"),
|
||||
info=i18n("不填参考文本亦相当于开启") + ", " + i18n("v3暂不支持该模式,使用了会报错。"),
|
||||
info=i18n("不填参考文本亦相当于开启") + ", " + i18n("v3暂不支持该模式, 使用了会报错"),
|
||||
value=False,
|
||||
interactive=True if model_version not in v3v4set else False,
|
||||
show_label=True,
|
||||
@ -1178,14 +1187,14 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
inp_refs = (
|
||||
gr.File(
|
||||
label=i18n(
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。"
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管."
|
||||
),
|
||||
file_count="multiple",
|
||||
)
|
||||
if model_version not in v3v4set
|
||||
else gr.File(
|
||||
label=i18n(
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。"
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管."
|
||||
),
|
||||
file_count="multiple",
|
||||
visible=False,
|
||||
@ -1219,7 +1228,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
text = gr.Textbox(label=i18n("需要合成的文本"), value="", lines=30, max_lines=40)
|
||||
with gr.Column(scale=1):
|
||||
text_language = gr.Dropdown(
|
||||
label=i18n("需要合成的语种") + i18n(".限制范围越小判别效果越好。"),
|
||||
label=i18n("需要合成的语种") + ", " + i18n("限制范围越小判别效果越好"),
|
||||
choices=list(dict_language.keys()),
|
||||
value=i18n("中文"),
|
||||
scale=1,
|
||||
@ -1316,7 +1325,11 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
|
||||
if __name__ == "__main__":
|
||||
set_high_priority()
|
||||
app.queue(api_open=False, default_concurrency_limit=1, max_size=1024).launch(
|
||||
app.queue(
|
||||
api_open=False,
|
||||
default_concurrency_limit=1,
|
||||
max_size=1024,
|
||||
).launch(
|
||||
server_name="0.0.0.0",
|
||||
inbrowser=True,
|
||||
share=is_share,
|
||||
|
||||
@ -9,9 +9,9 @@
|
||||
|
||||
import argparse
|
||||
import contextlib
|
||||
import gc
|
||||
import logging
|
||||
import os
|
||||
import random
|
||||
import re
|
||||
from functools import partial
|
||||
|
||||
@ -19,10 +19,10 @@ import gradio as gr
|
||||
import psutil
|
||||
import torch
|
||||
|
||||
from config import change_choices, custom_sort_key, get_dtype, get_weights_names, pretrained_sovits_name
|
||||
from config import change_choices, get_dtype, get_weights_names, pretrained_sovits_name
|
||||
from config import infer_device as default_device
|
||||
from GPT_SoVITS.Accelerate import MLX, PyTorch, backends
|
||||
from GPT_SoVITS.process_ckpt import inspect_version
|
||||
from GPT_SoVITS.TTS_infer_pack.text_segmentation_method import get_method
|
||||
from GPT_SoVITS.TTS_infer_pack.TTS import NO_PROMPT_ERROR, TTS, TTS_Config
|
||||
from tools.assets import css, js, top_html
|
||||
from tools.i18n.i18n import I18nAuto, scan_language_list
|
||||
@ -66,10 +66,16 @@ def lang_type(text: str) -> str:
|
||||
return "Auto"
|
||||
|
||||
|
||||
def none_or_str(value: str):
|
||||
if value == "None":
|
||||
return None
|
||||
return value
|
||||
|
||||
|
||||
def build_parser() -> argparse.ArgumentParser:
|
||||
p = argparse.ArgumentParser(
|
||||
prog="inference_webui",
|
||||
description="python -s inference_webui.py zh_CN -i naive",
|
||||
description=f"python -s -m GPT_SoVITS.inference_webui zh_CN -b {backends[-1]}",
|
||||
)
|
||||
p.add_argument(
|
||||
"language",
|
||||
@ -78,6 +84,23 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
type=lang_type,
|
||||
help="Language Code, Such as zh_CN, en-US",
|
||||
)
|
||||
p.add_argument(
|
||||
"--backends",
|
||||
"-b",
|
||||
choices=backends,
|
||||
default=backends[-1],
|
||||
help="AR Inference Backend",
|
||||
required=False,
|
||||
)
|
||||
p.add_argument(
|
||||
"--quantization",
|
||||
"-q",
|
||||
default="None",
|
||||
choices=MLX.quantization_methods_mlx + PyTorch.quantization_methods_torch,
|
||||
type=none_or_str,
|
||||
help="Quantization Method",
|
||||
required=False,
|
||||
)
|
||||
p.add_argument(
|
||||
"--device",
|
||||
"-d",
|
||||
@ -142,7 +165,7 @@ dtype = get_dtype(device.index)
|
||||
is_half = dtype == torch.float16
|
||||
|
||||
i18n = I18nAuto(language=args.language)
|
||||
change_choices_gradio = partial(change_choices, i18n=i18n)
|
||||
change_choices_i18n = partial(change_choices, i18n=i18n)
|
||||
|
||||
SoVITS_names, GPT_names = get_weights_names(i18n)
|
||||
|
||||
@ -153,30 +176,7 @@ cnhubert_base_path = str(args.cnhubert)
|
||||
bert_path = str(args.bert)
|
||||
|
||||
version = model_version = "v2"
|
||||
|
||||
|
||||
dict_language_v1 = {
|
||||
i18n("中文"): "all_zh", # 全部按中文识别
|
||||
i18n("英文"): "en", # 全部按英文识别#######不变
|
||||
i18n("日文"): "all_ja", # 全部按日文识别
|
||||
i18n("中英混合"): "zh", # 按中英混合识别####不变
|
||||
i18n("日英混合"): "ja", # 按日英混合识别####不变
|
||||
i18n("多语种混合"): "auto", # 多语种启动切分识别语种
|
||||
}
|
||||
dict_language_v2 = {
|
||||
i18n("中文"): "all_zh", # 全部按中文识别
|
||||
i18n("英文"): "en", # 全部按英文识别#######不变
|
||||
i18n("日文"): "all_ja", # 全部按日文识别
|
||||
i18n("粤语"): "all_yue", # 全部按中文识别
|
||||
i18n("韩文"): "all_ko", # 全部按韩文识别
|
||||
i18n("中英混合"): "zh", # 按中英混合识别####不变
|
||||
i18n("日英混合"): "ja", # 按日英混合识别####不变
|
||||
i18n("粤英混合"): "yue", # 按粤英混合识别####不变
|
||||
i18n("韩英混合"): "ko", # 按韩英混合识别####不变
|
||||
i18n("多语种混合"): "auto", # 多语种启动切分识别语种
|
||||
i18n("多语种混合(粤语)"): "auto_yue", # 多语种启动切分识别语种
|
||||
}
|
||||
dict_language = dict_language_v1 if version == "v1" else dict_language_v2
|
||||
is_lora = False
|
||||
|
||||
cut_method = {
|
||||
i18n("不切"): "cut0",
|
||||
@ -207,14 +207,38 @@ if cnhubert_base_path is not None:
|
||||
if bert_path is not None:
|
||||
tts_config.bert_base_path = bert_path
|
||||
|
||||
print(tts_config)
|
||||
tts_pipeline = TTS(tts_config)
|
||||
tts_pipeline = TTS(tts_config, args.backends, args.quantization)
|
||||
gpt_path = tts_config.t2s_weights_path
|
||||
sovits_path = tts_config.vits_weights_path
|
||||
version = tts_config.version
|
||||
|
||||
dict_language_v1 = {
|
||||
i18n("中文"): "all_zh", # 全部按中文识别
|
||||
i18n("英文"): "en", # 全部按英文识别#######不变
|
||||
i18n("日文"): "all_ja", # 全部按日文识别
|
||||
i18n("中英混合"): "zh", # 按中英混合识别####不变
|
||||
i18n("日英混合"): "ja", # 按日英混合识别####不变
|
||||
i18n("多语种混合"): "auto", # 多语种启动切分识别语种
|
||||
}
|
||||
dict_language_v2 = {
|
||||
i18n("中文"): "all_zh", # 全部按中文识别
|
||||
i18n("英文"): "en", # 全部按英文识别#######不变
|
||||
i18n("日文"): "all_ja", # 全部按日文识别
|
||||
i18n("粤语"): "all_yue", # 全部按中文识别
|
||||
i18n("韩文"): "all_ko", # 全部按韩文识别
|
||||
i18n("中英混合"): "zh", # 按中英混合识别####不变
|
||||
i18n("日英混合"): "ja", # 按日英混合识别####不变
|
||||
i18n("粤英混合"): "yue", # 按粤英混合识别####不变
|
||||
i18n("韩英混合"): "ko", # 按韩英混合识别####不变
|
||||
i18n("多语种混合"): "auto", # 多语种启动切分识别语种
|
||||
i18n("多语种混合(粤语)"): "auto_yue", # 多语种启动切分识别语种
|
||||
}
|
||||
dict_language = dict_language_v1 if version == "v1" else dict_language_v2
|
||||
|
||||
def inference(
|
||||
print(tts_config)
|
||||
|
||||
|
||||
async def inference(
|
||||
text,
|
||||
text_lang,
|
||||
ref_audio_path,
|
||||
@ -228,17 +252,12 @@ def inference(
|
||||
batch_size,
|
||||
speed_factor,
|
||||
ref_text_free,
|
||||
split_bucket,
|
||||
fragment_interval,
|
||||
seed,
|
||||
keep_random,
|
||||
parallel_infer,
|
||||
repetition_penalty,
|
||||
sample_steps,
|
||||
super_sampling,
|
||||
):
|
||||
seed = -1 if keep_random else seed
|
||||
actual_seed = seed if seed not in [-1, "", None] else random.randint(0, 2**32 - 1)
|
||||
inputs = {
|
||||
"text": text,
|
||||
"text_lang": dict_language[text_lang],
|
||||
@ -252,47 +271,55 @@ def inference(
|
||||
"text_split_method": cut_method[text_split_method],
|
||||
"batch_size": int(batch_size),
|
||||
"speed_factor": float(speed_factor),
|
||||
"split_bucket": split_bucket,
|
||||
"split_bucket": False,
|
||||
"return_fragment": False,
|
||||
"fragment_interval": fragment_interval,
|
||||
"seed": actual_seed,
|
||||
"seed": -1,
|
||||
"parallel_infer": parallel_infer,
|
||||
"repetition_penalty": repetition_penalty,
|
||||
"sample_steps": int(sample_steps),
|
||||
"super_sampling": super_sampling,
|
||||
}
|
||||
try:
|
||||
for item in tts_pipeline.run(inputs):
|
||||
yield item, actual_seed
|
||||
async for chunk in tts_pipeline.run(inputs):
|
||||
yield chunk
|
||||
gc.collect()
|
||||
if "cuda" in str(tts_config.device):
|
||||
torch.cuda.empty_cache()
|
||||
elif str(tts_config.device) == "mps":
|
||||
torch.mps.empty_cache()
|
||||
except NO_PROMPT_ERROR:
|
||||
gr.Warning(i18n("V3不支持无参考文本模式,请填写参考文本!"))
|
||||
gr.Warning(i18n("V3/V4不支持无参考文本模式, 请填写参考文本!"))
|
||||
except RuntimeError as e:
|
||||
gr.Warning(str(e))
|
||||
|
||||
|
||||
v3v4set = {"v3", "v4"}
|
||||
|
||||
|
||||
def change_sovits_weights(sovits_path, prompt_language=None, text_language=None):
|
||||
async def change_sovits_weights(sovits_path, prompt_language=None, text_language=None):
|
||||
global version, model_version, dict_language, is_lora
|
||||
model_version, version, is_lora, _, __ = inspect_version(sovits_path)
|
||||
# print(sovits_path,version, model_version, is_lora)
|
||||
tts_config.update_version(model_version)
|
||||
is_exist = is_exist_s2gv3 if model_version == "v3" else is_exist_s2gv4
|
||||
path_sovits = path_sovits_v3 if model_version == "v3" else path_sovits_v4
|
||||
if is_lora is True and is_exist is False:
|
||||
info = path_sovits + f"SoVITS {model_version}" + i18n("底模缺失,无法加载相应 LoRA 权重")
|
||||
info = path_sovits + f"SoVITS {model_version}" + i18n("底模缺失, 无法加载相应 LoRA 权重")
|
||||
gr.Warning(info)
|
||||
raise FileExistsError(info)
|
||||
dict_language = dict_language_v1 if version == "v1" else dict_language_v2
|
||||
if prompt_language is not None and text_language is not None:
|
||||
if prompt_language in list(dict_language.keys()):
|
||||
prompt_text_update, prompt_language_update = gr.skip(), gr.skip()
|
||||
prompt_text_update, prompt_language_update = gr.skip(), gr.update(choices=list(dict_language.keys()))
|
||||
else:
|
||||
prompt_text_update = gr.update(value="")
|
||||
prompt_language_update = gr.update(value=i18n("中文"))
|
||||
prompt_language_update = gr.update(value=i18n("中文"), choices=list(dict_language.keys()))
|
||||
if text_language in list(dict_language.keys()):
|
||||
text_update, text_language_update = gr.skip(), gr.skip()
|
||||
else:
|
||||
text_update = gr.update(value="")
|
||||
text_language_update = gr.update(value=i18n("中文"))
|
||||
text_language_update = gr.update(value=i18n("中文"), choices=list(dict_language.keys()))
|
||||
|
||||
if model_version in v3v4set:
|
||||
visible_sample_steps = True
|
||||
visible_inp_refs = False
|
||||
@ -300,8 +327,6 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
visible_sample_steps = False
|
||||
visible_inp_refs = True
|
||||
yield (
|
||||
gr.update(choices=list(dict_language.keys())),
|
||||
gr.update(choices=list(dict_language.keys())),
|
||||
prompt_text_update,
|
||||
prompt_language_update,
|
||||
text_update,
|
||||
@ -312,33 +337,42 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
choices=[4, 8, 16, 32, 64, 128] if model_version == "v3" else [4, 8, 16, 32],
|
||||
),
|
||||
gr.update(visible=visible_inp_refs),
|
||||
gr.update(interactive=True if model_version not in v3v4set else False),
|
||||
gr.update(value=i18n("模型加载中,请等待"), interactive=False),
|
||||
gr.update(value=False, interactive=True if model_version not in v3v4set else False),
|
||||
gr.update(visible=True if model_version == "v3" else False),
|
||||
gr.update(value=i18n("模型加载中, 请等待"), interactive=False),
|
||||
)
|
||||
|
||||
tts_pipeline.init_vits_weights(sovits_path)
|
||||
|
||||
yield (
|
||||
gr.update(choices=list(dict_language.keys())),
|
||||
gr.update(choices=list(dict_language.keys())),
|
||||
prompt_text_update,
|
||||
prompt_language_update,
|
||||
text_update,
|
||||
text_language_update,
|
||||
gr.update(
|
||||
visible=visible_sample_steps,
|
||||
value=32 if model_version == "v3" else 8,
|
||||
choices=[4, 8, 16, 32, 64, 128] if model_version == "v3" else [4, 8, 16, 32],
|
||||
),
|
||||
gr.update(visible=visible_inp_refs),
|
||||
gr.update(interactive=True if model_version not in v3v4set else False),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.update(value=i18n("合成语音"), interactive=True),
|
||||
)
|
||||
|
||||
|
||||
def change_gpt_weights(gpt_path):
|
||||
async def change_gpt_weights(gpt_path):
|
||||
tts_pipeline.init_t2s_weights(gpt_path)
|
||||
|
||||
|
||||
def html_center(text, label="p"):
|
||||
return f"""<div style="text-align: center; margin: 100; padding: 50;">
|
||||
<{label} style="margin: 0; padding: 0;">{text}</{label}>
|
||||
</div>"""
|
||||
|
||||
|
||||
def html_left(text, label="p"):
|
||||
return f"""<div style="text-align: left; margin: 0; padding: 0;">
|
||||
<{label} style="margin: 0; padding: 0;">{text}</{label}>
|
||||
</div>"""
|
||||
|
||||
|
||||
with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css) as app:
|
||||
gr.HTML(
|
||||
top_html.format(
|
||||
@ -347,191 +381,112 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
),
|
||||
elem_classes="markdown",
|
||||
)
|
||||
|
||||
with gr.Column():
|
||||
# with gr.Group():
|
||||
gr.Markdown(value=i18n("模型切换"))
|
||||
with gr.Row(equal_height=True):
|
||||
GPT_dropdown = gr.Dropdown(
|
||||
label=i18n("GPT模型列表"),
|
||||
choices=sorted(GPT_names, key=custom_sort_key),
|
||||
value=gpt_path,
|
||||
interactive=True,
|
||||
)
|
||||
SoVITS_dropdown = gr.Dropdown(
|
||||
label=i18n("SoVITS模型列表"),
|
||||
choices=sorted(SoVITS_names, key=custom_sort_key),
|
||||
value=sovits_path,
|
||||
interactive=True,
|
||||
)
|
||||
refresh_button = gr.Button(i18n("刷新模型路径"), variant="primary")
|
||||
refresh_button.click(fn=change_choices_gradio, inputs=[], outputs=[SoVITS_dropdown, GPT_dropdown])
|
||||
|
||||
gr.Markdown(html_center(i18n("模型切换"), "h3"))
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column():
|
||||
gr.Markdown(value=i18n("*请上传并填写参考信息"))
|
||||
with gr.Column(scale=2):
|
||||
with gr.Row(equal_height=True):
|
||||
inp_ref = gr.Audio(
|
||||
label=i18n("主参考音频(请上传3~10秒内参考音频,超过会报错!)"),
|
||||
type="filepath",
|
||||
waveform_options={"show_recording_waveform": False},
|
||||
GPT_dropdown = gr.Dropdown(
|
||||
label=i18n("GPT模型列表"),
|
||||
choices=GPT_names,
|
||||
value=str(gpt_path),
|
||||
interactive=True,
|
||||
)
|
||||
inp_refs = gr.File(
|
||||
label=i18n("辅参考音频(可选多个,或不选)"),
|
||||
file_count="multiple",
|
||||
visible=True if model_version != "v3" else False,
|
||||
SoVITS_dropdown = gr.Dropdown(
|
||||
label=i18n("SoVITS模型列表"),
|
||||
choices=SoVITS_names,
|
||||
value=str(sovits_path),
|
||||
interactive=True,
|
||||
)
|
||||
prompt_text = gr.Textbox(label=i18n("主参考音频的文本"), value="", lines=2)
|
||||
with gr.Column(scale=1):
|
||||
refresh_button = gr.Button(i18n("刷新模型路径"), variant="primary", scale=14)
|
||||
refresh_button.click(fn=change_choices_i18n, inputs=[], outputs=[SoVITS_dropdown, GPT_dropdown])
|
||||
gr.Markdown(html_center(i18n("*请上传并填写参考信息"), "h3"))
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column(scale=2):
|
||||
with gr.Row(equal_height=True):
|
||||
prompt_language = gr.Dropdown(
|
||||
label=i18n("主参考音频的语种"), choices=list(dict_language.keys()), value=i18n("中文")
|
||||
)
|
||||
with gr.Column():
|
||||
ref_text_free = gr.Checkbox(
|
||||
label=i18n("开启无参考文本模式。不填参考文本亦相当于开启。"),
|
||||
value=False,
|
||||
interactive=True if model_version != "v3" else False,
|
||||
show_label=True,
|
||||
with gr.Column(scale=1):
|
||||
inp_ref = gr.Audio(
|
||||
label=i18n("请上传3~10秒内参考音频, 超过会报错!"),
|
||||
type="filepath",
|
||||
sources="upload",
|
||||
scale=13,
|
||||
editable=False,
|
||||
waveform_options={"show_recording_waveform": False},
|
||||
)
|
||||
with gr.Column(scale=1):
|
||||
gr.Markdown(
|
||||
i18n("使用无参考文本模式时建议使用微调的GPT")
|
||||
+ "<br>"
|
||||
+ i18n("听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。")
|
||||
html_center(
|
||||
i18n("使用无参考文本模式时建议使用微调的GPT") + ", " + i18n("开启后无视填写的参考文本.")
|
||||
)
|
||||
)
|
||||
|
||||
with gr.Column():
|
||||
gr.Markdown(value=i18n("*请填写需要合成的目标文本和语种模式"))
|
||||
text = gr.Textbox(label=i18n("需要合成的文本"), value="", lines=20, max_lines=20)
|
||||
text_language = gr.Dropdown(
|
||||
label=i18n("需要合成的文本的语种"), choices=list(dict_language.keys()), value=i18n("中文")
|
||||
)
|
||||
|
||||
with gr.Group():
|
||||
gr.Markdown(value=i18n("推理设置"))
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column():
|
||||
with gr.Row(equal_height=True):
|
||||
batch_size = gr.Slider(
|
||||
minimum=1, maximum=20, step=1, label=i18n("batch_size"), value=10, interactive=True
|
||||
)
|
||||
sample_steps = gr.Radio(
|
||||
label=i18n("采样步数(仅对V3/4生效)"), value=32, choices=[4, 8, 16, 32, 64, 128], visible=True
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
fragment_interval = gr.Slider(
|
||||
minimum=0.01, maximum=1, step=0.01, label=i18n("分段间隔(秒)"), value=0.3, interactive=True
|
||||
)
|
||||
speed_factor = gr.Slider(
|
||||
minimum=0.6, maximum=1.65, step=0.05, label="语速", value=1.0, interactive=True
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
top_k = gr.Slider(minimum=1, maximum=100, step=1, label=i18n("top_k"), value=5, interactive=True)
|
||||
top_p = gr.Slider(minimum=0, maximum=1, step=0.05, label=i18n("top_p"), value=1, interactive=True)
|
||||
with gr.Row(equal_height=True):
|
||||
temperature = gr.Slider(
|
||||
minimum=0, maximum=1, step=0.05, label=i18n("temperature"), value=1, interactive=True
|
||||
)
|
||||
repetition_penalty = gr.Slider(
|
||||
minimum=0, maximum=2, step=0.05, label=i18n("重复惩罚"), value=1.35, interactive=True
|
||||
)
|
||||
|
||||
with gr.Column():
|
||||
with gr.Row(equal_height=True):
|
||||
how_to_cut = gr.Dropdown(
|
||||
label=i18n("怎么切"),
|
||||
choices=[
|
||||
i18n("不切"),
|
||||
i18n("凑四句一切"),
|
||||
i18n("凑50字一切"),
|
||||
i18n("按中文句号。切"),
|
||||
i18n("按英文句号.切"),
|
||||
i18n("按标点符号切"),
|
||||
],
|
||||
value=i18n("凑四句一切"),
|
||||
interactive=True,
|
||||
ref_text_free = gr.Checkbox(
|
||||
label=i18n("开启无参考文本模式"),
|
||||
info=i18n("不填参考文本亦相当于开启") + ", " + i18n("v3暂不支持该模式, 使用了会报错"),
|
||||
value=False,
|
||||
interactive=True if model_version not in v3v4set else False,
|
||||
show_label=True,
|
||||
scale=1,
|
||||
)
|
||||
super_sampling = gr.Checkbox(
|
||||
label=i18n("音频超采样(仅对V3生效))"), value=False, interactive=True, show_label=True
|
||||
prompt_language = gr.Dropdown(
|
||||
label="",
|
||||
info=i18n("参考音频的语种"),
|
||||
choices=list(dict_language.keys()),
|
||||
value=i18n("中文"),
|
||||
)
|
||||
prompt_text = gr.Textbox(label="", info=i18n("参考音频的文本"), value="", lines=3, max_lines=3)
|
||||
|
||||
with gr.Row(equal_height=True):
|
||||
parallel_infer = gr.Checkbox(label=i18n("并行推理"), value=True, interactive=True, show_label=True)
|
||||
split_bucket = gr.Checkbox(
|
||||
label=i18n("数据分桶(并行推理时会降低一点计算量)"),
|
||||
value=False,
|
||||
interactive=False,
|
||||
show_label=True,
|
||||
)
|
||||
|
||||
with gr.Row(equal_height=True):
|
||||
seed = gr.Number(label=i18n("随机种子"), value=-1)
|
||||
keep_random = gr.Checkbox(label=i18n("保持随机"), value=True, interactive=True, show_label=True)
|
||||
|
||||
output = gr.Audio(
|
||||
label=i18n("输出的语音"),
|
||||
waveform_options={"show_recording_waveform": False},
|
||||
with gr.Column(scale=1):
|
||||
inp_refs = (
|
||||
gr.File(
|
||||
label=i18n(
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管."
|
||||
),
|
||||
file_count="multiple",
|
||||
)
|
||||
if model_version not in v3v4set
|
||||
else gr.File(
|
||||
label=i18n(
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管."
|
||||
),
|
||||
file_count="multiple",
|
||||
visible=False,
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
inference_button = gr.Button(i18n("合成语音"), variant="primary")
|
||||
stop_infer = gr.Button(i18n("终止合成"), variant="primary")
|
||||
|
||||
inference_button.click(
|
||||
inference,
|
||||
[
|
||||
text,
|
||||
text_language,
|
||||
inp_ref,
|
||||
inp_refs,
|
||||
prompt_text,
|
||||
prompt_language,
|
||||
top_k,
|
||||
top_p,
|
||||
temperature,
|
||||
how_to_cut,
|
||||
batch_size,
|
||||
speed_factor,
|
||||
ref_text_free,
|
||||
split_bucket,
|
||||
fragment_interval,
|
||||
seed,
|
||||
keep_random,
|
||||
parallel_infer,
|
||||
repetition_penalty,
|
||||
sample_steps,
|
||||
super_sampling,
|
||||
],
|
||||
[output, seed],
|
||||
)
|
||||
stop_infer.click(tts_pipeline.stop, [], [])
|
||||
SoVITS_dropdown.change(
|
||||
change_sovits_weights,
|
||||
[SoVITS_dropdown, prompt_language, text_language],
|
||||
[
|
||||
prompt_language,
|
||||
text_language,
|
||||
prompt_text,
|
||||
prompt_language,
|
||||
text,
|
||||
text_language,
|
||||
sample_steps,
|
||||
inp_refs,
|
||||
ref_text_free,
|
||||
inference_button,
|
||||
],
|
||||
) #
|
||||
GPT_dropdown.change(change_gpt_weights, [GPT_dropdown], [])
|
||||
|
||||
with gr.Group():
|
||||
gr.Markdown(
|
||||
value=i18n(
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。"
|
||||
)
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
text_inp = gr.Textbox(label=i18n("需要合成的切分前文本"), value="", lines=4)
|
||||
with gr.Column():
|
||||
_how_to_cut = gr.Radio(
|
||||
sample_steps = (
|
||||
gr.Radio(
|
||||
label=i18n("采样步数,如果觉得电,提高试试,如果觉得慢,降低试试"),
|
||||
value=32 if model_version == "v3" else 8,
|
||||
choices=[4, 8, 16, 32, 64, 128] if model_version == "v3" else [4, 8, 16, 32],
|
||||
visible=True,
|
||||
)
|
||||
if model_version in v3v4set
|
||||
else gr.Radio(
|
||||
label=i18n("采样步数,如果觉得电,提高试试,如果觉得慢,降低试试"),
|
||||
choices=[4, 8, 16, 32, 64, 128] if model_version == "v3" else [4, 8, 16, 32],
|
||||
visible=False,
|
||||
value=32 if model_version == "v3" else 8,
|
||||
)
|
||||
)
|
||||
if_sr_Checkbox = gr.Checkbox(
|
||||
label=i18n("v3输出如果觉得闷可以试试开超分"),
|
||||
value=False,
|
||||
interactive=True,
|
||||
show_label=True,
|
||||
visible=False if model_version != "v3" else True,
|
||||
)
|
||||
gr.Markdown(html_center(i18n("*请填写需要合成的目标文本和语种模式"), "h3"))
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column(scale=2):
|
||||
text = gr.Textbox(label=i18n("需要合成的文本"), value="", lines=30, max_lines=40)
|
||||
with gr.Column(scale=1):
|
||||
with gr.Row(equal_height=True):
|
||||
text_language = gr.Dropdown(
|
||||
label=i18n("需要合成的语种") + ", " + i18n("限制范围越小判别效果越好"),
|
||||
choices=list(dict_language.keys()),
|
||||
value=i18n("中文"),
|
||||
scale=1,
|
||||
)
|
||||
how_to_cut = gr.Dropdown(
|
||||
label=i18n("怎么切"),
|
||||
choices=[
|
||||
i18n("不切"),
|
||||
@ -543,24 +498,94 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
],
|
||||
value=i18n("凑四句一切"),
|
||||
interactive=True,
|
||||
scale=1,
|
||||
)
|
||||
cut_text = gr.Button(i18n("切分"), variant="primary")
|
||||
with gr.Row(equal_height=True):
|
||||
parallel_infer = gr.Checkbox(label=i18n("并行推理"), value=True, interactive=True, show_label=True)
|
||||
batch_size = gr.Slider(
|
||||
minimum=1, maximum=40, step=1, label=i18n("batch_size"), value=20, interactive=True
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
speed = gr.Slider(
|
||||
minimum=0.6, maximum=1.65, step=0.05, label=i18n("语速"), value=1, interactive=True, scale=1
|
||||
)
|
||||
pause_second_slider = gr.Slider(
|
||||
minimum=0.1,
|
||||
maximum=0.5,
|
||||
step=0.01,
|
||||
label=i18n("句间停顿秒数"),
|
||||
value=0.3,
|
||||
interactive=True,
|
||||
scale=1,
|
||||
)
|
||||
gr.Markdown(html_center(i18n("GPT采样参数:")))
|
||||
top_k = gr.Slider(minimum=1, maximum=100, step=1, label=i18n("top_k"), value=15, interactive=True, scale=1)
|
||||
top_p = gr.Slider(minimum=0, maximum=1, step=0.05, label=i18n("top_p"), value=1, interactive=True, scale=1)
|
||||
temperature = gr.Slider(
|
||||
minimum=0, maximum=1, step=0.05, label=i18n("temperature"), value=1, interactive=True, scale=1
|
||||
)
|
||||
repetition_penalty = gr.Slider(
|
||||
minimum=0, maximum=2, step=0.05, label=i18n("重复惩罚"), value=1.35, interactive=True
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
with gr.Column(scale=2):
|
||||
inference_button = gr.Button(value=i18n("合成语音"), variant="primary", size="lg")
|
||||
with gr.Column(scale=1):
|
||||
output = gr.Audio(
|
||||
label=i18n("输出的语音"),
|
||||
waveform_options={"show_recording_waveform": False},
|
||||
editable=False,
|
||||
)
|
||||
|
||||
def to_cut(text_inp, how_to_cut):
|
||||
if len(text_inp.strip()) == 0 or text_inp == []:
|
||||
return ""
|
||||
method = get_method(cut_method[how_to_cut])
|
||||
return method(text_inp)
|
||||
|
||||
text_opt = gr.Textbox(label=i18n("切分后文本"), value="", lines=4)
|
||||
cut_text.click(to_cut, [text_inp, _how_to_cut], [text_opt])
|
||||
gr.Markdown(value=i18n("后续将支持转音素、手工修改音素、语音合成分步执行。"))
|
||||
inference_button.click(
|
||||
inference,
|
||||
[
|
||||
text,
|
||||
text_language,
|
||||
inp_ref,
|
||||
inp_refs,
|
||||
prompt_text,
|
||||
prompt_language,
|
||||
top_k,
|
||||
top_p,
|
||||
temperature,
|
||||
how_to_cut,
|
||||
batch_size,
|
||||
speed,
|
||||
ref_text_free,
|
||||
pause_second_slider,
|
||||
parallel_infer,
|
||||
repetition_penalty,
|
||||
sample_steps,
|
||||
if_sr_Checkbox,
|
||||
],
|
||||
[output],
|
||||
)
|
||||
SoVITS_dropdown.change(
|
||||
change_sovits_weights,
|
||||
[SoVITS_dropdown, prompt_language, text_language],
|
||||
[
|
||||
prompt_text,
|
||||
prompt_language,
|
||||
text,
|
||||
text_language,
|
||||
sample_steps,
|
||||
inp_refs,
|
||||
ref_text_free,
|
||||
if_sr_Checkbox,
|
||||
inference_button,
|
||||
],
|
||||
)
|
||||
GPT_dropdown.change(change_gpt_weights, [GPT_dropdown], [])
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.queue().launch( # concurrency_count=511, max_size=1022
|
||||
app.queue(
|
||||
api_open=False,
|
||||
default_concurrency_limit=1,
|
||||
max_size=1024,
|
||||
).launch(
|
||||
server_name="0.0.0.0",
|
||||
inbrowser=True,
|
||||
share=is_share,
|
||||
server_port=infer_ttswebui,
|
||||
# quiet=True,
|
||||
)
|
||||
|
||||
@ -77,7 +77,7 @@ def _remove_commas(m):
|
||||
|
||||
def _expand_time(m):
|
||||
"""
|
||||
将 24 小时制的时间转换为 12 小时制的时间表示方式。
|
||||
将 24 小时制的时间转换为 12 小时制的时间表示方式
|
||||
|
||||
Examples:
|
||||
input: "13:00 / 4:00 / 13:30"
|
||||
|
||||
2
api.py
2
api.py
@ -375,7 +375,7 @@ def get_sovits_weights(sovits_path):
|
||||
path_sovits = path_sovits_v3 if model_version == "v3" else path_sovits_v4
|
||||
|
||||
if if_lora_v3 is True and is_exist is False:
|
||||
logger.info(f"SoVITS {model_version} 底模缺失,无法加载相应 LoRA 权重")
|
||||
logger.info(f"SoVITS {model_version} 底模缺失, 无法加载相应 LoRA 权重")
|
||||
|
||||
dict_s2 = load_sovits_new(sovits_path)
|
||||
hps = dict_s2["config"]
|
||||
|
||||
47
config.py
47
config.py
@ -25,13 +25,13 @@ pretrained_gpt_name = {
|
||||
"v2ProPlus": "GPT_SoVITS/pretrained_models/s1v3.ckpt",
|
||||
}
|
||||
name2sovits_path = {
|
||||
"不训练直接推v2底模!": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth",
|
||||
"不训练直接推v2Pro底模!": "GPT_SoVITS/pretrained_models/v2Pro/s2Gv2Pro.pth",
|
||||
"不训练直接推v2底模!": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth",
|
||||
"不训练直接推v2ProPlus底模!": "GPT_SoVITS/pretrained_models/v2Pro/s2Gv2ProPlus.pth",
|
||||
}
|
||||
name2gpt_path = {
|
||||
"不训练直接推v2底模!": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt",
|
||||
"不训练直接推v3底模!": "GPT_SoVITS/pretrained_models/s1v3.ckpt",
|
||||
"不训练直接推v2底模!": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt",
|
||||
}
|
||||
SoVITS_weight_root = [
|
||||
"SoVITS_weights",
|
||||
@ -77,9 +77,6 @@ def custom_sort_key(s):
|
||||
|
||||
def get_weights_names(i18n):
|
||||
SoVITS_names: list[tuple[str, str]] = []
|
||||
for key, value in name2sovits_path.items():
|
||||
if os.path.exists(value):
|
||||
SoVITS_names.append((i18n(key), value))
|
||||
for path in SoVITS_weight_root:
|
||||
if not os.path.exists(path):
|
||||
continue
|
||||
@ -87,9 +84,6 @@ def get_weights_names(i18n):
|
||||
if name.endswith(".pth"):
|
||||
SoVITS_names.append((f"{path}/{name}", f"{path}/{name}"))
|
||||
GPT_names: list[tuple[str, str]] = []
|
||||
for key, value in name2gpt_path.items():
|
||||
if os.path.exists(value):
|
||||
GPT_names.append((i18n(key), value))
|
||||
for path in GPT_weight_root:
|
||||
if not os.path.exists(path):
|
||||
continue
|
||||
@ -100,11 +94,23 @@ def get_weights_names(i18n):
|
||||
SoVITS_names = sorted(SoVITS_names, key=custom_sort_key)
|
||||
GPT_names = sorted(GPT_names, key=custom_sort_key)
|
||||
|
||||
tmp_GPT: list[tuple[str, str]] = []
|
||||
tmp_SoVITS: list[tuple[str, str]] = []
|
||||
|
||||
for key, value in name2gpt_path.items():
|
||||
if os.path.exists(value):
|
||||
tmp_GPT.append((i18n(key), value))
|
||||
|
||||
for key, value in name2sovits_path.items():
|
||||
if os.path.exists(value):
|
||||
tmp_SoVITS.append((i18n(key), value))
|
||||
|
||||
for key, value in pretrained_sovits_name.items():
|
||||
if key in {"v3", "v4", "v1"}:
|
||||
SoVITS_names.append((value, value))
|
||||
GPT_names.append((pretrained_gpt_name["v1"], pretrained_gpt_name["v1"]))
|
||||
return SoVITS_names, GPT_names
|
||||
tmp_SoVITS.append((value, value))
|
||||
tmp_GPT.append((pretrained_gpt_name["v1"], pretrained_gpt_name["v1"]))
|
||||
|
||||
return tmp_SoVITS + SoVITS_names, tmp_GPT + GPT_names
|
||||
|
||||
|
||||
def change_choices(i18n):
|
||||
@ -236,22 +242,3 @@ class Config:
|
||||
self.webui_port_subfix = webui_port_subfix
|
||||
|
||||
self.api_port = api_port
|
||||
|
||||
|
||||
def get_implement(device: torch.device):
|
||||
if torch.cuda.is_available():
|
||||
idx = device.index
|
||||
capability = torch.cuda.get_device_capability(idx)
|
||||
major, minor = capability
|
||||
sm_version = major + minor / 10.0
|
||||
if sm_version >= 7.5:
|
||||
return "flash_attn"
|
||||
else:
|
||||
if sys.platform == "linux":
|
||||
return "sage_attn"
|
||||
else:
|
||||
return "naive"
|
||||
elif torch.mps.is_available():
|
||||
return "mlx"
|
||||
else:
|
||||
return "naive"
|
||||
|
||||
@ -3,121 +3,121 @@
|
||||
## 202401
|
||||
|
||||
- 2024.01.21 [PR#108](https://github.com/RVC-Boss/GPT-SoVITS/pull/108)
|
||||
- 内容: WebUIに英語システム翻訳サポートを追加。
|
||||
- 内容: WebUI に英語システム翻訳サポートを追加
|
||||
- タイプ: ドキュメンテーション
|
||||
- 貢献者: D3lik
|
||||
- 2024.01.21 [Commit#7b89c9ed](https://github.com/RVC-Boss/GPT-SoVITS/commit/7b89c9ed5669f63c4ed6ae791408969640bdcf3e)
|
||||
- 内容: SoVITSトレーニングのZeroDivisionError修正を試みた。
|
||||
- 内容: SoVITS トレーニングの ZeroDivisionError 修正を試みた
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss, Tybost
|
||||
- 関連: [Issue#79](https://github.com/RVC-Boss/GPT-SoVITS/issues/79)
|
||||
- 2024.01.21 [Commit#ea62d6e0](https://github.com/RVC-Boss/GPT-SoVITS/commit/ea62d6e0cf1efd75287766ea2b55d1c3b69b4fd3)
|
||||
- 内容: 合成音声に参照音声の終端が含まれる問題を大幅に軽減。
|
||||
- 内容: 合成音声に参照音声の終端が含まれる問題を大幅に軽減
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.21 [Commit#a87ad522](https://github.com/RVC-Boss/GPT-SoVITS/commit/a87ad5228ed2d729da42019ae1b93171f6a745ef)
|
||||
- 内容: `cmd-asr.py`がデフォルトディレクトリにFunASRモデルが含まれているか確認し、ない場合はModelScopeからダウンロードするようになった。
|
||||
- 内容: `cmd-asr.py`がデフォルトディレクトリに FunASR モデルが含まれているか確認し、ない場合は ModelScope からダウンロードするようになった
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.21 [Commit#f6147116](https://github.com/RVC-Boss/GPT-SoVITS/commit/f61471166c107ba56ccb7a5137fa9d7c09b2830d)
|
||||
- 内容: `Config.py`に`is_share`パラメータを追加、`True`に設定するとWebUIを公開ネットワークにマッピング可能。
|
||||
- 内容: `Config.py`に`is_share`パラメータを追加、`True`に設定すると WebUI を公開ネットワークにマッピング可能
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.21 [Commit#102d5081](https://github.com/RVC-Boss/GPT-SoVITS/commit/102d50819e5d24580d6e96085b636b25533ecc7f)
|
||||
- 内容: `TEMP`フォルダ内のキャッシュ音声ファイルやその他ファイルをクリーンアップ。
|
||||
- 内容: `TEMP`フォルダ内のキャッシュ音声ファイルやその他ファイルをクリーンアップ
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.22 [Commit#872134c8](https://github.com/RVC-Boss/GPT-SoVITS/commit/872134c846bcb8f1909a3f5aff68a6aa67643f68)
|
||||
- 内容: 極端に短い出力ファイルで参照音声が繰り返される問題を修正。
|
||||
- 内容: 極端に短い出力ファイルで参照音声が繰り返される問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.22 英語と日本語トレーニングのネイティブサポートをテスト(日本語トレーニングはルートディレクトリに非英語特殊文字がないことが必要)。
|
||||
- 2024.01.22 英語と日本語トレーニングのネイティブサポートをテスト (日本語トレーニングはルートディレクトリに非英語特殊文字がないことが必要)
|
||||
- 2024.01.22 [PR#124](https://github.com/RVC-Boss/GPT-SoVITS/pull/124)
|
||||
- 内容: 音声パスチェックを改善。不正な入力パスから読み取ろうとすると、ffmpegエラーではなくパスが存在しないと報告するようになった。
|
||||
- 内容: 音声パスチェックを改善, 不正な入力パスから読み取ろうとすると、ffmpeg エラーではなくパスが存在しないと報告するようになった
|
||||
- タイプ: 最適化
|
||||
- 貢献者: xmimu
|
||||
- 2024.01.23 [Commit#93c47cd9](https://github.com/RVC-Boss/GPT-SoVITS/commit/93c47cd9f0c53439536eada18879b4ec5a812ae1)
|
||||
- 内容: Hubert抽出がNaNエラーを引き起こし、SoVITS/GPTトレーニングでZeroDivisionErrorが発生する問題を解決。
|
||||
- 内容: Hubert 抽出が NaN エラーを引き起こし、SoVITS/GPT トレーニングで ZeroDivisionError が発生する問題を解決
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.23 [Commit#80fffb0a](https://github.com/RVC-Boss/GPT-SoVITS/commit/80fffb0ad46e4e7f27948d5a57c88cf342088d50)
|
||||
- 内容: 中国語分ツール`jieba`を`jieba_fast`に置き換え。
|
||||
- 内容: 中国語分ツール`jieba`を`jieba_fast`に置き換え
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.23 [Commit#63625758](https://github.com/RVC-Boss/GPT-SoVITS/commit/63625758a99e645f3218dd167924e01a0e3cf0dc)
|
||||
- 内容: モデルファイルのソートロジックを最適化。
|
||||
- 内容: モデルファイルのソートロジックを最適化
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.23 [Commit#0c691191](https://github.com/RVC-Boss/GPT-SoVITS/commit/0c691191e894c15686e88279745712b3c6dc232f)
|
||||
- 内容: 推論WebUIでクイックモデル切り替えをサポート追加。
|
||||
- 内容: 推論 WebUI でクイックモデル切り替えをサポート追加
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.25 [Commit#249561e5](https://github.com/RVC-Boss/GPT-SoVITS/commit/249561e5a18576010df6587c274d38cbd9e18b4b)
|
||||
- 内容: 推論WebUIの冗長なログを削除。
|
||||
- 内容: 推論 WebUI の冗長なログを削除
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.25 [PR#183](https://github.com/RVC-Boss/GPT-SoVITS/pull/183), [PR#200](https://github.com/RVC-Boss/GPT-SoVITS/pull/200)
|
||||
- 内容: Macでのトレーニングと推論をサポート。
|
||||
- 内容: Mac でのトレーニングと推論をサポート
|
||||
- タイプ: 機能
|
||||
- 貢献者: Lion-Wu
|
||||
- 2024.01.26 [Commit#813cf96e](https://github.com/RVC-Boss/GPT-SoVITS/commit/813cf96e508ba1bb2c658f38c7cc77b797fb4082), [Commit#2d1ddeca](https://github.com/RVC-Boss/GPT-SoVITS/commit/2d1ddeca42db90c3fe2d0cd79480fd544d87f02b)
|
||||
- 内容: UVR5の読み取り時にディレクトリが自動的に飛び出す問題を修正。
|
||||
- 内容: UVR5 の読み取り時にディレクトリが自動的に飛び出す問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.26 [PR#204](https://github.com/RVC-Boss/GPT-SoVITS/pull/204)
|
||||
- 内容: 中日混合および日英混合出力テキストをサポート追加。
|
||||
- 内容: 中日混合および日英混合出力テキストをサポート追加
|
||||
- タイプ: 機能
|
||||
- 貢献者: Kakaru Hayate
|
||||
- 2024.01.26 [Commit#f4148cf7](https://github.com/RVC-Boss/GPT-SoVITS/commit/f4148cf77fb899c22bcdd4e773d2f24ab34a73e7)
|
||||
- 内容: 出力のセグメンテーションモードをオプションで追加。
|
||||
- 内容: 出力のセグメンテーションモードをオプションで追加
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.26 [Commit#9fe955c1](https://github.com/RVC-Boss/GPT-SoVITS/commit/9fe955c1bf5f94546c9f699141281f2661c8a180)
|
||||
- 内容: 複数改行による推論エラーを修正。
|
||||
- 内容: 複数改行による推論エラーを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.26 [Commit#84ee4719](https://github.com/RVC-Boss/GPT-SoVITS/commit/84ee471936b332bc2ccee024d6dfdedab4f0dc7b)
|
||||
- 内容: 半精度をサポートしないGPU向けに自動的に単精度を強制。CPU推論時も単精度を強制。
|
||||
- 内容: 半精度をサポートしない GPU 向けに自動的に単精度を強制, CPU 推論時も単精度を強制
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.28 [PR#238](https://github.com/RVC-Boss/GPT-SoVITS/pull/238)
|
||||
- 内容: Dockerfile内のモデルダウンロードプロセスを完了。
|
||||
- 内容: Dockerfile 内のモデルダウンロードプロセスを完了
|
||||
- タイプ: 修正
|
||||
- 貢献者: breakstring
|
||||
- 2024.01.28 [PR#257](https://github.com/RVC-Boss/GPT-SoVITS/pull/257)
|
||||
- 内容: 数字の発音が中国語文字に変換される問題を修正。
|
||||
- 内容: 数字の発音が中国語文字に変換される問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: duliangang
|
||||
- 2024.01.28 [Commit#f0cfe397](https://github.com/RVC-Boss/GPT-SoVITS/commit/f0cfe397089a6fd507d678c71adeaab5e7ed0683)
|
||||
- 内容: GPTトレーニングがチェックポイントを保存しない問題を修正。
|
||||
- 内容: GPT トレーニングがチェックポイントを保存しない問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.28 [Commit#b8ae5a27](https://github.com/RVC-Boss/GPT-SoVITS/commit/b8ae5a2761e2654fc0c905498009d3de9de745a8)
|
||||
- 内容: 制限を設定して不合理な参照音声長を除外。
|
||||
- 内容: 制限を設定して不合理な参照音声長を除外
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.28 [Commit#698e9655](https://github.com/RVC-Boss/GPT-SoVITS/commit/698e9655132d194b25b86fbbc99d53c8d2cea2a3)
|
||||
- 内容: 文頭の数文字が飲み込まれる問題を修正。
|
||||
- 内容: 文頭の数文字が飲み込まれる問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.29 [Commit#ff977a5f](https://github.com/RVC-Boss/GPT-SoVITS/commit/ff977a5f5dc547e0ad82b9e0f1cd95fbc830b2b0)
|
||||
- 内容: 16シリーズのような半精度トレーニングに問題があるGPU向けに、トレーニング設定を単精度に変更。
|
||||
- 内容: 16 シリーズのような半精度トレーニングに問題がある GPU 向けに、トレーニング設定を単精度に変更
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.29 [Commit#172e139f](https://github.com/RVC-Boss/GPT-SoVITS/commit/172e139f45ac26723bc2cf7fac0112f69d6b46ec)
|
||||
- 内容: 利用可能なColabバージョンをテストして更新。
|
||||
- 内容: 利用可能な Colab バージョンをテストして更新
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.29 [PR#135](https://github.com/RVC-Boss/GPT-SoVITS/pull/135)
|
||||
- 内容: FunASRをバージョン1.0に更新し、インターフェース不一致によるエラーを修正。
|
||||
- 内容: FunASR をバージョン 1.0 に更新し、インターフェース不一致によるエラーを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: LauraGPT
|
||||
- 2024.01.30 [Commit#1c2fa98c](https://github.com/RVC-Boss/GPT-SoVITS/commit/1c2fa98ca8c325dcfb32797d22ff1c2a726d1cb4)
|
||||
- 内容: 中日英句読点の分割問題を修正し、文の始めと終わりに句読点を追加。
|
||||
- 内容: 中日英句読点の分割問題を修正し、文の始めと終わりに句読点を追加
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.30 [Commit#74409f35](https://github.com/RVC-Boss/GPT-SoVITS/commit/74409f3570fa1c0ff28d4c65c288a6ce58ca00d2)
|
||||
- 内容: 句読点による分割を追加。
|
||||
- 内容: 句読点による分割を追加
|
||||
- タイプ: 機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.01.30 [Commit#c42eeccf](https://github.com/RVC-Boss/GPT-SoVITS/commit/c42eeccfdd2d0a0d714ecc8bfc22a12373aca6b7)
|
||||
@ -128,11 +128,11 @@
|
||||
## 202402
|
||||
|
||||
- 2024.02.01 [Commit#45f73519](https://github.com/RVC-Boss/GPT-SoVITS/commit/45f73519cc41cd17cf816d8b997a9dcb0bee04b6)
|
||||
- 内容: ASRパス末尾のスラッシュによるファイル名保存エラーの修正
|
||||
- 内容: ASR パス末尾のスラッシュによるファイル名保存エラーの修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.03 [Commit#dba1a74c](https://github.com/RVC-Boss/GPT-SoVITS/commit/dba1a74ccb0cf19a1b4eb93faf11d4ec2b1fc5d7)
|
||||
- 内容: UVR5のフォーマット読み取りエラーによる音声分離失敗の修正
|
||||
- 内容: UVR5 のフォーマット読み取りエラーによる音声分離失敗の修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.03 [Commit#3ebff70b](https://github.com/RVC-Boss/GPT-SoVITS/commit/3ebff70b71580ee1f97b3238c9442cbc5aef47c7)
|
||||
@ -140,7 +140,7 @@
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.03 [PR#377](https://github.com/RVC-Boss/GPT-SoVITS/pull/377)
|
||||
- 内容: PaddleSpeechのテキスト正規化を導入(例: xx.xx%表記、「元/吨」を「元每吨」と正確に読む、アンダースコア問題の解消)
|
||||
- 内容: PaddleSpeech のテキスト正規化を導入(例: xx.xx%表記、「元/吨」を「元每吨」と正確に読む、アンダースコア問題の解消)
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: KamioRinn
|
||||
- 2024.02.05 [PR#395](https://github.com/RVC-Boss/GPT-SoVITS/pull/395)
|
||||
@ -153,36 +153,36 @@
|
||||
- 貢献者: RVC-Boss
|
||||
- 関連: [Issue#391](https://github.com/RVC-Boss/GPT-SoVITS/issues/391)
|
||||
- 2024.02.06 [PR#403](https://github.com/RVC-Boss/GPT-SoVITS/pull/403)
|
||||
- 内容: UVR5の高バージョンLibrosaへの対応
|
||||
- 内容: UVR5 の高バージョン Librosa への対応
|
||||
- タイプ: 修正
|
||||
- 貢献者: StaryLan
|
||||
- 2024.02.07 [Commit#14a28510](https://github.com/RVC-Boss/GPT-SoVITS/commit/14a285109a521679f8846589c22da8f656a46ad8)
|
||||
- 内容: UVR5の「inf everywhere」エラーの修正(ブール型変換不足による半精度推論問題、16シリーズGPUで発生)
|
||||
- 内容: UVR5 の「inf everywhere」エラーの修正(ブール型変換不足による半精度推論問題、16 シリーズ GPU で発生)
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.07 [Commit#d74f888e](https://github.com/RVC-Boss/GPT-SoVITS/commit/d74f888e7ac86063bfeacef95d0e6ddafe42b3b2)
|
||||
- 内容: Gradio依存関係の修正
|
||||
- 内容: Gradio 依存関係の修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.07 [PR#400](https://github.com/RVC-Boss/GPT-SoVITS/pull/400)
|
||||
- 内容: Faster Whisperの統合による日本語・英語音声認識機能の追加
|
||||
- 内容: Faster Whisper の統合による日本語・英語音声認識機能の追加
|
||||
- タイプ: 新機能
|
||||
- 貢献者: Shadow
|
||||
- 2024.02.07 [Commit#6469048d](https://github.com/RVC-Boss/GPT-SoVITS/commit/6469048de12a8d6f0bd05d07f031309e61575a38)~[Commit#94ee71d9](https://github.com/RVC-Boss/GPT-SoVITS/commit/94ee71d9d562d10c9a1b96e745c6a6575aa66a10)
|
||||
- 内容: 3連ルートディレクトリ空欄時の自動.listファイルパス読み込み機能
|
||||
- 内容: 3 連ルートディレクトリ空欄時の自動.list ファイルパス読み込み機能
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.08 [Commit#59f35ada](https://github.com/RVC-Boss/GPT-SoVITS/commit/59f35adad85815df27e9c6b33d420f5ebfd8376b)
|
||||
- 内容: GPTトレーニングのフリーズ問題(Windows10 1909)と繁体字システム言語時のエラー修正
|
||||
- 内容: GPT トレーニングのフリーズ問題(Windows10 1909)と繁体字システム言語時のエラー修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 関連: [Issue#232](https://github.com/RVC-Boss/GPT-SoVITS/issues/232)
|
||||
- 2024.02.12 [PR#457](https://github.com/RVC-Boss/GPT-SoVITS/pull/457)
|
||||
- 内容: DPO損失実験的トレーニングオプションの追加(ネガティブサンプル構築によるGPTの繰り返し・文字抜け問題改善)、推論インターフェースの複数パラメータ公開
|
||||
- 内容: DPO 損失実験的トレーニングオプションの追加(ネガティブサンプル構築による GPT の繰り返し・文字抜け問題改善)、推論インターフェースの複数パラメータ公開
|
||||
- タイプ: 新機能
|
||||
- 貢献者: liufenghua
|
||||
- 2024.02.12 [Commit#2fa74ecb](https://github.com/RVC-Boss/GPT-SoVITS/commit/2fa74ecb941db27d9015583a9be6962898d66730), [Commit#d82f6bbb](https://github.com/RVC-Boss/GPT-SoVITS/commit/d82f6bbb98ba725e6725dcee99b80ce71fb0bf28)
|
||||
- 内容: 音声認識ロジックの最適化、Faster Whisperのミラーサイトダウンロード対応(HuggingFace接続問題回避)
|
||||
- 内容: 音声認識ロジックの最適化、Faster Whisper のミラーサイトダウンロード対応(HuggingFace 接続問題回避)
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.15 [Commit#dd2c4d6d](https://github.com/RVC-Boss/GPT-SoVITS/commit/dd2c4d6d7121bf82d29d0f0e4d788f3b231997c8)
|
||||
@ -190,7 +190,7 @@
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.15 [Commit#ccb9b08b](https://github.com/RVC-Boss/GPT-SoVITS/commit/ccb9b08be3c58e102defcc94ff4fd609da9e27ee)~[Commit#895fde46](https://github.com/RVC-Boss/GPT-SoVITS/commit/895fde46e420040ed26aaf0c5b7e99359d9b199b)
|
||||
- 内容: DPOトレーニングを必須からオプションに変更(選択時は自動的にバッチサイズ半減)、推論インターフェースの新パラメータ未伝達問題の修正
|
||||
- 内容: DPO トレーニングを必須からオプションに変更(選択時は自動的にバッチサイズ半減)、推論インターフェースの新パラメータ未伝達問題の修正
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.15 [Commit#7b0c3c67](https://github.com/RVC-Boss/GPT-SoVITS/commit/7b0c3c676495c64b2064aa472bff14b5c06206a5)
|
||||
@ -207,38 +207,38 @@
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: KamioRinn, v3cun
|
||||
- 2024.02.17 [PR#510](https://github.com/RVC-Boss/GPT-SoVITS/pull/511), [PR#511](https://github.com/RVC-Boss/GPT-SoVITS/pull/511)
|
||||
- 内容: Colabの公開URL未開始問題の修正
|
||||
- 内容: Colab の公開 URL 未開始問題の修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: ChanningWang2018, RVC-Boss
|
||||
- 2024.02.21 [PR#557](https://github.com/RVC-Boss/GPT-SoVITS/pull/557)
|
||||
- 内容: MacOS推論デバイスをMPSからCPUに変更(CPU推論の方が高速)
|
||||
- 内容: MacOS 推論デバイスを MPS から CPU に変更(CPU 推論の方が高速)
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.02.21 [Commit#6da486c1](https://github.com/RVC-Boss/GPT-SoVITS/commit/6da486c15d09e3d99fa42c5e560aaac56b6b4ce1), [Commit#5a171773](https://github.com/RVC-Boss/GPT-SoVITS/commit/5a17177342d2df1e11369f2f4f58d34a3feb1a35)
|
||||
- 内容: データ前処理に音声ノイズ除去オプション追加(16Kサンプルレートにダウンサンプリング、高ノイズ時以外は非推奨)
|
||||
- 内容: データ前処理に音声ノイズ除去オプション追加(16K サンプルレートにダウンサンプリング、高ノイズ時以外は非推奨)
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.02.28 [PR#573](https://github.com/RVC-Boss/GPT-SoVITS/pull/573)
|
||||
- 内容: is_half判定の修正によるMacOSの正常なCPU推論対応
|
||||
- 内容: is_half 判定の修正による MacOS の正常な CPU 推論対応
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.02.28 [PR#610](https://github.com/RVC-Boss/GPT-SoVITS/pull/610)
|
||||
- 内容: UVR5 MDXNetパラメータ順序エラーによる出力フォルダ逆転問題の修正
|
||||
- 内容: UVR5 MDXNet パラメータ順序エラーによる出力フォルダ逆転問題の修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: Yuze Wang
|
||||
|
||||
## 202403
|
||||
|
||||
- 2024.03.06 [PR#675](https://github.com/RVC-Boss/GPT-SoVITS/pull/675)
|
||||
- 内容: CUDAが利用できない場合、Faster Whisperの自動CPU推論を有効化
|
||||
- 内容: CUDA が利用できない場合、Faster Whisper の自動 CPU 推論を有効化
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: ShiroDoMain
|
||||
- 2024.03.06 [Commit#616be20d](https://github.com/RVC-Boss/GPT-SoVITS/commit/616be20db3cf94f1cd663782fea61b2370704193)
|
||||
- 内容: Faster Whisper非中国語ASR使用時、中国語FunASRモデルの事前ダウンロードが不要に
|
||||
- 内容: Faster Whisper 非中国語 ASR 使用時、中国語 FunASR モデルの事前ダウンロードが不要に
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.03.09 [PR#672](https://github.com/RVC-Boss/GPT-SoVITS/pull/672)
|
||||
- 内容: 推論速度を50%向上(RTX3090 + PyTorch 2.2.1 + CU11.8 + Win10 + Py39環境で検証)
|
||||
- 内容: 推論速度を 50%向上 (RTX3090 + PyTorch 2.2.1 + CU11.8 + Win10 + Py39 環境で検証)
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: GoHomeToMacDonal
|
||||
- 2024.03.10 [PR#721](https://github.com/RVC-Boss/GPT-SoVITS/pull/721)
|
||||
@ -246,7 +246,7 @@
|
||||
- タイプ: 新機能
|
||||
- 貢献者: ChasonJiang
|
||||
- 2024.03.13 [PR#761](https://github.com/RVC-Boss/GPT-SoVITS/pull/761)
|
||||
- 内容: CPUトレーニングをサポート(macOSでCPUを使用したトレーニングが可能に)
|
||||
- 内容: CPU トレーニングをサポート (macOS で CPU を使用したトレーニングが可能に)
|
||||
- タイプ: 新機能
|
||||
- 貢献者: Lion-Wu
|
||||
- 2024.03.19 [PR#804](https://github.com/RVC-Boss/GPT-SoVITS/pull/804), [PR#812](https://github.com/RVC-Boss/GPT-SoVITS/pull/812), [PR#821](https://github.com/RVC-Boss/GPT-SoVITS/pull/821)
|
||||
@ -254,21 +254,21 @@
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: KamioRinn
|
||||
- 2024.03.30 [PR#894](https://github.com/RVC-Boss/GPT-SoVITS/pull/894)
|
||||
- 内容: APIフォーマットの改善
|
||||
- 内容: API フォーマットの改善
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: KamioRinn
|
||||
|
||||
## 202404
|
||||
|
||||
- 2024.04.03 [PR#917](https://github.com/RVC-Boss/GPT-SoVITS/pull/917)
|
||||
- 内容: UVR5 WebUIにおけるFFmpegコマンド文字列フォーマットの修正
|
||||
- 内容: UVR5 WebUI における FFmpeg コマンド文字列フォーマットの修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: StaryLan
|
||||
|
||||
## 202405
|
||||
|
||||
- 2024.05.02 [PR#953](https://github.com/RVC-Boss/GPT-SoVITS/pull/953)
|
||||
- 内容: SoVITSトレーニング時のVQ凍結漏れ問題を修正(品質劣化の原因となる)
|
||||
- 内容: SoVITS トレーニング時の VQ 凍結漏れ問題を修正 (品質劣化の原因となる)
|
||||
- タイプ: 修正
|
||||
- 貢献者: hcwu1993
|
||||
- 関連: [Issue#747](https://github.com/RVC-Boss/GPT-SoVITS/issues/747)
|
||||
@ -277,23 +277,23 @@
|
||||
- タイプ: 機能改善
|
||||
- 貢献者: StaryLan
|
||||
- 2024.05.27 [PR#1132](https://github.com/RVC-Boss/GPT-SoVITS/pull/1132)
|
||||
- 内容: Hubert抽出におけるバグ修正
|
||||
- 内容: Hubert 抽出におけるバグ修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
|
||||
## 202406
|
||||
|
||||
- 2024.06.06 [Commit#](https://github.com/RVC-Boss/GPT-SoVITS/commit/99f09c8bdc155c1f4272b511940717705509582a)
|
||||
- 内容: WebUIのGPTファインチューニング時に中国語入力テキストのBERT特徴量を読み取れない問題を修正(推論時との不一致や品質劣化の原因となる)
|
||||
**注意: 既に大量データでファインチューニング済みの場合は、品質向上のためモデルの再チューニングを推奨**
|
||||
- 内容: WebUI の GPT ファインチューニング時に中国語入力テキストの BERT 特徴量を読み取れない問題を修正 (推論時との不一致や品質劣化の原因となる)
|
||||
**注意: 既に大量データでファインチューニング済みの場合は、品質向上のためモデルの再チューニングを推奨**
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.06.07 [PR#1159](https://github.com/RVC-Boss/GPT-SoVITS/pull/1159)
|
||||
- 内容: `s2_train.py`におけるSoVITSトレーニングの進捗バー処理を修正
|
||||
- 内容: `s2_train.py`における SoVITS トレーニングの進捗バー処理を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: pengzhendong
|
||||
- 2024.06.10 [Commit#501a74ae](https://github.com/RVC-Boss/GPT-SoVITS/commit/501a74ae96789a26b48932babed5eb4e9483a232)
|
||||
- 内容: UVR5 MDXNetがFFmpegを呼び出す際の文字列フォーマットを修正(スペースを含むパスに対応)
|
||||
- 内容: UVR5 MDXNet が FFmpeg を呼び出す際の文字列フォーマットを修正 (スペースを含むパスに対応)
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.06.10 [PR#1168](https://github.com/RVC-Boss/GPT-SoVITS/pull/1168), [PR#1169](https://github.com/RVC-Boss/GPT-SoVITS/pull/1169)
|
||||
@ -302,15 +302,15 @@
|
||||
- 貢献者: XXXXRT666
|
||||
- 関連: [Issue#1165](https://github.com/RVC-Boss/GPT-SoVITS/issues/1165)
|
||||
- 2024.06.13 [Commit#db506705](https://github.com/RVC-Boss/GPT-SoVITS/commit/db50670598f0236613eefa6f2d5a23a271d82041)
|
||||
- 内容: CPU推論におけるデフォルトバッチサイズの小数点問題を修正
|
||||
- 内容: CPU 推論におけるデフォルトバッチサイズの小数点問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.06.28 [PR#1258](https://github.com/RVC-Boss/GPT-SoVITS/pull/1258), [PR#1265](https://github.com/RVC-Boss/GPT-SoVITS/pull/1265), [PR#1267](https://github.com/RVC-Boss/GPT-SoVITS/pull/1267)
|
||||
- 内容: ノイズ除去やASRで例外が発生した場合に保留中の全オーディオファイル処理が終了してしまう問題を修正
|
||||
- 内容: ノイズ除去や ASR で例外が発生した場合に保留中の全オーディオファイル処理が終了してしまう問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.06.29 [Commit#a208698e](https://github.com/RVC-Boss/GPT-SoVITS/commit/a208698e775155efc95b187b746d153d0f2847ca)
|
||||
- 内容: マルチGPUトレーニング時のマルチプロセス保存ロジックを修正
|
||||
- 内容: マルチ GPU トレーニング時のマルチプロセス保存ロジックを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.06.29 [PR#1251](https://github.com/RVC-Boss/GPT-SoVITS/pull/1251)
|
||||
@ -326,14 +326,14 @@
|
||||
- タイプ: 修正
|
||||
- 貢献者: aoguai
|
||||
- 2024.07.06 [Commit#](https://github.com/RVC-Boss/GPT-SoVITS/commit/b0786f2998f1b2fce6678434524b4e0e8cc716f5)
|
||||
- 内容: 高速化推論コードが検証済みでmainブランチにマージされ、ベースと同等の推論効果を保証。テキスト未参照モードでも高速推論をサポート
|
||||
- 内容: 高速化推論コードが検証済みで main ブランチにマージされ、ベースと同等の推論効果を保証, テキスト未参照モードでも高速推論をサポート
|
||||
- タイプ: 最適化
|
||||
- 貢献者: RVC-Boss, GoHomeToMacDonal
|
||||
- 関連: [PR#672](https://github.com/RVC-Boss/GPT-SoVITS/pull/672)
|
||||
- 今後も`fast_inference`ブランチでの変更整合性を継続検証
|
||||
|
||||
- 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)
|
||||
- 内容: i18nスキャンのリファクタリングと多言語設定ファイルの更新
|
||||
- 内容: i18n スキャンのリファクタリングと多言語設定ファイルの更新
|
||||
- タイプ: ドキュメンテーション
|
||||
- 貢献者: StaryLan
|
||||
- 2024.07.13 [PR#1299](https://github.com/RVC-Boss/GPT-SoVITS/pull/1299)
|
||||
@ -341,132 +341,132 @@
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.07.19 [PR#756](https://github.com/RVC-Boss/GPT-SoVITS/pull/756)
|
||||
- 内容: GPTトレーニング時、カスタム`bucket_sampler`使用時のステップ数不一致を修正
|
||||
- 内容: GPT トレーニング時、カスタム`bucket_sampler`使用時のステップ数不一致を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: huangxu1991
|
||||
- 2024.07.23 [Commit#9588a3c5](https://github.com/RVC-Boss/GPT-SoVITS/commit/9588a3c52d9ebdb20b3c5d74f647d12e7c1171c2), [PR#1340](https://github.com/RVC-Boss/GPT-SoVITS/pull/1340)
|
||||
- 内容: 合成時の話速調整をサポート(ランダム性を固定して速度のみ制御するオプション含む)。`api.py`に更新済み
|
||||
- 内容: 合成時の話速調整をサポート (ランダム性を固定して速度のみ制御するオプション含む), `api.py`に更新済み
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss, 红血球AE3803
|
||||
- 貢献者: RVC-Boss, 红血球 AE3803
|
||||
- 2024.07.27 [PR#1306](https://github.com/RVC-Boss/GPT-SoVITS/pull/1306), [PR#1356](https://github.com/RVC-Boss/GPT-SoVITS/pull/1356)
|
||||
- 内容: BS-RoFormerボーカル・伴奏分離モデルのサポートを追加。
|
||||
- 内容: BS-RoFormer ボーカル・伴奏分離モデルのサポートを追加
|
||||
- タイプ: 新機能
|
||||
- 貢献者: KamioRinn
|
||||
- 2024.07.27 [PR#1351](https://github.com/RVC-Boss/GPT-SoVITS/pull/1351)
|
||||
- 内容: 中国語テキストフロントエンドの改善。
|
||||
- 内容: 中国語テキストフロントエンドの改善
|
||||
- タイプ: 新機能
|
||||
- 貢献者: KamioRinn
|
||||
|
||||
## 202408 (V2 バージョン)
|
||||
|
||||
- 2024.08.01 [PR#1355](https://github.com/RVC-Boss/GPT-SoVITS/pull/1355)
|
||||
- 内容: WebUIでファイル処理時にパスを自動入力するように変更。
|
||||
- 内容: WebUI でファイル処理時にパスを自動入力するように変更
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.08.01 [Commit#e62e9653](https://github.com/RVC-Boss/GPT-SoVITS/commit/e62e965323a60a76a025bcaa45268c1ddcbcf05c)
|
||||
- 内容: BS-RoformerのFP16推論サポートを有効化。
|
||||
- 内容: BS-Roformer の FP16 推論サポートを有効化
|
||||
- タイプ: パフォーマンス最適化
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.08.01 [Commit#bce451a2](https://github.com/RVC-Boss/GPT-SoVITS/commit/bce451a2d1641e581e200297d01f219aeaaf7299), [Commit#4c8b7612](https://github.com/RVC-Boss/GPT-SoVITS/commit/4c8b7612206536b8b4435997acb69b25d93acb78)
|
||||
- 内容: GPU認識ロジックを最適化、ユーザーが入力した任意のGPUインデックスを処理するユーザーフレンドリーなロジックを追加。
|
||||
- 内容: GPU 認識ロジックを最適化、ユーザーが入力した任意の GPU インデックスを処理するユーザーフレンドリーなロジックを追加
|
||||
- タイプ: 雑務
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.08.02 [Commit#ff6c193f](https://github.com/RVC-Boss/GPT-SoVITS/commit/ff6c193f6fb99d44eea3648d82ebcee895860a22)~[Commit#de7ee7c7](https://github.com/RVC-Boss/GPT-SoVITS/commit/de7ee7c7c15a2ec137feb0693b4ff3db61fad758)
|
||||
- 内容: **GPT-SoVITS V2モデルを追加。**
|
||||
- 内容: **GPT-SoVITS V2 モデルを追加**
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.08.03 [Commit#8a101474](https://github.com/RVC-Boss/GPT-SoVITS/commit/8a101474b5a4f913b4c94fca2e3ca87d0771bae3)
|
||||
- 内容: FunASRを使用して広東語ASRをサポート。
|
||||
- 内容: FunASR を使用して広東語 ASR をサポート
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2024.08.03 [PR#1387](https://github.com/RVC-Boss/GPT-SoVITS/pull/1387), [PR#1388](https://github.com/RVC-Boss/GPT-SoVITS/pull/1388)
|
||||
- 内容: UIとタイミングロジックを最適化。
|
||||
- 内容: UI とタイミングロジックを最適化
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.08.06 [PR#1404](https://github.com/RVC-Boss/GPT-SoVITS/pull/1404), [PR#987](https://github.com/RVC-Boss/GPT-SoVITS/pull/987), [PR#488](https://github.com/RVC-Boss/GPT-SoVITS/pull/488)
|
||||
- 内容: 多音字処理ロジックを最適化(V2のみ)。
|
||||
- 内容: 多音字処理ロジックを最適化 (V2 のみ)
|
||||
- タイプ: 修正、新機能
|
||||
- 貢献者: KamioRinn、RVC-Boss
|
||||
- 2024.08.13 [PR#1422](https://github.com/RVC-Boss/GPT-SoVITS/pull/1422)
|
||||
- 内容: 参照音声が1つしかアップロードできないバグを修正。欠損ファイルがある場合に警告ポップアップを表示するデータセット検証を追加。
|
||||
- 内容: 参照音声が 1 つしかアップロードできないバグを修正, 欠損ファイルがある場合に警告ポップアップを表示するデータセット検証を追加
|
||||
- タイプ: 修正、雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2024.08.20 [Issue#1508](https://github.com/RVC-Boss/GPT-SoVITS/issues/1508)
|
||||
- 内容: 上流のLangSegmentライブラリがSSMLタグを使用した数字、電話番号、日付、時刻の最適化をサポート。
|
||||
- 内容: 上流の LangSegment ライブラリが SSML タグを使用した数字、電話番号、日付、時刻の最適化をサポート
|
||||
- タイプ: 新機能
|
||||
- 貢献者: juntaosun
|
||||
- 2024.08.20 [PR#1503](https://github.com/RVC-Boss/GPT-SoVITS/pull/1503)
|
||||
- 内容: APIを修正・最適化。
|
||||
- 内容: API を修正・最適化
|
||||
- タイプ: 修正
|
||||
- 貢献者: KamioRinn
|
||||
- 2024.08.20 [PR#1490](https://github.com/RVC-Boss/GPT-SoVITS/pull/1490)
|
||||
- 内容: `fast_inference`ブランチをメインブランチにマージ。
|
||||
- 内容: `fast_inference`ブランチをメインブランチにマージ
|
||||
- タイプ: リファクタリング
|
||||
- 貢献者: ChasonJiang
|
||||
- 2024.08.21 **GPT-SoVITS V2バージョンを正式リリース。**
|
||||
- 2024.08.21 **GPT-SoVITS V2 バージョンを正式リリース**
|
||||
|
||||
## 202502 (V3 バージョン)
|
||||
|
||||
- 2025.02.11 [Commit#ed207c4b](https://github.com/RVC-Boss/GPT-SoVITS/commit/ed207c4b879d5296e9be3ae5f7b876729a2c43b8)~[Commit#6e2b4918](https://github.com/RVC-Boss/GPT-SoVITS/commit/6e2b49186c5b961f0de41ea485d398dffa9787b4)
|
||||
- 内容: **GPT-SoVITS V3モデルを追加。ファインチューニングには14GBのVRAMが必要。**
|
||||
- タイプ: 新機能([Wiki](https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90v3%E2%80%90features-(%E6%96%B0%E7%89%B9%E6%80%A7))参照)
|
||||
- 内容: **GPT-SoVITS V3 モデルを追加, ファインチューニングには 14GB の VRAM が必要**
|
||||
- タイプ: 新機能 ([Wiki](<https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90v3%E2%80%90features-(%E6%96%B0%E7%89%B9%E6%80%A7)>)参照)
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.02.12 [PR#2032](https://github.com/RVC-Boss/GPT-SoVITS/pull/2032)
|
||||
- 内容: 多言語プロジェクトドキュメントを更新。
|
||||
- 内容: 多言語プロジェクトドキュメントを更新
|
||||
- タイプ: ドキュメント
|
||||
- 貢献者: StaryLan
|
||||
- 2025.02.12 [PR#2033](https://github.com/RVC-Boss/GPT-SoVITS/pull/2033)
|
||||
- 内容: 日本語ドキュメントを更新。
|
||||
- 内容: 日本語ドキュメントを更新
|
||||
- タイプ: ドキュメント
|
||||
- 貢献者: Fyphen
|
||||
- 2025.02.12 [PR#2010](https://github.com/RVC-Boss/GPT-SoVITS/pull/2010)
|
||||
- 内容: アテンション計算ロジックを最適化。
|
||||
- 内容: アテンション計算ロジックを最適化
|
||||
- タイプ: パフォーマンス最適化
|
||||
- 貢献者: wzy3650
|
||||
- 2025.02.12 [PR#2040](https://github.com/RVC-Boss/GPT-SoVITS/pull/2040)
|
||||
- 内容: ファインチューニング用に勾配チェックポイントサポートを追加。12GB VRAMが必要。
|
||||
- 内容: ファインチューニング用に勾配チェックポイントサポートを追加, 12GB VRAM が必要
|
||||
- タイプ: 新機能
|
||||
- 貢献者: Kakaru Hayate
|
||||
- 2025.02.14 [PR#2047](https://github.com/RVC-Boss/GPT-SoVITS/pull/2047), [PR#2062](https://github.com/RVC-Boss/GPT-SoVITS/pull/2062), [PR#2073](https://github.com/RVC-Boss/GPT-SoVITS/pull/2073)
|
||||
- 内容: 新しい言語セグメンテーションツールに切り替え、多言語混合テキストの分割戦略を改善。数字と英語の処理ロジックを最適化。
|
||||
- 内容: 新しい言語セグメンテーションツールに切り替え、多言語混合テキストの分割戦略を改善, 数字と英語の処理ロジックを最適化
|
||||
- タイプ: 新機能
|
||||
- 貢献者: KamioRinn
|
||||
- 2025.02.23 [Commit#56509a17](https://github.com/RVC-Boss/GPT-SoVITS/commit/56509a17c918c8d149c48413a672b8ddf437495b)~[Commit#514fb692](https://github.com/RVC-Boss/GPT-SoVITS/commit/514fb692db056a06ed012bc3a5bca2a5b455703e)
|
||||
- 内容: **GPT-SoVITS V3モデルがLoRAトレーニングをサポート。ファインチューニングに8GB GPUメモリが必要。**
|
||||
- 内容: **GPT-SoVITS V3 モデルが LoRA トレーニングをサポート, ファインチューニングに 8GB GPU メモリが必要**
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.02.23 [PR#2078](https://github.com/RVC-Boss/GPT-SoVITS/pull/2078)
|
||||
- 内容: ボーカルと楽器分離のためのMel Band Roformerモデルサポートを追加。
|
||||
- 内容: ボーカルと楽器分離のための Mel Band Roformer モデルサポートを追加
|
||||
- タイプ: 新機能
|
||||
- 貢献者: Sucial
|
||||
- 2025.02.26 [PR#2112](https://github.com/RVC-Boss/GPT-SoVITS/pull/2112), [PR#2114](https://github.com/RVC-Boss/GPT-SoVITS/pull/2114)
|
||||
- 内容: 中国語パス下でのMeCabエラーを修正(日本語/韓国語または多言語テキスト分割用)。
|
||||
- 内容: 中国語パス下での MeCab エラーを修正 (日本語/韓国語または多言語テキスト分割用)
|
||||
- タイプ: 修正
|
||||
- 貢献者: KamioRinn
|
||||
- 2025.02.27 [Commit#92961c3f](https://github.com/RVC-Boss/GPT-SoVITS/commit/92961c3f68b96009ff2cd00ce614a11b6c4d026f)~[Commit#250b1c73](https://github.com/RVC-Boss/GPT-SoVITS/commit/250b1c73cba60db18148b21ec5fbce01fd9d19bc)
|
||||
- 内容: **24kHzから48kHzへのオーディオ超解像モデルを追加**。V3モデルで24Kオーディオを生成する際の「こもった」オーディオ問題を緩和。
|
||||
- 内容: **24kHz から 48kHz へのオーディオ超解像モデルを追加**, V3 モデルで 24K オーディオを生成する際の「こもった」オーディオ問題を緩和
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 関連: [Issue#2085](https://github.com/RVC-Boss/GPT-SoVITS/issues/2085), [Issue#2117](https://github.com/RVC-Boss/GPT-SoVITS/issues/2117)
|
||||
- 2025.02.28 [PR#2123](https://github.com/RVC-Boss/GPT-SoVITS/pull/2123)
|
||||
- 内容: 多言語プロジェクトドキュメントを更新。
|
||||
- 内容: 多言語プロジェクトドキュメントを更新
|
||||
- タイプ: ドキュメント
|
||||
- 貢献者: StaryLan
|
||||
- 2025.02.28 [PR#2122](https://github.com/RVC-Boss/GPT-SoVITS/pull/2122)
|
||||
- 内容: モデルが識別できない短いCJK文字に対してルールベースの検出を適用。
|
||||
- 内容: モデルが識別できない短い CJK 文字に対してルールベースの検出を適用
|
||||
- タイプ: 修正
|
||||
- 貢献者: KamioRinn
|
||||
- 関連: [Issue#2116](https://github.com/RVC-Boss/GPT-SoVITS/issues/2116)
|
||||
- 2025.02.28 [Commit#c38b1690](https://github.com/RVC-Boss/GPT-SoVITS/commit/c38b16901978c1db79491e16905ea3a37a7cf686), [Commit#a32a2b89](https://github.com/RVC-Boss/GPT-SoVITS/commit/a32a2b893436fad56cc82409121c7fa36a1815d5)
|
||||
- 内容: 合成速度を制御するための発話速度パラメータを追加。
|
||||
- 内容: 合成速度を制御するための発話速度パラメータを追加
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.02.28 **GPT-SoVITS V3を正式リリース**。
|
||||
- 2025.02.28 **GPT-SoVITS V3 を正式リリース**
|
||||
|
||||
## 202503
|
||||
|
||||
- 2025.03.31 [PR#2236](https://github.com/RVC-Boss/GPT-SoVITS/pull/2236)
|
||||
- 内容: 依存関係の不正なバージョンによる問題を修正。
|
||||
- 内容: 依存関係の不正なバージョンによる問題を修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: XXXXRT666
|
||||
- 関連:
|
||||
@ -475,88 +475,89 @@
|
||||
- Pydantic: [Issue#2230](https://github.com/RVC-Boss/GPT-SoVITS/issues/2230), [Issue#2239](https://github.com/RVC-Boss/GPT-SoVITS/issues/2239).
|
||||
- PyTorch-Lightning: [Issue#2174](https://github.com/RVC-Boss/GPT-SoVITS/issues/2174).
|
||||
- 2025.03.31 [PR#2241](https://github.com/RVC-Boss/GPT-SoVITS/pull/2241)
|
||||
- 内容: **SoVITS v3の並列推論を有効化。**
|
||||
|
||||
- 内容: **SoVITS v3 の並列推論を有効化**
|
||||
- タイプ: 新機能
|
||||
- 貢献者: ChasonJiang
|
||||
|
||||
- その他の軽微なバグを修正。
|
||||
- その他の軽微なバグを修正
|
||||
|
||||
- ONNXランタイムGPU推論サポートのための統合パッケージ修正:
|
||||
- ONNX ランタイム GPU 推論サポートのための統合パッケージ修正:
|
||||
- タイプ: 修正
|
||||
- 詳細:
|
||||
- G2PW内のONNXモデルをCPUからGPU推論に切り替え、CPUボトルネックを大幅に削減;
|
||||
- foxjoy dereverberationモデルがGPU推論をサポート。
|
||||
- G2PW 内の ONNX モデルを CPU から GPU 推論に切り替え、CPU ボトルネックを大幅に削減;
|
||||
- foxjoy dereverberation モデルが GPU 推論をサポート
|
||||
|
||||
## 202504 (V4 バージョン)
|
||||
|
||||
- 2025.04.01 [Commit#6a60e5ed](https://github.com/RVC-Boss/GPT-SoVITS/commit/6a60e5edb1817af4a61c7a5b196c0d0f1407668f)
|
||||
- 内容: SoVITS v3並列推論のロックを解除。非同期モデル読み込みロジックを修正。
|
||||
- 内容: SoVITS v3 並列推論のロックを解除, 非同期モデル読み込みロジックを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.04.07 [PR#2255](https://github.com/RVC-Boss/GPT-SoVITS/pull/2255)
|
||||
- 内容: Ruffを使用したコードフォーマット。G2PWリンクを更新。
|
||||
- 内容: Ruff を使用したコードフォーマット, G2PW リンクを更新
|
||||
- タイプ: スタイル
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.04.15 [PR#2290](https://github.com/RVC-Boss/GPT-SoVITS/pull/2290)
|
||||
- 内容: ドキュメントを整理。Python 3.11サポートを追加。インストーラーを更新。
|
||||
- 内容: ドキュメントを整理, Python 3.11 サポートを追加, インストーラーを更新
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.04.20 [PR#2300](https://github.com/RVC-Boss/GPT-SoVITS/pull/2300)
|
||||
- 内容: Colab、インストールファイル、モデルダウンロードを更新。
|
||||
- 内容: Colab、インストールファイル、モデルダウンロードを更新
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.04.20 [Commit#e0c452f0](https://github.com/RVC-Boss/GPT-SoVITS/commit/e0c452f0078e8f7eb560b79a54d75573fefa8355)~[Commit#9d481da6](https://github.com/RVC-Boss/GPT-SoVITS/commit/9d481da610aa4b0ef8abf5651fd62800d2b4e8bf)
|
||||
- 内容: **GPT-SoVITS V4モデルを追加。**
|
||||
- 内容: **GPT-SoVITS V4 モデルを追加**
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.04.21 [Commit#8b394a15](https://github.com/RVC-Boss/GPT-SoVITS/commit/8b394a15bce8e1d85c0b11172442dbe7a6017ca2)~[Commit#bc2fe5ec](https://github.com/RVC-Boss/GPT-SoVITS/commit/bc2fe5ec86536c77bb3794b4be263ac87e4fdae6), [PR#2307](https://github.com/RVC-Boss/GPT-SoVITS/pull/2307)
|
||||
- 内容: V4の並列推論を有効化。
|
||||
- 内容: V4 の並列推論を有効化
|
||||
- タイプ: 新機能
|
||||
- 貢献者: RVC-Boss、ChasonJiang
|
||||
- 2025.04.22 [Commit#7405427a](https://github.com/RVC-Boss/GPT-SoVITS/commit/7405427a0ab2a43af63205df401fd6607a408d87)~[Commit#590c83d7](https://github.com/RVC-Boss/GPT-SoVITS/commit/590c83d7667c8d4908f5bdaf2f4c1ba8959d29ff), [PR#2309](https://github.com/RVC-Boss/GPT-SoVITS/pull/2309)
|
||||
- 内容: モデルバージョンパラメータの受け渡しを修正。
|
||||
- 内容: モデルバージョンパラメータの受け渡しを修正
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss、ChasonJiang
|
||||
- 2025.04.22 [Commit#fbdab94e](https://github.com/RVC-Boss/GPT-SoVITS/commit/fbdab94e17d605d85841af6f94f40a45976dd1d9), [PR#2310](https://github.com/RVC-Boss/GPT-SoVITS/pull/2310)
|
||||
- 内容: NumpyとNumbaのバージョン不一致問題を修正。librosaバージョンを更新。
|
||||
- 内容: Numpy と Numba のバージョン不一致問題を修正, librosa バージョンを更新
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss、XXXXRT666
|
||||
- 関連: [Issue#2308](https://github.com/RVC-Boss/GPT-SoVITS/issues/2308)
|
||||
- **2024.04.22 GPT-SoVITS V4を正式リリース**。
|
||||
- **2024.04.22 GPT-SoVITS V4 を正式リリース**
|
||||
- 2025.04.22 [PR#2311](https://github.com/RVC-Boss/GPT-SoVITS/pull/2311)
|
||||
- 内容: Gradioパラメータを更新。
|
||||
- 内容: Gradio パラメータを更新
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.04.25 [PR#2322](https://github.com/RVC-Boss/GPT-SoVITS/pull/2322)
|
||||
- 内容: Colab/Kaggleノートブックスクリプトを改善。
|
||||
- 内容: Colab/Kaggle ノートブックスクリプトを改善
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
|
||||
## 202505
|
||||
|
||||
- 2025.05.26 [PR#2351](https://github.com/RVC-Boss/GPT-SoVITS/pull/2351)
|
||||
- 内容: DockerとWindows自動ビルドスクリプトを改善。pre-commitフォーマットを追加。
|
||||
- 内容: Docker と Windows 自動ビルドスクリプトを改善, pre-commit フォーマットを追加
|
||||
- タイプ: 雑務
|
||||
- 貢献者: XXXXRT666
|
||||
- 2025.05.26 [PR#2408](https://github.com/RVC-Boss/GPT-SoVITS/pull/2408)
|
||||
- 内容: 多言語テキスト分割と認識ロジックを最適化。
|
||||
- 内容: 多言語テキスト分割と認識ロジックを最適化
|
||||
- タイプ: 修正
|
||||
- 貢献者: KamioRinn
|
||||
- 関連: [Issue#2404](https://github.com/RVC-Boss/GPT-SoVITS/issues/2404)
|
||||
- 2025.05.26 [PR#2377](https://github.com/RVC-Boss/GPT-SoVITS/pull/2377)
|
||||
- 内容: キャッシュ戦略を実装し、SoVITS V3/V4推論速度を10%向上。
|
||||
- 内容: キャッシュ戦略を実装し、SoVITS V3/V4 推論速度を 10%向上
|
||||
- タイプ: パフォーマンス最適化
|
||||
- 貢献者: Kakaru Hayate
|
||||
- 2025.05.26 [Commit#4d9d56b1](https://github.com/RVC-Boss/GPT-SoVITS/commit/4d9d56b19638dc434d6eefd9545e4d8639a3e072), [Commit#8c705784](https://github.com/RVC-Boss/GPT-SoVITS/commit/8c705784c50bf438c7b6d0be33a9e5e3cb90e6b2), [Commit#fafe4e7f](https://github.com/RVC-Boss/GPT-SoVITS/commit/fafe4e7f120fba56c5f053c6db30aa675d5951ba)
|
||||
- 内容: アノテーションインターフェースを更新し、以下の注意事項を追加しました:各ページの編集が終わったら必ず「Submit Text」をクリックしてください。さもなくば変更は保存されません。
|
||||
- 内容: アノテーションインターフェースを更新し、以下の注意事項を追加しました:各ページの編集が終わったら必ず「Submit Text」をクリックしてください, さもなくば変更は保存されません
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.05.29 [Commit#1934fc1e](https://github.com/RVC-Boss/GPT-SoVITS/commit/1934fc1e1b22c4c162bba1bbe7d7ebb132944cdc)
|
||||
- 内容: UVR5およびONNX dereverberationモデルのエラーを修正。FFmpegが元のパスにスペースを含むMP3/M4Aファイルをエンコードする場合の問題を解決。
|
||||
- 内容: UVR5 および ONNX dereverberation モデルのエラーを修正, FFmpeg が元のパスにスペースを含む MP3/M4A ファイルをエンコードする場合の問題を解決
|
||||
- タイプ: 修正
|
||||
- 貢献者: RVC-Boss
|
||||
|
||||
## 202506(V2Pro シリーズ)
|
||||
## 202506 (V2Pro シリーズ)
|
||||
|
||||
- 2025.06.03 [PR#2420](https://github.com/RVC-Boss/GPT-SoVITS/pull/2420)
|
||||
- 内容: プロジェクトの多言語ドキュメントを更新
|
||||
@ -572,9 +573,9 @@
|
||||
- 貢献者: RVC-Boss
|
||||
- 2025.06.05 [PR#2426](https://github.com/RVC-Boss/GPT-SoVITS/pull/2426)
|
||||
- 内容: `config/inference_webui` の初期化時のエラーを修正
|
||||
- タイプ: 不具合修正(Bug Fix)
|
||||
- タイプ: 不具合修正 (Bug Fix)
|
||||
- 貢献者: StaryLan
|
||||
- 2025.06.05 [PR#2427](https://github.com/RVC-Boss/GPT-SoVITS/pull/2427), [Commit#7d70852a](https://github.com/RVC-Boss/GPT-SoVITS/commit/7d70852a3f67c3b52e3a62857f8663d529efc8cd), [PR#2434](https://github.com/RVC-Boss/GPT-SoVITS/pull/2434)
|
||||
- 内容: 自動精度検出ロジックを最適化し、WebUI フロントエンドモジュールに折り畳み(Collapsible)機能を追加
|
||||
- 内容: 自動精度検出ロジックを最適化し、WebUI フロントエンドモジュールに折り畳み (Collapsible)機能を追加
|
||||
- タイプ: 新機能
|
||||
- 貢献者: XXXXRT666, RVC-Boss
|
||||
|
||||
@ -225,7 +225,7 @@ switch ($Device) {
|
||||
Write-Warning "CUDA 12.8 Is Not Supported By Current Driver"
|
||||
}
|
||||
Write-Info "Installing PyTorch For CUDA 12.8..."
|
||||
Invoke-Pip torch torchao --index-url "https://download.pytorch.org/whl/cu128"
|
||||
Invoke-Pip torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cu128"
|
||||
Invoke-Conda cuda-nvcc=12.8
|
||||
Invoke-Pip psutil ninja packaging wheel "setuptools>=42"
|
||||
Write-Info "Installing Flash Attn..."
|
||||
@ -240,7 +240,7 @@ switch ($Device) {
|
||||
Write-Warning "CUDA 12.6 Is Not Supported By Current Driver"
|
||||
}
|
||||
Write-Info "Installing PyTorch For CUDA 12.6..."
|
||||
Invoke-Pip torch torchao --index-url "https://download.pytorch.org/whl/cu126"
|
||||
Invoke-Pip torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cu126"
|
||||
Invoke-Conda cuda-nvcc=12.6
|
||||
Invoke-Pip psutil ninja packaging wheel "setuptools>=42"
|
||||
Write-Info "Installing Flash Attn..."
|
||||
@ -249,7 +249,7 @@ switch ($Device) {
|
||||
}
|
||||
"CPU" {
|
||||
Write-Info "Installing PyTorch For CPU..."
|
||||
Invoke-Pip torch torchao --index-url "https://download.pytorch.org/whl/cpu"
|
||||
Invoke-Pip torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cpu"
|
||||
}
|
||||
}
|
||||
Write-Success "PyTorch Installed"
|
||||
|
||||
10
install.sh
10
install.sh
@ -334,14 +334,14 @@ if [ "$USE_CUDA" = true ] && [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${WARNING}CUDA 12.8 Is Not Supported By Current Driver"
|
||||
fi
|
||||
echo -e "${INFO}Installing PyTorch For CUDA 12.8..."
|
||||
run_pip_quiet torch torchao --index-url "https://download.pytorch.org/whl/cu128"
|
||||
run_pip_quiet torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cu128"
|
||||
run_conda_quiet cuda-nvcc=12.8
|
||||
elif [ "$CUDA" = 126 ]; then
|
||||
if awk "BEGIN {exit !($CUDAVERSION < 12.0)}"; then
|
||||
echo -e "${WARNING}CUDA 12.6 Is Not Supported By Current Driver"
|
||||
fi
|
||||
echo -e "${INFO}Installing PyTorch For CUDA 12.6..."
|
||||
run_pip_quiet torch torchao --index-url "https://download.pytorch.org/whl/cu126"
|
||||
run_pip_quiet torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cu126"
|
||||
run_conda_quiet cuda-nvcc=12.6
|
||||
fi
|
||||
echo -e "${INFO}Installing Flash Attn"
|
||||
@ -350,14 +350,14 @@ if [ "$USE_CUDA" = true ] && [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${SUCCESS}Flash Attn Installed"
|
||||
elif [ "$USE_MLX" = true ] && [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${INFO}Installing MLX & PyTorch For MPS..."
|
||||
run_pip_quiet torch torchao --index-url "https://download.pytorch.org/whl/cpu"
|
||||
run_pip_quiet torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cpu"
|
||||
run_pip_quiet mlx
|
||||
elif [ "$USE_ROCM" = true ] && [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${INFO}Installing PyTorch For ROCm 6.2..."
|
||||
run_pip_quiet torch torchao --index-url "https://download.pytorch.org/whl/rocm6.2"
|
||||
run_pip_quiet torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/rocm6.2"
|
||||
elif [ "$USE_CPU" = true ] && [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${INFO}Installing PyTorch For CPU..."
|
||||
run_pip_quiet torch torchao --index-url "https://download.pytorch.org/whl/cpu"
|
||||
run_pip_quiet torch torchao torchaudio torchcodec --index-url "https://download.pytorch.org/whl/cpu"
|
||||
elif [ "$WORKFLOW" = false ]; then
|
||||
echo -e "${ERROR}Unknown Err"
|
||||
exit 1
|
||||
|
||||
12
test.py
12
test.py
@ -262,7 +262,7 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
is_exist = is_exist_s2gv3 if model_version == "v3" else is_exist_s2gv4
|
||||
path_sovits = path_sovits_v3 if model_version == "v3" else path_sovits_v4
|
||||
if is_lora is True and is_exist is False:
|
||||
info = f"{path_sovits} SoVITS {model_version} {i18n('底模缺失,无法加载相应 LoRA 权重')}"
|
||||
info = f"{path_sovits} SoVITS {model_version} {i18n('底模缺失, 无法加载相应 LoRA 权重')}"
|
||||
gr.Warning(info)
|
||||
raise FileNotFoundError(info)
|
||||
dict_language = dict_language_v1 if version == "v1" else dict_language_v2
|
||||
@ -298,7 +298,7 @@ def change_sovits_weights(sovits_path, prompt_language=None, text_language=None)
|
||||
gr.update(visible=visible_inp_refs),
|
||||
gr.update(value=False, interactive=True if model_version not in v3v4set else False),
|
||||
gr.update(visible=True if model_version == "v3" else False),
|
||||
gr.update(value=i18n("模型加载中,请等待"), interactive=False),
|
||||
gr.update(value=i18n("模型加载中, 请等待"), interactive=False),
|
||||
)
|
||||
|
||||
hps = DictToAttrRecursive(hps)
|
||||
@ -524,7 +524,7 @@ def audio_sr(audio, sr):
|
||||
try:
|
||||
sr_model = AP_BWE(infer_device, DictToAttrRecursive)
|
||||
except FileNotFoundError:
|
||||
gr.Warning(i18n("你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好"))
|
||||
gr.Warning(i18n("你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好"))
|
||||
return audio.cpu().numpy(), sr
|
||||
return sr_model(audio, sr)
|
||||
|
||||
@ -590,8 +590,8 @@ def get_tts_wav(
|
||||
assert vq_model
|
||||
wav16k, sr = librosa.load(ref_wav_path, sr=16000)
|
||||
if wav16k.shape[0] > 160000 or wav16k.shape[0] < 48000:
|
||||
gr.Warning(i18n("参考音频在3~10秒范围外,请更换!"))
|
||||
raise OSError(i18n("参考音频在3~10秒范围外,请更换!"))
|
||||
gr.Warning(i18n("参考音频在3~10秒范围外, 请更换!"))
|
||||
raise OSError(i18n("参考音频在3~10秒范围外, 请更换!"))
|
||||
wav16k_t = torch.from_numpy(wav16k)
|
||||
if is_half is True:
|
||||
wav16k_t = wav16k_t.half().to(infer_device)
|
||||
@ -722,7 +722,7 @@ def get_tts_wav(
|
||||
t2 = sum(t[2::3])
|
||||
t3 = sum(t[3::3])
|
||||
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time)
|
||||
infer_speed_avg = sum(infer_len) / sum(infer_time) if infer_time else 0
|
||||
rtf_value = sum(t) / (audio_opt_n.__len__() / opt_sr)
|
||||
|
||||
console.print(f">> Time Stamps: {t0:.3f}\t{t1:.3f}\t{t2:.3f}\t{t3:.3f}")
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
For the inference of the v3 model, if you find that the generated audio sounds somewhat muffled, you can try using this audio super-resolution model.
|
||||
对于v3模型的推理,如果你发现生成的音频比较闷,可以尝试这个音频超分模型。
|
||||
For the inference of the v3 model, if you find that the generated audio sounds somewhat muffled, you can try using this audio super-resolution model
|
||||
对于v3模型的推理,如果你发现生成的音频比较闷,可以尝试这个音频超分模型
|
||||
|
||||
put g_24kto48k.zip and config.json in this folder
|
||||
把g_24kto48k.zip and config.json下到这个文件夹
|
||||
|
||||
@ -47,7 +47,7 @@ def create_model(language="zh"):
|
||||
model_revision = "master"
|
||||
path_vad = path_punc = None
|
||||
vad_model_revision = punc_model_revision = None
|
||||
###友情提示:粤语带VAD识别可能会有少量shape不对报错的,但是不带VAD可以.不带vad只能分阶段单独加标点。不过标点模型对粤语效果真的不行…
|
||||
###友情提示: 粤语带VAD识别可能会有少量shape不对报错的, 但是不带VAD可以.不带vad只能分阶段单独加标点, 不过标点模型对粤语效果真的不行…
|
||||
else:
|
||||
raise ValueError("FunASR 不支持该语言" + ": " + language)
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb): Best choice for dual-channel reverberation, cannot remove single-channel reverberation;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Removes delay effects. Aggressive mode removes more thoroughly than Normal mode. DeReverb additionally removes reverberation, can remove mono reverberation, but does not clean heavily high-frequency plate reverberation.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Removes delay effects. Aggressive mode removes more thoroughly than Normal mode. DeReverb additionally removes reverberation, can remove mono reverberation, but does not clean heavily high-frequency plate reverberation.",
|
||||
"实验/模型名": "Experiment/model name",
|
||||
"文本标注文件": "Text labelling file",
|
||||
"训练集音频文件目录": "Audio dataset folder",
|
||||
"请上传并填写参考信息": "Please upload and fill reference information",
|
||||
"请填写需要合成的目标文本和语种模式": "Please fill in the target text and language mode for synthesis",
|
||||
".限制范围越小判别效果越好。": "Less Multilingual is better",
|
||||
"限制范围越小判别效果越好": "Less Multilingual is better",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SOVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. The DeEcho-DeReverb model's processing time is nearly twice that of the other two DeEcho models.",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Preserve Vocals: Choose this option for audio without harmonies, as it better retains the main vocal compared to the HP5 model. This option includes two built-in models, HP2 and HP3. HP3 may slightly let through some accompaniment but retains the main vocal slightly better than HP2.",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 does not support the no-reference-text mode. Please provide reference text!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix: proportion of normalized audio merged into dataset",
|
||||
"batch_size": "Batch Size",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size: FO hop size, the smaller the value, the higher the accuracy)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: FO hop size, the smaller the value, the higher the accuracy)",
|
||||
"max:归一化后最大值多少": "Loudness multiplier after normalized",
|
||||
"max_sil_kept:切完后静音最多留多长": "Maximum length for silence to be kept",
|
||||
"min_interval:最短切割间隔": "Minumum interval for audio cutting",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length: the minimum length of each segment. If the first segment is too short, it will be concatenated with the next segment until it exceeds this value",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: the minimum length of each segment. If the first segment is too short, it will be concatenated with the next segment until it exceeds this value",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "Noise gate threshold (loudness below this value will be treated as noise",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3 does not support this mode currently, using it will cause an error.",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3 does not support this mode currently, using it will cause an error.",
|
||||
"v3输出如果觉得闷可以试试开超分": "For V3 model, if generated audio sounds somewhat muffled, try enable audio super-resolution.",
|
||||
"不切": "No slice",
|
||||
"不训练直接推v2ProPlus底模!": "Use v2ProPlus base model directly without training!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Use v3 base model directly without training!",
|
||||
"中文": "Chinese",
|
||||
"中英混合": "Chinese-English Mixed",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Primary Reference Audio (Please upload reference audio within 3-10 seconds, exceeding this limit will cause an error!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Primary Reference Audio (Please upload reference audio within 3-10 seconds, exceeding this limit will cause an error!)",
|
||||
"主参考音频的文本": "Text of Primary Reference Audio",
|
||||
"主参考音频的语种": "Language of Primary Reference Audio",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "Multiple audio files can also be imported. If a folder path exists, this input is ignored.",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "No Such File or Folder",
|
||||
"以下模型不存在:": "No Such Model:",
|
||||
"伴奏人声分离&去混响&去回声": "Vocals/Accompaniment Separation & Reverberation Removal",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Super-Resolution Model Not Found. Please follow the tutorial to download the model file if you want to use it.",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Super-Resolution Model Not Found. Please follow the tutorial to download the model file if you want to use it.",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Recommended to use a Finetune-GPT when using Prompt-Free Mode.",
|
||||
"保存频率save_every_epoch": "Save frequency (save_every_epoch):",
|
||||
"保持随机": "Keep Random",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Fetch Datasets",
|
||||
"占用中": " Occupying",
|
||||
"去混响/去延迟,附:": "Dereverberation/Delay Removal, including:",
|
||||
"参考音频在3~10秒范围外,请更换!": "Reference audio is outside the 3-10 second range, please choose another one!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "Reference audio is outside the 3-10 second range, please choose another one!",
|
||||
"参考音频的文本": "Text for reference audio",
|
||||
"参考音频的语种": "Language for reference audio",
|
||||
"句间停顿秒数": "Sentence Pause Duration",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Optional: Upload multiple reference audio files by dragging and dropping them (recommended to be of the same gender), and average their tone. If this option is left blank, the tone will be controlled by the single reference audio on the left. If fine-tuning the model, it is recommended that all reference audio files have tones within the fine-tuning training set; the pretrained model can be ignored.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Optional: Upload multiple reference audio files by dragging and dropping them (recommended to be of the same gender), and average their tone. If this option is left blank, the tone will be controlled by the single reference audio on the left. If fine-tuning the model, it is recommended that all reference audio files have tones within the fine-tuning training set; the pretrained model can be ignored.",
|
||||
"合成语音": "Start inference",
|
||||
"合成音频": "Synthesize Audio",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "An example of a valid folder path format: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (simply copy the address from the file manager's address bar).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "Support for Phoneme Conversion, Manual Phoneme Editing, and Step-by-Step Speech Synthesis will be added in the future.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "If reference audio is not clear or unsure what to write, enable this option to ignore the reference text.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "If reference audio is not clear or unsure what to write, enable this option to ignore the reference text.",
|
||||
"启用并行推理版本": "Enable Parallel Inference Version",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Please fill in the segmented audio files' directory! The full path of the audio file = the directory concatenated with the filename corresponding to the waveform in the list file (not the full path). If left blank, the absolute full path in the .list file will be used.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Please fill in the segmented audio files' directory! The full path of the audio file = the directory concatenated with the filename corresponding to the waveform in the list file (not the full path). If left blank, the absolute full path in the .list file will be used.",
|
||||
"多语种混合": "Multilingual Mixed",
|
||||
"多语种混合(粤语)": "Multilingual Mixed(Yue)",
|
||||
"失败": " Failed",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Parallel Inference",
|
||||
"并行推理模式已关闭": "Parallel Inference Mode Disabled",
|
||||
"并行推理模式已开启": "Parallel Inference Mode Enabled",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Missing Pretrained Model, Cannot Load LoRA Weights",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Missing Pretrained Model, Cannot Load LoRA Weights",
|
||||
"开启": "Open ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Enable no reference mode. If you don't fill 'Text for reference audio', no reference mode will be enabled.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "When parallel inference mode is enabled, SoVITS V3/4 models do not support bucket processing; bucket processing has been automatically disabled.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Fine-Tuning",
|
||||
"怎么切": "How to slice the sentence",
|
||||
"总训练轮数total_epoch": "Total training epochs (total_epoch):",
|
||||
"总训练轮数total_epoch,不建议太高": "Total epochs, do not increase to a value that is too high",
|
||||
"总训练轮数total_epoch, 不建议太高": "Total epochs, do not increase to a value that is too high",
|
||||
"指定输出主人声文件夹": "Specify the output folder for vocals:",
|
||||
"指定输出非主人声文件夹": "Specify the output folder for accompaniment:",
|
||||
"按中文句号。切": "Slice by Chinese punct",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Tokenization & BERT Feature Extraction",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Text Segmentation Tool. Very long text may not yield good synthesis results, so Segmentation is Recommended. Synthesis will be performed based on line breaks and then concatenated.",
|
||||
"文本模块学习率权重": "Text model learning rate weighting",
|
||||
"施工中,请静候佳音": "In construction, please wait",
|
||||
"施工中, 请静候佳音": "In construction, please wait",
|
||||
"日文": "Japanese",
|
||||
"日英混合": "Japanese-English Mixed",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Save only the latest weight file to save disk space",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Model",
|
||||
"模型分为三类:": "Models are categorized into three types:",
|
||||
"模型切换": "Model switch",
|
||||
"模型加载中,请等待": "Model is loading, please wait...",
|
||||
"模型加载中, 请等待": "Model is loading, please wait...",
|
||||
"每张显卡的batch_size": "Batch size per GPU:",
|
||||
"粤英混合": "Yue-English Mixed",
|
||||
"粤语": "Yue",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Speech Recognition",
|
||||
"语音识别工具": "Speech Recognition Tool",
|
||||
"语音降噪": "Speech Denoising",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Please upload a reference audio within the 3-10 second range; if it exceeds this duration, it will raise errors.",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Please upload a reference audio within the 3-10 second range; if it exceeds this duration, it will raise errors.",
|
||||
"请上传参考音频": "Please Upload the Reference Audio",
|
||||
"请填入推理文本": "Please Fill in the Terget Text",
|
||||
"请填入正确的List路径": "Please Fill in the Correct List Path",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Progress",
|
||||
"进程已终止": " Process Terminated",
|
||||
"进程输出信息": " Process Output Information",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Select the model from SoVITS_weights and GPT_weights. The default models are pretrained models for experiencing 5-second Zero-Shot TTS without training.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Select the model from SoVITS_weights and GPT_weights. The default models are pretrained models for experiencing 5-second Zero-Shot TTS without training.",
|
||||
"采样步数(仅对V3/4生效)": "Sampling Steps (V3/V4 Only)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Sampling Steps: If feel noisy, try increasing, if feel slow, try decreasing",
|
||||
"重复惩罚": "Repetition Penalty",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Failed to Load Audio",
|
||||
"音频文件不存在,跳过:": "Audio File Not Found, Skipping: ",
|
||||
"音频标注WebUI": "Audio Labeling WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Audio slicer input (file or folder)",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Audio slicer input (file or folder)",
|
||||
"音频超分中": "Running Audio Super-Resolution",
|
||||
"音频超采样": "Audio Upsampling",
|
||||
"音频超采样(仅对V3生效))": "Audio Upsampling (V3 Only)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net (onnx_dereverb): reverberación estéreo, la mejor opción; no puede eliminar reverberación mono",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Eliminar el efecto de retardo. Aggressive elimina más que Normal, DeReverb elimina reverberación adicional, puede eliminar reverberación mono, pero no limpia bien la reverberación de placa de alta frecuencia",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Eliminar el efecto de retardo. Aggressive elimina más que Normal, DeReverb elimina reverberación adicional, puede eliminar reverberación mono, pero no limpia bien la reverberación de placa de alta frecuencia",
|
||||
"实验/模型名": "Nombre del experimento/modelo",
|
||||
"文本标注文件": "Archivo de etiquetado de texto",
|
||||
"训练集音频文件目录": "Directorio de archivos de audio de entrenamiento",
|
||||
"请上传并填写参考信息": "Por favor, suba y complete la información de referencia",
|
||||
"请填写需要合成的目标文本和语种模式": "Por favor, complete el texto objetivo a sintetizar y el modo de idioma",
|
||||
".限制范围越小判别效果越好。": ".Cuanto más pequeño sea el rango, mejor será el efecto de discriminación.",
|
||||
"限制范围越小判别效果越好": ".Cuanto más pequeño sea el rango, mejor será el efecto de discriminación.",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. El modelo DeEcho-DeReverb tarda casi el doble que los otros dos modelos DeEcho",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Retener voz principal: seleccione este para audio sin coros, retiene mejor la voz principal que HP5. Incluye dos modelos, HP2 y HP3; HP3 puede filtrar ligeramente el acompañamiento pero retiene mejor la voz principal que HP2",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "¡V3 no admite el modo sin texto de referencia! Por favor, introduce el texto de referencia.",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix: proporción de mezcla de audio normalizado que entra",
|
||||
"batch_size": "Tamaño de lote",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size: cómo calcular la curva de volumen, cuanto más pequeño, mayor precisión pero mayor carga computacional (mayor precisión no significa mejor rendimiento)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: cómo calcular la curva de volumen, cuanto más pequeño, mayor precisión pero mayor carga computacional (mayor precisión no significa mejor rendimiento)",
|
||||
"max:归一化后最大值多少": "max: valor máximo después de la normalización",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept: duración máxima del silencio después del corte",
|
||||
"min_interval:最短切割间隔": "min_interval: intervalo mínimo de corte",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length: longitud mínima de cada segmento; si el primer segmento es demasiado corto, se une al siguiente hasta superar este valor",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: longitud mínima de cada segmento; si el primer segmento es demasiado corto, se une al siguiente hasta superar este valor",
|
||||
"temperature": "temperatura",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "umbral: puntos de corte alternativos considerados como silencio si el volumen es menor que este valor",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3 no es compatible con este modo actualmente y su uso generará un error.",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3 no es compatible con este modo actualmente y su uso generará un error.",
|
||||
"v3输出如果觉得闷可以试试开超分": "Si la salida de V3 parece aburrida, puedes intentar activar la superresolución",
|
||||
"不切": "No cortar",
|
||||
"不训练直接推v2ProPlus底模!": "¡Usar directamente el modelo base v2ProPlus sin entrenar!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "¡Usar directamente el modelo base v3 sin entrenar!",
|
||||
"中文": "Chino",
|
||||
"中英混合": "Chino e inglés mezclados",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Audio de referencia principal (Por favor, suba un audio de referencia de entre 3 y 10 segundos, si supera este límite se producirá un error)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Audio de referencia principal (Por favor, suba un audio de referencia de entre 3 y 10 segundos, si supera este límite se producirá un error)",
|
||||
"主参考音频的文本": "Texto del audio de referencia principal",
|
||||
"主参考音频的语种": "Idioma del audio de referencia principal",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "También se pueden ingresar archivos de audio por lotes, seleccionar uno, prioridad para leer carpetas",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "No Existe Tal Archivo o Carpeta",
|
||||
"以下模型不存在:": "No Existe tal Modelo:",
|
||||
"伴奏人声分离&去混响&去回声": "Separación de acompañamiento y voz principal y eliminación de reverberación y eco",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "No has descargado los parámetros del modelo de superresolución, por lo que no se realizará la superresolución. Si deseas habilitarla, sigue el tutorial y descarga los archivos necesarios",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "No has descargado los parámetros del modelo de superresolución, por lo que no se realizará la superresolución. Si deseas habilitarla, sigue el tutorial y descarga los archivos necesarios",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Se recomienda usar un GPT ajustado cuando se use el modo sin texto de referencia.",
|
||||
"保存频率save_every_epoch": "Frecuencia de guardado (cada epoch)",
|
||||
"保持随机": "Mantener aleatorio",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Herramienta de adquisición de conjunto de datos previo",
|
||||
"占用中": " En uso",
|
||||
"去混响/去延迟,附:": "Eliminación de reverberación/retardo, incluye:",
|
||||
"参考音频在3~10秒范围外,请更换!": "El audio de referencia está fuera del rango de 3 a 10 segundos, ¡por favor cámbielo!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "El audio de referencia está fuera del rango de 3 a 10 segundos, ¡por favor cámbielo!",
|
||||
"参考音频的文本": "Texto de referencia del audio",
|
||||
"参考音频的语种": "Idioma del audio de referencia",
|
||||
"句间停顿秒数": "Segundos de pausa entre frases",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Opcional: Sube varios archivos de audio de referencia arrastrándolos y soltándolos (se recomienda que sean del mismo género) y promedia sus tonos. Si esta opción se deja en blanco, el tono será controlado por el único audio de referencia a la izquierda. Si se está afinando el modelo, se recomienda que todos los archivos de audio de referencia tengan tonos dentro del conjunto de entrenamiento de ajuste fino; se puede ignorar el modelo preentrenado.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Opcional: Sube varios archivos de audio de referencia arrastrándolos y soltándolos (se recomienda que sean del mismo género) y promedia sus tonos. Si esta opción se deja en blanco, el tono será controlado por el único audio de referencia a la izquierda. Si se está afinando el modelo, se recomienda que todos los archivos de audio de referencia tengan tonos dentro del conjunto de entrenamiento de ajuste fino; se puede ignorar el modelo preentrenado.",
|
||||
"合成语音": "Síntesis de voz",
|
||||
"合成音频": "Sintetizar Audio",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Ejemplo de formato de ruta de carpeta válida: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (simplemente copie desde la barra de direcciones del administrador de archivos).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "Se añadirá soporte para conversión de fonemas, edición manual de fonemas y síntesis de voz por pasos en el futuro.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Si el audio de referencia no es claro o no sabe qué escribir, habilite esta opción para ignorar el texto de referencia.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Si el audio de referencia no es claro o no sabe qué escribir, habilite esta opción para ignorar el texto de referencia.",
|
||||
"启用并行推理版本": "Habilitar versión de inferencia paralela",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Ingrese el directorio donde se encuentran los audios después de la división. La ruta completa de los archivos de audio leídos = este directorio + nombre de archivo correspondiente en el archivo .list (no la ruta completa). Si se deja en blanco, se utilizará la ruta completa del archivo .list.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Ingrese el directorio donde se encuentran los audios después de la división. La ruta completa de los archivos de audio leídos = este directorio + nombre de archivo correspondiente en el archivo .list (no la ruta completa). Si se deja en blanco, se utilizará la ruta completa del archivo .list.",
|
||||
"多语种混合": "Mezcla de varios idiomas",
|
||||
"多语种混合(粤语)": "Mezcla Multilingüe (Cantonés)",
|
||||
"失败": " Fallido",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Inferencia paralela",
|
||||
"并行推理模式已关闭": "Modo de inferencia paralela deshabilitado",
|
||||
"并行推理模式已开启": "Modo de inferencia paralela habilitado",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Falta el modelo base, no se pueden cargar los pesos de LoRA correspondientes",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Falta el modelo base, no se pueden cargar los pesos de LoRA correspondientes",
|
||||
"开启": "Activar ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Habilitar el modo sin texto de referencia. No llenar el texto de referencia también lo habilita.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "Al activar el modo de inferencia paralela, los modelos SoVITS V3/4 no admiten el procesamiento por lotes, por lo que este ha sido desactivado automáticamente.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Entrenamiento de ajuste fino",
|
||||
"怎么切": "Cómo cortar",
|
||||
"总训练轮数total_epoch": "Número total de épocas de entrenamiento",
|
||||
"总训练轮数total_epoch,不建议太高": "Número total de épocas de entrenamiento, no se recomienda demasiado alto",
|
||||
"总训练轮数total_epoch, 不建议太高": "Número total de épocas de entrenamiento, no se recomienda demasiado alto",
|
||||
"指定输出主人声文件夹": "Especificar carpeta de salida de voz principal",
|
||||
"指定输出非主人声文件夹": "Especificar carpeta de salida de no voz principal",
|
||||
"按中文句号。切": "Cortar según puntos en chino",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Segmentación de texto y extracción de características",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Herramienta de segmentación de texto. Un texto demasiado largo puede no producir buenos resultados, por lo que se recomienda segmentarlo. La síntesis se realizará por separado según los saltos de línea y luego se unirá.",
|
||||
"文本模块学习率权重": "Peso de la tasa de aprendizaje del módulo de texto",
|
||||
"施工中,请静候佳音": "En construcción, por favor espere pacientemente",
|
||||
"施工中, 请静候佳音": "En construcción, por favor espere pacientemente",
|
||||
"日文": "Japonés",
|
||||
"日英混合": "Mezcla de japonés e inglés",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "¿Guardar solo el último archivo de pesos más reciente para ahorrar espacio en disco?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Modelo",
|
||||
"模型分为三类:": "Los modelos se dividen en tres categorías:",
|
||||
"模型切换": "Cambio de modelo",
|
||||
"模型加载中,请等待": "El modelo se está cargando, por favor espera...",
|
||||
"模型加载中, 请等待": "El modelo se está cargando, por favor espera...",
|
||||
"每张显卡的batch_size": "Tamaño de lote por tarjeta gráfica",
|
||||
"粤英混合": "Mezcla Cantonés-Inglés",
|
||||
"粤语": "Cantonés",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Reconocimiento de voz",
|
||||
"语音识别工具": "Herramienta de reconocimiento de voz",
|
||||
"语音降噪": "Reducción de ruido en la voz",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Por favor, suba un audio de referencia de entre 3 y 10 segundos, ¡más de eso causará un error!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Por favor, suba un audio de referencia de entre 3 y 10 segundos, ¡más de eso causará un error!",
|
||||
"请上传参考音频": "Por Favor, Suba el Audio de Referencia",
|
||||
"请填入推理文本": "Por Favor, Ingrese el Texto Objetivo",
|
||||
"请填入正确的List路径": "Por Favor, Introduzca la Ruta Correcta de la Lista",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Progreso",
|
||||
"进程已终止": " Proceso terminado",
|
||||
"进程输出信息": " Información de salida del proceso",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Seleccione los modelos guardados en SoVITS_weights y GPT_weights después del entrenamiento. Los predeterminados son modelos base para experimentar con inferencia Zero Shot TTS de 5 segundos sin entrenamiento.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Seleccione los modelos guardados en SoVITS_weights y GPT_weights después del entrenamiento. Los predeterminados son modelos base para experimentar con inferencia Zero Shot TTS de 5 segundos sin entrenamiento.",
|
||||
"采样步数(仅对V3/4生效)": "Pasos de muestreo (solo efectivo para V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Pasos de muestreo: si se siente ruidoso, intente aumentarlo; si es lento, intente reducirlo",
|
||||
"重复惩罚": "Penalización por repetición",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Error al Cargar el Audio",
|
||||
"音频文件不存在,跳过:": "Archivo de audio no encontrado, omitiendo: ",
|
||||
"音频标注WebUI": "WebUI de etiquetado de audio",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Ruta de entrada para la división automática de audio, puede ser un archivo o una carpeta",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Ruta de entrada para la división automática de audio, puede ser un archivo o una carpeta",
|
||||
"音频超分中": "Superresolución de audio en proceso",
|
||||
"音频超采样": "Muestreo superior del audio",
|
||||
"音频超采样(仅对V3生效))": "Muestreo superior del audio (solo efectivo para V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1) MDX-Net (onnx_dereverb) : C'est le meilleur choix pour la réverbération à deux canaux, mais il ne peut pas éliminer la réverbération à un seul canal;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho : Supprime les effets de délai. Aggressive est plus exhaustif que Normal dans la suppression, DeReverb élimine également la réverbération, peut supprimer la réverbération monocanal, mais n'élimine pas complètement la réverbération de plaque à haute fréquence.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho : Supprime les effets de délai. Aggressive est plus exhaustif que Normal dans la suppression, DeReverb élimine également la réverbération, peut supprimer la réverbération monocanal, mais n'élimine pas complètement la réverbération de plaque à haute fréquence.",
|
||||
"实验/模型名": "Nom de l'expérience/modèle",
|
||||
"文本标注文件": "Fichier d'annotation de texte",
|
||||
"训练集音频文件目录": "Répertoire des fichiers audio d'entraînement",
|
||||
"请上传并填写参考信息": "Veuillez télécharger et remplir les informations de référence",
|
||||
"请填写需要合成的目标文本和语种模式": "Veuillez saisir le texte cible à synthétiser et le mode de langue.",
|
||||
".限制范围越小判别效果越好。": "Moins il y a de langues, mieux c'est",
|
||||
"限制范围越小判别效果越好": "Moins il y a de langues, mieux c'est",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. Le temps de traitement du modèle DeEcho-DeReverb est presque le double de celui des deux autres modèles DeEcho;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Préserver les voix : Choisissez cette option pour les audio sans harmonie, car elle conserve mieux la voix principale par rapport au modèle HP5. Deux modèles intégrés, HP2 et HP3, sont disponibles. HP3 peut légèrement laisser passer l'accompagnement mais conserve la voix principale un peu mieux que HP2;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "La version V3 ne prend pas en charge le mode sans texte de référence. Veuillez fournir un texte de référence !",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix: proportion d'audio normalisé mélangé",
|
||||
"batch_size": "Taille de lot",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size: comment calculer la courbe de volume, plus petit pour une précision plus élevée mais une charge de calcul plus élevée (ce n'est pas une meilleure précision)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: comment calculer la courbe de volume, plus petit pour une précision plus élevée mais une charge de calcul plus élevée (ce n'est pas une meilleure précision)",
|
||||
"max:归一化后最大值多少": "max: valeur maximale après normalisation",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept: durée maximale de silence après la coupe",
|
||||
"min_interval:最短切割间隔": "min_interval: intervalle de coupe minimum",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:longueur minimale de chaque segment ; si le premier segment est trop court, il est concaténé avec les segments suivants jusqu'à ce que la longueur dépasse cette valeur",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:longueur minimale de chaque segment ; si le premier segment est trop court, il est concaténé avec les segments suivants jusqu'à ce que la longueur dépasse cette valeur",
|
||||
"temperature": "température",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "seuil: le volume inférieur à cette valeur est considéré comme un point de coupe silencieux alternatif",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "Le mode n'est pas encore supporté par la v3. Une erreur se produira en cas d'utilisation.",
|
||||
"v3暂不支持该模式, 使用了会报错": "Le mode n'est pas encore supporté par la v3. Une erreur se produira en cas d'utilisation.",
|
||||
"v3输出如果觉得闷可以试试开超分": "Si la sortie v3 semble étouffée, essayez l'upscaling",
|
||||
"不切": "Pas de découpe",
|
||||
"不训练直接推v2ProPlus底模!": "Utiliser directement le modèle de base v2ProPlus sans entraînement !",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Utiliser directement le modèle de base v3 sans entraînement !",
|
||||
"中文": "Chinois",
|
||||
"中英混合": "Mélange de chinois et d'anglais",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Audio de référence principal (Veuillez télécharger un audio de référence entre 3 et 10 secondes, dépasser cette limite entraînera une erreur !)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Audio de référence principal (Veuillez télécharger un audio de référence entre 3 et 10 secondes, dépasser cette limite entraînera une erreur !)",
|
||||
"主参考音频的文本": "Texte de l’audio de référence principal",
|
||||
"主参考音频的语种": "Langue de l’audio de référence principal",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "Également possible d'entrer en lot des fichiers audio, au choix, privilégiez la lecture du dossier",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "Aucun Fichier ou Dossier de ce Type",
|
||||
"以下模型不存在:": "Aucun Modèle de ce Type:",
|
||||
"伴奏人声分离&去混响&去回声": "Séparation de la voix et de l'accompagnement, suppression de la réverbération et de l'écho",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Vous n'avez pas téléchargé les paramètres du modèle d'upscaling, donc l'upscaling ne sera pas effectué. Veuillez suivre le tutoriel pour télécharger les fichiers nécessaires",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Vous n'avez pas téléchargé les paramètres du modèle d'upscaling, donc l'upscaling ne sera pas effectué. Veuillez suivre le tutoriel pour télécharger les fichiers nécessaires",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Il est recommandé d'utiliser un GPT finement ajusté lors de l'utilisation du mode sans texte de référence.",
|
||||
"保存频率save_every_epoch": "Fréquence de sauvegarde (sauvegarder à chaque époque)",
|
||||
"保持随机": "Garder aléatoire",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Outil de récupération des ensembles de données",
|
||||
"占用中": " Occupé",
|
||||
"去混响/去延迟,附:": "Suppression de la réverbération / suppression du retard, ci-joint:",
|
||||
"参考音频在3~10秒范围外,请更换!": "Veuillez remplacer l'audio de référence si sa durée est en dehors de la plage de 3 à 10 secondes!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "Veuillez remplacer l'audio de référence si sa durée est en dehors de la plage de 3 à 10 secondes!",
|
||||
"参考音频的文本": "Texte de l'audio de référence",
|
||||
"参考音频的语种": "Langue de l'audio de référence",
|
||||
"句间停顿秒数": "Temps de pause entre les phrases (secondes)",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Optionnel : Téléchargez plusieurs fichiers audio de référence en les faisant glisser (recommandé d'être du même genre) et fusionnez leur tonalité. Si cette option est laissée vide, la tonalité sera contrôlée par l'unique fichier audio de référence à gauche. Si vous ajustez le modèle, il est recommandé que tous les fichiers audio de référence aient des tonalités dans l'ensemble d'entraînement d'ajustement ; le modèle pré-entrainé peut être ignoré.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Optionnel : Téléchargez plusieurs fichiers audio de référence en les faisant glisser (recommandé d'être du même genre) et fusionnez leur tonalité. Si cette option est laissée vide, la tonalité sera contrôlée par l'unique fichier audio de référence à gauche. Si vous ajustez le modèle, il est recommandé que tous les fichiers audio de référence aient des tonalités dans l'ensemble d'entraînement d'ajustement ; le modèle pré-entrainé peut être ignoré.",
|
||||
"合成语音": "Synthèse vocale",
|
||||
"合成音频": "Synthétiser l'audio",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Exemple de format de chemin de dossier valide : E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (copiez-le depuis la barre d'adresse de l'explorateur de fichiers).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "Le support pour la conversion phonémique, l’édition manuelle des phonèmes et la synthèse vocale par étapes sera ajouté ultérieurement.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Si vous ne comprenez pas bien l'audio de référence (vous ne savez pas quoi écrire), vous pouvez activer cette option. Une fois activée, le texte de référence sera ignoré.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Si vous ne comprenez pas bien l'audio de référence (vous ne savez pas quoi écrire), vous pouvez activer cette option. Une fois activée, le texte de référence sera ignoré.",
|
||||
"启用并行推理版本": "Activer la version d’inférence parallèle",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Veuillez indiquer le répertoire contenant les audio découpés ! Le chemin complet du fichier audio à lire = ce répertoire - nom du fichier correspondant à l'onde dans le fichier .list (pas le chemin complet). Si laissé vide, le chemin absolu dans le fichier .list sera utilisé.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Veuillez indiquer le répertoire contenant les audio découpés ! Le chemin complet du fichier audio à lire = ce répertoire - nom du fichier correspondant à l'onde dans le fichier .list (pas le chemin complet). Si laissé vide, le chemin absolu dans le fichier .list sera utilisé.",
|
||||
"多语种混合": "Mélange multilingue",
|
||||
"多语种混合(粤语)": "Mélange Multilingue (Cantonais)",
|
||||
"失败": " Échec",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Inférence parallèle",
|
||||
"并行推理模式已关闭": "Mode d’inférence parallèle désactivé",
|
||||
"并行推理模式已开启": "Mode d’inférence parallèle activé",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Modèle de base manquant, impossible de charger les poids LoRA correspondants",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Modèle de base manquant, impossible de charger les poids LoRA correspondants",
|
||||
"开启": "Activer ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Activer le mode sans texte de référence. Laisser le texte de référence vide équivaut également à activer le mode.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "Lorsque le mode d'inférence parallèle est activé, les modèles SoVITS V3/4 ne prennent pas en charge le traitement par lots, qui a donc été désactivé automatiquement.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Entraînement de fine-tuning",
|
||||
"怎么切": "Comment découper",
|
||||
"总训练轮数total_epoch": "Nombre total d'époques d'entraînement",
|
||||
"总训练轮数total_epoch,不建议太高": "Nombre total d'époques d'entraînement, pas recommandé d'être trop élevé",
|
||||
"总训练轮数total_epoch, 不建议太高": "Nombre total d'époques d'entraînement, pas recommandé d'être trop élevé",
|
||||
"指定输出主人声文件夹": "Spécifier le dossier de sortie pour la voix principale",
|
||||
"指定输出非主人声文件夹": "Spécifier le dossier de sortie pour la non-voix principale",
|
||||
"按中文句号。切": "Couper selon les points en chinois.",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Segmentation et extraction de caractéristiques du texte",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Outil de segmentation de texte. Un texte trop long peut donner un mauvais résultat, il est donc recommandé de le segmenter. La synthèse se fera selon les sauts de ligne puis sera assemblée.",
|
||||
"文本模块学习率权重": "Poids du taux d'apprentissage du module de texte",
|
||||
"施工中,请静候佳音": "En construction, veuillez attendre patiemment",
|
||||
"施工中, 请静候佳音": "En construction, veuillez attendre patiemment",
|
||||
"日文": "Japonais",
|
||||
"日英混合": "Mélange Japonais-Anglais",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Faut-il ne conserver que les derniers fichiers de poids pour économiser de l'espace disque ?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Modèle",
|
||||
"模型分为三类:": "Les modèles sont classés en trois catégories:",
|
||||
"模型切换": "Changement de modèle",
|
||||
"模型加载中,请等待": "Le modèle est en cours de chargement, veuillez patienter...",
|
||||
"模型加载中, 请等待": "Le modèle est en cours de chargement, veuillez patienter...",
|
||||
"每张显卡的batch_size": "Taille de lot par carte graphique",
|
||||
"粤英混合": "Mélange Cantonais-Anglais",
|
||||
"粤语": "Cantonais",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Reconnaissance vocale",
|
||||
"语音识别工具": "Outil de reconnaissance vocale",
|
||||
"语音降噪": "Réduction du bruit audio",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Veuillez télécharger une référence audio de 3 à 10 secondes ; les fichiers plus longs généreront une erreur!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Veuillez télécharger une référence audio de 3 à 10 secondes ; les fichiers plus longs généreront une erreur!",
|
||||
"请上传参考音频": "Veuillez télécharger l'audio de référence",
|
||||
"请填入推理文本": "Veuillez remplir le texte cible",
|
||||
"请填入正确的List路径": "Veuillez Remplir le Chemin Correct de la Liste",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Progression",
|
||||
"进程已终止": " Processus terminé",
|
||||
"进程输出信息": " Sortie du processus",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Sélectionnez les modèles entraînés stockés dans SoVITS_weights et GPT_weights. Par défaut, certains sont des modèles de base pour l'inférence Zero Shot TTS en 5 secondes sans entraînement.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Sélectionnez les modèles entraînés stockés dans SoVITS_weights et GPT_weights. Par défaut, certains sont des modèles de base pour l'inférence Zero Shot TTS en 5 secondes sans entraînement.",
|
||||
"采样步数(仅对V3/4生效)": "Nombre d'étapes d'échantillonnage (uniquement effectif pour V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Nombre d’étapes d’échantillonnage : si le son est bruité, essayez d’augmenter, si c’est lent, essayez de réduire",
|
||||
"重复惩罚": "Pénalité de répétition",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Échec du Chargement de l'Audio",
|
||||
"音频文件不存在,跳过:": "Fichier audio introuvable, passage : ",
|
||||
"音频标注WebUI": "Interface Web d'annotation audio",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Chemin d'entrée automatique de découpage audio, peut être un fichier ou un dossier",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Chemin d'entrée automatique de découpage audio, peut être un fichier ou un dossier",
|
||||
"音频超分中": "Super-résolution audio en cours",
|
||||
"音频超采样": "Suréchantillonnage audio",
|
||||
"音频超采样(仅对V3生效))": "Suréchantillonnage audio (uniquement effectif pour V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net (onnx_dereverb): È la scelta migliore per la riverberazione a due canali, ma non può rimuovere la riverberazione a canale singolo;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Rimuove gli effetti di ritardo. Aggressive è più completo di Normal nella rimozione, DeReverb rimuove ulteriormente la riverberazione, può rimuovere la riverberazione a canale singolo, ma non rimuove completamente la riverberazione a piastra ad alta frequenza.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: Rimuove gli effetti di ritardo. Aggressive è più completo di Normal nella rimozione, DeReverb rimuove ulteriormente la riverberazione, può rimuovere la riverberazione a canale singolo, ma non rimuove completamente la riverberazione a piastra ad alta frequenza.",
|
||||
"实验/模型名": "Nome dell'esperimento/modello",
|
||||
"文本标注文件": "File di annotazione del testo",
|
||||
"训练集音频文件目录": "Directory dei file audio del set di addestramento",
|
||||
"请上传并填写参考信息": "Carica e compila le informazioni di riferimento",
|
||||
"请填写需要合成的目标文本和语种模式": "Si prega di inserire il testo di destinazione da sintetizzare e la modalità lingua",
|
||||
".限制范围越小判别效果越好。": "Meno multilingue è meglio",
|
||||
"限制范围越小判别效果越好": "Meno multilingue è meglio",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. Il tempo di elaborazione del modello DeEcho-DeReverb è quasi il doppio di quello degli altri due modelli DeEcho;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Conserva la voce principale: scegli questa opzione per audio senza armonie, poiché conserva meglio la voce principale rispetto al modello HP5. Include due modelli integrati, HP2 e HP3. HP3 potrebbe far passare leggermente l'accompagnamento ma conserva meglio la voce principale rispetto a HP2;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 non supporta la modalità senza testo di riferimento! Inserisci il testo di riferimento!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix: Quanta proporzione dell'audio normalizzato deve essere miscelata",
|
||||
"batch_size": "Dimensione del batch",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size: Come calcolare la curva del volume. Più piccolo è, maggiore è la precisione ma aumenta la complessità computazionale (non significa che una maggiore precisione dà risultati migliori)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: Come calcolare la curva del volume. Più piccolo è, maggiore è la precisione ma aumenta la complessità computazionale (non significa che una maggiore precisione dà risultati migliori)",
|
||||
"max:归一化后最大值多少": "max: Massimo valore dopo la normalizzazione",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept: Massima durata del silenzio dopo il taglio",
|
||||
"min_interval:最短切割间隔": "min_interval: Intervallo minimo di taglio",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length: Lunghezza minima per segmento; se il primo segmento è troppo corto, sarà unito ai segmenti successivi fino a superare questo valore",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: Lunghezza minima per segmento; se il primo segmento è troppo corto, sarà unito ai segmenti successivi fino a superare questo valore",
|
||||
"temperature": "temperatura",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold: Punto di taglio alternativo considerato silenzioso se il volume è inferiore a questo valore",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "V3 non supporta questa modalità, utilizzarla genererà un errore.",
|
||||
"v3暂不支持该模式, 使用了会报错": "V3 non supporta questa modalità, utilizzarla genererà un errore.",
|
||||
"v3输出如果觉得闷可以试试开超分": "Se l'output v3 sembra ovattato, prova ad attivare il super-risoluzione",
|
||||
"不切": "Nessuna suddivisione",
|
||||
"不训练直接推v2ProPlus底模!": "Usa direttamente il modello base v2ProPlus senza addestramento!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Usa direttamente il modello base v3 senza addestramento!",
|
||||
"中文": "Cinese",
|
||||
"中英混合": "Cinese e inglese misti",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Audio di riferimento principale (Si prega di caricare un audio di riferimento tra 3 e 10 secondi, superato questo limite si verificherà un errore!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Audio di riferimento principale (Si prega di caricare un audio di riferimento tra 3 e 10 secondi, superato questo limite si verificherà un errore!)",
|
||||
"主参考音频的文本": "Testo dell'audio di riferimento principale",
|
||||
"主参考音频的语种": "Lingua dell'audio di riferimento principale",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "È possibile anche inserire file audio in batch, una delle due opzioni, con priorità alla lettura della cartella",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "Nessun File o Cartella di Questo Tipo",
|
||||
"以下模型不存在:": "Nessun Modello del Genere:",
|
||||
"伴奏人声分离&去混响&去回声": "Separazione tra accompagnamento e voce & Rimozione dell'eco & Rimozione dell'eco",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Non hai scaricato i parametri del modello di super-risoluzione, quindi l'upscaling non verrà eseguito. Segui il tutorial per scaricare i file necessari.",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Non hai scaricato i parametri del modello di super-risoluzione, quindi l'upscaling non verrà eseguito. Segui il tutorial per scaricare i file necessari.",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Si consiglia di usare un GPT fine-tuned quando si usa la modalità senza testo di riferimento.",
|
||||
"保存频率save_every_epoch": "Frequenza di salvataggio ogni epoca",
|
||||
"保持随机": "Mantieni casuale",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Strumento per acquisizione dataset",
|
||||
"占用中": " Occupato",
|
||||
"去混响/去延迟,附:": "Rimozione della riverberazione/ritardo, allegato:",
|
||||
"参考音频在3~10秒范围外,请更换!": "L'audio di riferimento è al di fuori dell'intervallo di 3-10 secondi. Si prega di cambiarlo!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "L'audio di riferimento è al di fuori dell'intervallo di 3-10 secondi. Si prega di cambiarlo!",
|
||||
"参考音频的文本": "Testo dell'audio di riferimento",
|
||||
"参考音频的语种": "Lingua dell'audio di riferimento",
|
||||
"句间停顿秒数": "Durata pausa tra le frasi (secondi)",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Opzionale: Carica più file audio di riferimento trascinandoli (si consiglia dello stesso genere) e media il loro tono. Se questa opzione è lasciata vuota, il tono sarà controllato dal singolo file audio di riferimento a sinistra. Se si sta perfezionando il modello, è consigliato che tutti i file audio di riferimento abbiano toni presenti nel set di addestramento per il perfezionamento; il modello pre-addestrato può essere ignorato.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Opzionale: Carica più file audio di riferimento trascinandoli (si consiglia dello stesso genere) e media il loro tono. Se questa opzione è lasciata vuota, il tono sarà controllato dal singolo file audio di riferimento a sinistra. Se si sta perfezionando il modello, è consigliato che tutti i file audio di riferimento abbiano toni presenti nel set di addestramento per il perfezionamento; il modello pre-addestrato può essere ignorato.",
|
||||
"合成语音": "Sintesi vocale",
|
||||
"合成音频": "Sintesi audio",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Formato di percorso della cartella valido: E:\\codes\\py39\\vits_vc_gpu\\Esempio di test di BaiLuShuangHua (copiare direttamente dalla barra degli indirizzi del gestore file).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "In futuro verrà aggiunto il supporto per la conversione dei fonemi, la modifica manuale dei fonemi e la sintesi vocale passo dopo passo.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Se l'audio di riferimento non è chiaro o non sai cosa scrivere, abilita questa opzione per ignorare il testo di riferimento.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Se l'audio di riferimento non è chiaro o non sai cosa scrivere, abilita questa opzione per ignorare il testo di riferimento.",
|
||||
"启用并行推理版本": "Abilita versione di inferenza parallela",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Inserisci la directory dell'audio segmentato! Il percorso completo del file audio letto = questa directory - unione del nome del file corrispondente alle forme d'onda nel file .list (non il percorso completo). Se lasciato vuoto, verrà utilizzato il percorso assoluto nel file .list.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Inserisci la directory dell'audio segmentato! Il percorso completo del file audio letto = questa directory - unione del nome del file corrispondente alle forme d'onda nel file .list (non il percorso completo). Se lasciato vuoto, verrà utilizzato il percorso assoluto nel file .list.",
|
||||
"多语种混合": "Mix multilingue",
|
||||
"多语种混合(粤语)": "Misto Multilingue (Cantonese)",
|
||||
"失败": " Fallito",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Inferenza parallela",
|
||||
"并行推理模式已关闭": "Modalità di inferenza parallela disabilitata",
|
||||
"并行推理模式已开启": "Modalità di inferenza parallela abilitata",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Mancano il modello base, non è possibile caricare i pesi LoRA corrispondenti",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Mancano il modello base, non è possibile caricare i pesi LoRA corrispondenti",
|
||||
"开启": "Attiva ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Attivare la modalità senza testo di riferimento. Anche se non inserisci un testo di riferimento, la modalità verrà attivata.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "Quando la modalità di inferenza parallela è attiva, i modelli SoVITS V3/4 non supportano l'elaborazione suddivisa in gruppi e questa è stata automaticamente disattivata.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Addestramento fine-tuning",
|
||||
"怎么切": "Come tagliare",
|
||||
"总训练轮数total_epoch": "Numero totale di epoche di addestramento",
|
||||
"总训练轮数total_epoch,不建议太高": "Numero totale di epoche di addestramento, non raccomandato troppo alto",
|
||||
"总训练轮数total_epoch, 不建议太高": "Numero totale di epoche di addestramento, non raccomandato troppo alto",
|
||||
"指定输出主人声文件夹": "Specifica la cartella di output per la voce principale",
|
||||
"指定输出非主人声文件夹": "Specifica la cartella di output per la non voce principale",
|
||||
"按中文句号。切": "Taglia secondo il punto cinese.",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Tokenizzazione ed estrazione delle caratteristiche del testo",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Strumento di segmentazione del testo. Testi troppo lunghi potrebbero non dare buoni risultati, quindi si consiglia di segmentarli. La sintesi verrà eseguita separando il testo in base ai ritorni a capo e poi concatenandolo.",
|
||||
"文本模块学习率权重": "Peso del tasso di apprendimento del modulo di testo",
|
||||
"施工中,请静候佳音": "In costruzione, attendi pazientemente le buone notizie",
|
||||
"施工中, 请静候佳音": "In costruzione, attendi pazientemente le buone notizie",
|
||||
"日文": "Giapponese",
|
||||
"日英混合": "Mix giapponese e inglese",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Salvare solo i file di pesi più recenti per risparmiare spazio su disco?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Modello",
|
||||
"模型分为三类:": "I modelli sono divisi in tre categorie:",
|
||||
"模型切换": "Cambio del modello",
|
||||
"模型加载中,请等待": "Il modello si sta caricando, attendere prego...",
|
||||
"模型加载中, 请等待": "Il modello si sta caricando, attendere prego...",
|
||||
"每张显卡的batch_size": "Batch size per ogni scheda grafica",
|
||||
"粤英混合": "Misto Cantonese-Inglese",
|
||||
"粤语": "Cantonese",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Riconoscimento vocale",
|
||||
"语音识别工具": "Strumento di riconoscimento vocale",
|
||||
"语音降噪": "Riduzione del rumore audio",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Carica un audio di riferimento della durata compresa tra 3 e 10 secondi. Superiore a questo, verrà generato un errore!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Carica un audio di riferimento della durata compresa tra 3 e 10 secondi. Superiore a questo, verrà generato un errore!",
|
||||
"请上传参考音频": "Si prega di caricare l'audio di riferimento",
|
||||
"请填入推理文本": "Si prega di inserire il testo di destinazione",
|
||||
"请填入正确的List路径": "Si Prega di Inserire il Percorso Corretto della Lista",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Avanzamento",
|
||||
"进程已终止": " Processo terminato",
|
||||
"进程输出信息": " Output del processo",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Seleziona i modelli addestrati salvati in SoVITS_weights e GPT_weights. Quelli predefiniti sono modelli base per sperimentare l'inferenza Zero Shot TTS in 5 secondi senza addestramento.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Seleziona i modelli addestrati salvati in SoVITS_weights e GPT_weights. Quelli predefiniti sono modelli base per sperimentare l'inferenza Zero Shot TTS in 5 secondi senza addestramento.",
|
||||
"采样步数(仅对V3/4生效)": "Numero di passaggi di campionamento (valido solo per V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Passi di campionamento: se sembra rumoroso, prova a aumentarlo, se è lento, prova a diminuirlo",
|
||||
"重复惩罚": "Penalità di ripetizione",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Caricamento Audio Fallito",
|
||||
"音频文件不存在,跳过:": "File audio non trovato, salto: ",
|
||||
"音频标注WebUI": "Interfaccia Web per annotazione audio",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Percorso di input per la segmentazione automatica dell'audio, può essere un file o una cartella",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Percorso di input per la segmentazione automatica dell'audio, può essere un file o una cartella",
|
||||
"音频超分中": "Super-risoluzione audio in corso",
|
||||
"音频超采样": "Upsampling audio",
|
||||
"音频超采样(仅对V3生效))": "Upsampling audio (valido solo per V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):二重チャンネルのリバーブに最適な選択ですが、単一チャンネルのリバーブは除去できません;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:遅延効果を除去します。AggressiveはNormalよりも徹底的に除去し、DeReverbは追加でリバーブを除去し、モノラルリバーブを除去できますが、高周波数のプレートリバーブは完全には除去できません。",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:遅延効果を除去します。AggressiveはNormalよりも徹底的に除去し、DeReverbは追加でリバーブを除去し、モノラルリバーブを除去できますが、高周波数のプレートリバーブは完全には除去できません。",
|
||||
"实验/模型名": "実験/モデル名",
|
||||
"文本标注文件": "テキスト注釈ファイル",
|
||||
"训练集音频文件目录": "トレーニングデータのオーディオファイルディレクトリ",
|
||||
"请上传并填写参考信息": "参照情報をアップロードして記入してください",
|
||||
"请填写需要合成的目标文本和语种模式": "合成対象テキストと言語モードを入力してください",
|
||||
".限制范围越小判别效果越好。": "多言語対応を減らした方が良い",
|
||||
"限制范围越小判别效果越好": "多言語対応を減らした方が良い",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1、DeEcho-DeReverbモデルの処理時間は、他の2つのDeEchoモデルのほぼ2倍です;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1、主音を保持: ハーモニーなしの音声にはこのオプションを選択し、HP5よりも主音の保持が優れています。HP2とHP3の2つのモデルが内蔵されており、HP3はわずかに伴奏を漏らす可能性がありますが、HP2よりも主音の保持がわずかに良いです;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3は参照テキストなしのモードをサポートしていません。必ず参照テキストを入力してください!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:正規化後のオーディオが入る割合",
|
||||
"batch_size": "バッチサイズ",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size: 音量曲線の計算方法、小さいほど精度が高くなりますが、計算量が増加します(精度が高いほど必ずしも効果が良いわけではありません)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: 音量曲線の計算方法、小さいほど精度が高くなりますが、計算量が増加します(精度が高いほど必ずしも効果が良いわけではありません)",
|
||||
"max:归一化后最大值多少": "max:正規化後の最大値",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:切り終えた後、最大でどれだけ静かにするか",
|
||||
"min_interval:最短切割间隔": "min_interval:最短カット間隔",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:各セグメントの最小長さ。最初のセグメントが短すぎる場合、連続して後続のセグメントに接続され、この値を超えるまで続きます。",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:各セグメントの最小長さ。最初のセグメントが短すぎる場合、連続して後続のセグメントに接続され、この値を超えるまで続きます。",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "閾値:この値未満の音量は静音と見なされ、代替のカットポイントとして扱われます",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3では現在このモードをサポートしておらず、使用するとエラーが発生します。",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3では現在このモードをサポートしておらず、使用するとエラーが発生します。",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3の出力がこもっていると感じた場合、超解像を試してください",
|
||||
"不切": "切らない",
|
||||
"不训练直接推v2ProPlus底模!": "学習せずに直接v2ProPlusベースモデルを使用!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "学習せずに直接v3ベースモデルを使用!",
|
||||
"中文": "中国語",
|
||||
"中英混合": "中英混合",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "プライマリーFERエンス音声(3〜10秒以内の参考音声をアップロードしてください。これを超えるとエラーが発生します!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "プライマリーFERエンス音声(3〜10秒以内の参考音声をアップロードしてください。これを超えるとエラーが発生します!)",
|
||||
"主参考音频的文本": "プライマリーFERエンス音声のテキスト",
|
||||
"主参考音频的语种": "プライマリーFERエンス音声の言語",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "複数のオーディオファイルもインポートできます。フォルダパスが存在する場合、この入力は無視されます。",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "そのようなファイルまたはフォルダは存在しません",
|
||||
"以下模型不存在:": "モデルが存在しません:",
|
||||
"伴奏人声分离&去混响&去回声": "ボーカル/伴奏の分離と残響の除去",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "超解像モデルのパラメータをダウンロードしていないため、超解像は行われません。超解像を行いたい場合は、まずチュートリアルを参照してファイルをダウンロードしてください",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "超解像モデルのパラメータをダウンロードしていないため、超解像は行われません。超解像を行いたい場合は、まずチュートリアルを参照してファイルをダウンロードしてください",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "参照テキストなしモードを使用する際は、微調整されたGPTを推奨めることをお勧びします。",
|
||||
"保存频率save_every_epoch": "保存頻度save_every_epoch",
|
||||
"保持随机": "ランダムを維持",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "前処理データセット取得ツール",
|
||||
"占用中": "使用中",
|
||||
"去混响/去延迟,附:": "残響除去/遅延除去、附:",
|
||||
"参考音频在3~10秒范围外,请更换!": "参照音声が3~10秒の範囲外です。別の音声に変更してください!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "参照音声が3~10秒の範囲外です。別の音声に変更してください!",
|
||||
"参考音频的文本": "参照オーディオのテキスト",
|
||||
"参考音频的语种": "参照オーディオの言語",
|
||||
"句间停顿秒数": "文間のポーズ秒数",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "オプション:複数の参照オーディオファイルをドラッグ&ドロップしてアップロードし、それらのトーンを平均化します(同性推奨)。このオプションを空白のままにした場合、トーンは左側の単一の参照オーディオによって制御されます。モデルを微調整する場合、すべての参照オーディオファイルが微調整のトレーニングセット内のトーンを持つことをお勧めします。プリトレーニングモデルは無視しても構いません。",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "オプション:複数の参照オーディオファイルをドラッグ&ドロップしてアップロードし、それらのトーンを平均化します(同性推奨)。このオプションを空白のままにした場合、トーンは左側の単一の参照オーディオによって制御されます。モデルを微調整する場合、すべての参照オーディオファイルが微調整のトレーニングセット内のトーンを持つことをお勧めします。プリトレーニングモデルは無視しても構いません。",
|
||||
"合成语音": "推論を開始",
|
||||
"合成音频": "音声を合成する",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "適切なフォルダパスの例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华テストサンプル(ファイルマネージャのアドレスバーからコピーしてください)。",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "今後、フォンメ转换、手動フォンメ編集、音声合成のステップバイステップ実行をサポートします。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "参照音声がはっきり、または何を書くかわからない場合は、このオプションを有効にして参照テキストを無視します。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "参照音声がはっきり、または何を書くかわからない場合は、このオプションを有効にして参照テキストを無視します。",
|
||||
"启用并行推理版本": "並列推論バージョンを有効化",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "切断後の音声ファイルが格納されているディレクトリを入力してください!読み取り対象の音声ファイルの完全パス = このディレクトリ - 結合 - listファイル内の波形に対応するファイル名(完全パスではありません)。空白の場合、.listファイル内の絶対完全パスを使用します。",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "切断後の音声ファイルが格納されているディレクトリを入力してください!読み取り対象の音声ファイルの完全パス = このディレクトリ - 結合 - listファイル内の波形に対応するファイル名(完全パスではありません)。空白の場合、.listファイル内の絶対完全パスを使用します。",
|
||||
"多语种混合": "多言語混合",
|
||||
"多语种混合(粤语)": "多言語混合(粤語)",
|
||||
"失败": "失敗",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "並列推論",
|
||||
"并行推理模式已关闭": "並列推論モードを無効化",
|
||||
"并行推理模式已开启": "並列推論モードを有効化",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "ベースモデルが不足しているため、対応する LoRA の重みをロードできません",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "ベースモデルが不足しているため、対応する LoRA の重みをロードできません",
|
||||
"开启": "有効化",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "参照テキストなしモードを有効にします。参照テキストを入力しない場合も同様に有効になります。",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "並列推論モードが有効な場合、SoVITS V3/4モデルはバケット処理をサポートしないため、自動的に無効になっています。",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "ファインチューニング",
|
||||
"怎么切": "どうやって切るか",
|
||||
"总训练轮数total_epoch": "総トレーニングエポック数total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "総トレーニングエポック数total_epoch、高すぎないようにお勧めします",
|
||||
"总训练轮数total_epoch, 不建议太高": "総トレーニングエポック数total_epoch、高すぎないようにお勧めします",
|
||||
"指定输出主人声文件夹": "ボーカルの出力フォルダを指定:",
|
||||
"指定输出非主人声文件夹": "伴奏の出力フォルダを指定:",
|
||||
"按中文句号。切": "中国語の句点でカット",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "テキスト分割と特徴抽出",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "テキストセグメントツール。非常に長いテキストは合成結果が良くない可能性があるため、長いテキストは事前にセグメントすることをお勧びします。合成は改行に基づいて分かれ、その後に結合されます。",
|
||||
"文本模块学习率权重": "テキストモジュールの学習率の重み",
|
||||
"施工中,请静候佳音": "施工中、お待ちください",
|
||||
"施工中, 请静候佳音": "施工中、お待ちください",
|
||||
"日文": "日本語",
|
||||
"日英混合": "日英混合",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "最新の重みファイルのみを保存し、ディスクスペースを節約しますか?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "モデル",
|
||||
"模型分为三类:": "モデルは3種類に分かれています:",
|
||||
"模型切换": "モデル切り替え",
|
||||
"模型加载中,请等待": "モデルを読み込み中です。しばらくお待ちください...",
|
||||
"模型加载中, 请等待": "モデルを読み込み中です。しばらくお待ちください...",
|
||||
"每张显卡的batch_size": "各グラフィックカードのバッチサイズ",
|
||||
"粤英混合": "粤英混合",
|
||||
"粤语": "粤語",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "音声認識",
|
||||
"语音识别工具": "音声認識ツール",
|
||||
"语音降噪": "音声ノイズ除去",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "3~10秒以内の参照音声をアップロードしてください。それを超えるとエラーが発生します!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "3~10秒以内の参照音声をアップロードしてください。それを超えるとエラーが発生します!",
|
||||
"请上传参考音频": "リファレンスオーディオをアップロードしてください",
|
||||
"请填入推理文本": "ターゲットテキストを入力してください",
|
||||
"请填入正确的List路径": "正しいリストパスを入力してください",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "進捗",
|
||||
"进程已终止": "プロセスが終了しました",
|
||||
"进程输出信息": "プロセスの出力情報",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "SoVITS_weightsとGPT_weightsに保存された学習済みモデルを選択してください。デフォルトのモデルはベースモデルで、5秒Zero Shot TTS推論を学習なしで体験できます。",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "SoVITS_weightsとGPT_weightsに保存された学習済みモデルを選択してください。デフォルトのモデルはベースモデルで、5秒Zero Shot TTS推論を学習なしで体験できます。",
|
||||
"采样步数(仅对V3/4生效)": "サンプリングステップ数(V3/V4のみ有効)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "サンプリングステップ数:ノイズが強い場合は増やし、遅い場合は減らしてみてください",
|
||||
"重复惩罚": "繰り返しペナルティ",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "音声の読み込みに失敗しました",
|
||||
"音频文件不存在,跳过:": "音声ファイルが見つかりません。スキップします:",
|
||||
"音频标注WebUI": "音声アノテーション用WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "音声自動分割の入力パス(ファイルまたはフォルダ指定可)",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "音声自動分割の入力パス(ファイルまたはフォルダ指定可)",
|
||||
"音频超分中": "音声スーパーレゾリューション処理中",
|
||||
"音频超采样": "音声アップサンプリング",
|
||||
"音频超采样(仅对V3生效))": "音声アップサンプリング(V3のみ有効)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net (onnx_dereverb): 듀얼 채널 리버브에는 가장 적합하지만, 싱글 채널 리버브는 제거할 수 없습니다",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:지연 효과를 제거합니다. Aggressive는 Normal보다 더 철저하게 제거하며, DeReverb는 추가로 리버브를 제거하여 단일 채널 리버브를 제거할 수 있지만 고주파 리버브는 완전히 제거하지 못합니다.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:지연 효과를 제거합니다. Aggressive는 Normal보다 더 철저하게 제거하며, DeReverb는 추가로 리버브를 제거하여 단일 채널 리버브를 제거할 수 있지만 고주파 리버브는 완전히 제거하지 못합니다.",
|
||||
"实验/模型名": "실험/모델 이름",
|
||||
"文本标注文件": "텍스트 주석 파일",
|
||||
"训练集音频文件目录": "훈련 세트 오디오 파일 디렉터리",
|
||||
"请上传并填写参考信息": "참고 정보를 업로드하고 입력하십시오",
|
||||
"请填写需要合成的目标文本和语种模式": "합성할 목표 텍스트와 언어 모드를 입력하세요",
|
||||
".限制范围越小判别效果越好。": "다언어 지원을 줄이는 것이 더 좋습니다",
|
||||
"限制范围越小判别效果越好": "다언어 지원을 줄이는 것이 더 좋습니다",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. DeEcho-DeReverb 모델의 처리 시간은 다른 두 DeEcho 모델의 거의 두 배입니다;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. 사람 목소리를 유지: 화음이 없는 오디오를 선택하면 HP5보다 사람 목소리를 더 잘 유지할 수 있습니다. 내장된 HP2와 HP3 모델이 있으며, HP3는 화음을 약간 놓칠 수 있지만 HP2보다 사람 목소리를 조금 더 잘 유지합니다;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3는 참조 텍스트 없이 작동할 수 없습니다. 반드시 참조 텍스트를 입력해주세요!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "알파 믹스: 정규화된 오디오가 들어오는 비율",
|
||||
"batch_size": "배치 크기",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop 크기: 볼륨 곡선을 계산하는 방법. 작을수록 정확도가 높아지지만 계산량이 높아집니다 (정확도가 높다고 효과가 좋아지지 않음)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop 크기: 볼륨 곡선을 계산하는 방법. 작을수록 정확도가 높아지지만 계산량이 높아집니다 (정확도가 높다고 효과가 좋아지지 않음)",
|
||||
"max:归一化后最大值多少": "최대 값 (정규화 후)",
|
||||
"max_sil_kept:切完后静音最多留多长": "최대 유지되는 정적 길이 (분리 후)",
|
||||
"min_interval:最短切割间隔": "최소 분리 간격",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:각 부분의 최소 길이, 첫 번째 부분이 너무 짧으면 다음 부분과 계속 연결하여 이 값을 초과할 때까지",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:각 부분의 최소 길이, 첫 번째 부분이 너무 짧으면 다음 부분과 계속 연결하여 이 값을 초과할 때까지",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "임계 값: 이 값보다 작은 볼륨은 대체 분리 지점으로 간주됩니다.",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3에서는 이 모드를 지원하지 않으며, 사용 시 오류가 발생합니다.",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3에서는 이 모드를 지원하지 않으며, 사용 시 오류가 발생합니다.",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3 출력이 답답하게 들리면 슈퍼 레졸루션을 켜보세요",
|
||||
"不切": "자르지 않음",
|
||||
"不训练直接推v2ProPlus底模!": "학습 없이 바로 v2ProPlus 베이스 모델 사용!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "학습 없이 바로 v3 베이스 모델 사용!",
|
||||
"中文": "중국어",
|
||||
"中英混合": "중영 혼합",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "주 참조 오디오 (3~10초 이내의 참조 오디오를 업로드하세요. 초과 시 오류 발생!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "주 참조 오디오 (3~10초 이내의 참조 오디오를 업로드하세요. 초과 시 오류 발생!)",
|
||||
"主参考音频的文本": "주 참조 오디오의 텍스트",
|
||||
"主参考音频的语种": "주 참조 오디오의 언어",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "오디오 파일을 일괄로 입력할 수도 있습니다. 둘 중 하나를 선택하고 폴더를 읽기를 우선합니다.",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "해당 파일이나 폴더가 없습니다",
|
||||
"以下模型不存在:": "해당 모델이 존재하지 않습니다:",
|
||||
"伴奏人声分离&去混响&去回声": "반주 및 보컬 분리 & 리버브 제거 & 에코 제거",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "슈퍼 레졸루션 모델의 파라미터를 다운로드하지 않았으므로 슈퍼 레졸루션을 수행하지 않습니다. 사용하려면 먼저 튜토리얼을 참고하여 파일을 다운로드하세요",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "슈퍼 레졸루션 모델의 파라미터를 다운로드하지 않았으므로 슈퍼 레졸루션을 수행하지 않습니다. 사용하려면 먼저 튜토리얼을 참고하여 파일을 다운로드하세요",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "참고 텍스트 없이 사용할 경우 미세 조정된 GPT 사용을 권장합니다",
|
||||
"保存频率save_every_epoch": "저장 빈도 (각 라운드마다)",
|
||||
"保持随机": "랜덤 유지",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "전처리 데이터셋 획득 도구",
|
||||
"占用中": "사용 중",
|
||||
"去混响/去延迟,附:": "리버브 제거/지연 제거, 부록:",
|
||||
"参考音频在3~10秒范围外,请更换!": "참고 오디오가 3~10초 범위를 벗어났습니다. 다른 것으로 바꾸십시오!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "참고 오디오가 3~10초 범위를 벗어났습니다. 다른 것으로 바꾸십시오!",
|
||||
"参考音频的文本": "참고 오디오의 텍스트",
|
||||
"参考音频的语种": "참고 오디오의 언어",
|
||||
"句间停顿秒数": "문장 간 정지 시간 (초)",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "선택 사항: 여러 참조 오디오 파일을 드래그하여 업로드하고 (동일한 성별을 권장), 그들의 톤을 평균화합니다. 이 옵션을 비워두면 톤은 왼쪽의 단일 참조 오디오로 제어됩니다. 모델을 미세 조정하는 경우 모든 참조 오디오 파일이 미세 조정 훈련 세트 내의 톤을 가지고 있는 것이 좋으며, 사전 훈련된 모델은 무시할 수 있습니다.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "선택 사항: 여러 참조 오디오 파일을 드래그하여 업로드하고 (동일한 성별을 권장), 그들의 톤을 평균화합니다. 이 옵션을 비워두면 톤은 왼쪽의 단일 참조 오디오로 제어됩니다. 모델을 미세 조정하는 경우 모든 참조 오디오 파일이 미세 조정 훈련 세트 내의 톤을 가지고 있는 것이 좋으며, 사전 훈련된 모델은 무시할 수 있습니다.",
|
||||
"合成语音": "합성 음성",
|
||||
"合成音频": "오디오 생성",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "적절한 폴더 경로 형식 예: E:\\codes\\py39\\vits_vc_gpu\\백로서리 테스트 샘플 (파일 관리자 주소 표시줄에서 복사하면 됩니다).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "향후 음소 변환, 수동 음소 편집, 단계별 음성 합성 지원이 추가될 예정입니다.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "참고 오디오의 내용을 정확히 알아들을 수 없을 경우 이 옵션을 활성화하세요. 활성화하면 입력한 참고 텍스트를 무시합니다.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "참고 오디오의 내용을 정확히 알아들을 수 없을 경우 이 옵션을 활성화하세요. 활성화하면 입력한 참고 텍스트를 무시합니다.",
|
||||
"启用并行推理版本": "병렬 추론 버전 활성화",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "분리된 오디오가 위치한 디렉터리를 입력하세요! 읽어들인 오디오 파일의 전체 경로 = 이 디렉터리 - list 파일에서 파형에 해당하는 파일명(전체 경로가 아님). 비워 두면 .list 파일의 절대 전체 경로를 사용합니다.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "분리된 오디오가 위치한 디렉터리를 입력하세요! 읽어들인 오디오 파일의 전체 경로 = 이 디렉터리 - list 파일에서 파형에 해당하는 파일명(전체 경로가 아님). 비워 두면 .list 파일의 절대 전체 경로를 사용합니다.",
|
||||
"多语种混合": "다국어 혼합",
|
||||
"多语种混合(粤语)": "다국어 혼합(粤語)",
|
||||
"失败": "실패",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "병렬 추론",
|
||||
"并行推理模式已关闭": "병렬 추론 모드 비활성화됨",
|
||||
"并行推理模式已开启": "병렬 추론 모드 활성화됨",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "기본 모델이 없어서 해당 LoRA 가중치를 로드할 수 없습니다",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "기본 모델이 없어서 해당 LoRA 가중치를 로드할 수 없습니다",
|
||||
"开启": "켜기",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "참고 텍스트 없이 모드를 활성화합니다. 참고 텍스트를 입력하지 않으면 자동으로 활성화됩니다.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "병렬 추론 모드가 활성화된 경우, SoVITS V3/4 모델은 버킷 처리를 지원하지 않으며, 자동으로 비활성화됩니다.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "미세 조정 훈련",
|
||||
"怎么切": "자르기 옵션",
|
||||
"总训练轮数total_epoch": "총 훈련 라운드 수 (total_epoch)",
|
||||
"总训练轮数total_epoch,不建议太高": "총 훈련 라운드 수 (total_epoch), 너무 높지 않게 권장됨",
|
||||
"总训练轮数total_epoch, 不建议太高": "총 훈련 라운드 수 (total_epoch), 너무 높지 않게 권장됨",
|
||||
"指定输出主人声文件夹": "지정된 주인 목소리 출력 폴더",
|
||||
"指定输出非主人声文件夹": "지정된 비주인 목소리 출력 폴더",
|
||||
"按中文句号。切": "중국어 문장으로 분리하십시오.",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "텍스트 토큰화 및 특성 추출",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "텍스트 분할 도구. 너무 긴 텍스트는 합성 결과가 좋지 않을 수 있으므로 분할을 권장합니다. 합성은 텍스트의 줄바꿈을 기준으로 분할된 후 결합됩니다.",
|
||||
"文本模块学习率权重": "텍스트 모듈 학습률 가중치",
|
||||
"施工中,请静候佳音": "공사 중입니다. 기다려주십시오.",
|
||||
"施工中, 请静候佳音": "공사 중입니다. 기다려주십시오.",
|
||||
"日文": "일본어",
|
||||
"日英混合": "일본어와 영어 혼합",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "디스크 공간을 절약하기 위해 최신 가중치 파일만 저장할지 여부",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "모델",
|
||||
"模型分为三类:": "모델은 3가지로 나뉩니다:",
|
||||
"模型切换": "모델 전환",
|
||||
"模型加载中,请等待": "모델을 불러오는 중입니다. 잠시 기다려주세요...",
|
||||
"模型加载中, 请等待": "모델을 불러오는 중입니다. 잠시 기다려주세요...",
|
||||
"每张显卡的batch_size": "각 그래픽 카드의 배치 크기",
|
||||
"粤英混合": "粤영 혼합",
|
||||
"粤语": "粤語",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "음성 인식",
|
||||
"语音识别工具": "음성 인식 도구",
|
||||
"语音降噪": "음성 잡음 제거",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "3~10초 이내의 참고 오디오를 업로드하십시오. 초과하면 오류가 발생합니다!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "3~10초 이내의 참고 오디오를 업로드하십시오. 초과하면 오류가 발생합니다!",
|
||||
"请上传参考音频": "참고 오디오를 업로드하세요",
|
||||
"请填入推理文本": "목표 텍스트를 입력하세요",
|
||||
"请填入正确的List路径": "올바른 리스트 경로를 입력하세요",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "진행 상태",
|
||||
"进程已终止": "프로세스 종료됨",
|
||||
"进程输出信息": "프로세스 출력 정보",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "SoVITS_weights와 GPT_weights에 저장된 학습 완료 모델을 선택하세요. 기본 제공되는 모델은 베이스 모델로, 5초 Zero Shot TTS 추론을 학습 없이 체험할 수 있습니다.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "SoVITS_weights와 GPT_weights에 저장된 학습 완료 모델을 선택하세요. 기본 제공되는 모델은 베이스 모델로, 5초 Zero Shot TTS 추론을 학습 없이 체험할 수 있습니다.",
|
||||
"采样步数(仅对V3/4生效)": "샘플링 단계 수 (V3/V4에만 적용됨)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "샘플링 스텝: 노이즈가 느껴지면 증가, 느리다면 감소 시도",
|
||||
"重复惩罚": "반복 패널티",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "오디오 로드 실패",
|
||||
"音频文件不存在,跳过:": "오디오 파일이 존재하지 않음, 건너뜀: ",
|
||||
"音频标注WebUI": "오디오 주석 WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "오디오 자동 분리 입력 경로, 파일 또는 폴더 가능",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "오디오 자동 분리 입력 경로, 파일 또는 폴더 가능",
|
||||
"音频超分中": "오디오 슈퍼 레졸루션 처리 중",
|
||||
"音频超采样": "오디오 업샘플링",
|
||||
"音频超采样(仅对V3生效))": "오디오 업샘플링 (V3에만 적용됨)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net (onnx_dereverb): É a melhor opção para reverberação de dois canais, mas não pode remover a reverberação de um único canal;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Remove os efeitos de atraso. Aggressive é mais completo que Normal na remoção, DeReverb remove adicionalmente a reverberação, pode remover a reverberação de um canal único, mas não remove completamente a reverberação de placa de alta frequência.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Remove os efeitos de atraso. Aggressive é mais completo que Normal na remoção, DeReverb remove adicionalmente a reverberação, pode remover a reverberação de um canal único, mas não remove completamente a reverberação de placa de alta frequência.",
|
||||
"实验/模型名": "Nome do experimento/modelo",
|
||||
"文本标注文件": "Arquivo de marcação de texto",
|
||||
"训练集音频文件目录": "Diretório de arquivos de áudio do conjunto de treinamento",
|
||||
"请上传并填写参考信息": "Por favor, faça o upload e preencha as informações de referência",
|
||||
"请填写需要合成的目标文本和语种模式": "*Por favor, insira o texto alvo a ser sintetizado e o modo de idioma.",
|
||||
".限制范围越小判别效果越好。": "Menos multilinguismo é melhor",
|
||||
"限制范围越小判别效果越好": "Menos multilinguismo é melhor",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SOVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. O tempo de processamento do modelo DeEcho-DeReverb é quase o dobro dos outros dois modelos DeEcho;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Manter a voz: selecione isso para áudio sem harmonia, que preserva melhor a voz principal do que o HP5. Inclui dois modelos, HP2 e HP3; o HP3 pode permitir um pequeno vazamento de acompanhamento, mas preserva a voz principal um pouco melhor do que o HP2;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "O modo sem texto de referência não é suportado pelo V3. Por favor, forneça um texto de referência!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix: Em que proporção o áudio normalizado é misturado de volta",
|
||||
"batch_size": "Tamanho do Lote",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "HOP_SIZE: Como calcular a curva de volume, quanto menor a precisão, maior a quantidade de cálculos (não significa que quanto maior a precisão, melhor o efeito)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "HOP_SIZE: Como calcular a curva de volume, quanto menor a precisão, maior a quantidade de cálculos (não significa que quanto maior a precisão, melhor o efeito)",
|
||||
"max:归一化后最大值多少": "MAX: Qual é o valor máximo após a normalização?",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept: Depois de cortar, por quanto tempo no máximo o silêncio é mantido",
|
||||
"min_interval:最短切割间隔": "min_interval: O intervalo de corte mínimo",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length: Comprimento mínimo de cada segmento. Se o primeiro segmento for muito curto, ele será unido aos segmentos seguintes até exceder este valor",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: Comprimento mínimo de cada segmento. Se o primeiro segmento for muito curto, ele será unido aos segmentos seguintes até exceder este valor",
|
||||
"temperature": "temperatura",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "Limiar: O volume menor que este valor é considerado como um ponto de corte mudo alternativo",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "O v3 não suporta este modo no momento. O uso resultará em erro.",
|
||||
"v3暂不支持该模式, 使用了会报错": "O v3 não suporta este modo no momento. O uso resultará em erro.",
|
||||
"v3输出如果觉得闷可以试试开超分": "Se a saída do v3 parecer abafada, tente ativar a super-resolução",
|
||||
"不切": "Não dividir",
|
||||
"不训练直接推v2ProPlus底模!": "Usar diretamente o modelo base v2ProPlus sem treinamento!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Usar diretamente o modelo base v3 sem treinamento!",
|
||||
"中文": "Chinês",
|
||||
"中英混合": "Mistura de Chinês e Inglês",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Áudio de Referência Principal (Por favor, carregue um áudio de referência entre 3-10 segundos, exceder esse limite causará um erro!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Áudio de Referência Principal (Por favor, carregue um áudio de referência entre 3-10 segundos, exceder esse limite causará um erro!)",
|
||||
"主参考音频的文本": "Texto do Áudio de Referência Principal",
|
||||
"主参考音频的语种": "Idioma do Áudio de Referência Principal",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "Também é possível inserir arquivos de áudio em lote; escolha uma opção, preferencialmente leia a pasta.",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "Nenhum Arquivo ou Pasta Encontrado",
|
||||
"以下模型不存在:": "Nenhum Modelo Tal:",
|
||||
"伴奏人声分离&去混响&去回声": "Separação de acompanhamento e voz & remoção de reverberação & remoção de eco",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Os parâmetros do modelo de super-resolução não foram baixados, então a super-resolução não será realizada. Para utilizá-la, siga o tutorial e baixe os arquivos necessários.",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Os parâmetros do modelo de super-resolução não foram baixados, então a super-resolução não será realizada. Para utilizá-la, siga o tutorial e baixe os arquivos necessários.",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Recomenda-se o uso de um modelo GPT ajustado ao utilizar o modo sem texto de referência.",
|
||||
"保存频率save_every_epoch": "Frequência de salvamento save_every_epoch",
|
||||
"保持随机": "Manter Aleatório",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Ferramenta de obtenção de conjunto de dados pré-processado",
|
||||
"占用中": " Ocupado",
|
||||
"去混响/去延迟,附:": "Remoção de reverberação/remoção de atraso, anexo:",
|
||||
"参考音频在3~10秒范围外,请更换!": "O áudio de referência está fora do intervalo de 3 a 10 segundos. Por favor, substitua!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "O áudio de referência está fora do intervalo de 3 a 10 segundos. Por favor, substitua!",
|
||||
"参考音频的文本": "Texto do áudio de referência",
|
||||
"参考音频的语种": "Idioma do áudio de referência",
|
||||
"句间停顿秒数": "Tempo de pausa entre frases (segundos)",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Opcional: Faça upload de vários arquivos de áudio de referência arrastando e soltando-os (recomendado que sejam do mesmo gênero) e faça uma média dos seus tons. Se essa opção for deixada em branco, o tom será controlado pelo único áudio de referência à esquerda. Se estiver ajustando o modelo, é recomendado que todos os arquivos de áudio de referência tenham tons dentro do conjunto de treinamento de ajuste; o modelo pré-treinado pode ser ignorado.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Opcional: Faça upload de vários arquivos de áudio de referência arrastando e soltando-os (recomendado que sejam do mesmo gênero) e faça uma média dos seus tons. Se essa opção for deixada em branco, o tom será controlado pelo único áudio de referência à esquerda. Se estiver ajustando o modelo, é recomendado que todos os arquivos de áudio de referência tenham tons dentro do conjunto de treinamento de ajuste; o modelo pré-treinado pode ser ignorado.",
|
||||
"合成语音": "Voz sintetizada",
|
||||
"合成音频": "Sintetizar áudio",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Exemplo de formato de caminho de pasta válido: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (copie do endereço da barra do gerenciador de arquivos).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "Suporte para Conversão de Fonemas, Edição Manual de Fonemas e Síntese de Fase por Fase será adicionado no futuro.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Se não conseguir entender claramente o áudio de referência, ative esta opção. Quando ativada, o texto de referência inserido será ignorado.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Se não conseguir entender claramente o áudio de referência, ative esta opção. Quando ativada, o texto de referência inserido será ignorado.",
|
||||
"启用并行推理版本": "Ativar Versão de Inferência Paralela",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Preencha o diretório onde os áudios cortados estão localizados! O caminho completo dos arquivos de áudio lidos = este diretório - concatenação com o nome do arquivo de forma correspondente no arquivo .list (não o caminho completo). Se deixar em branco, use o caminho absoluto no arquivo .list.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Preencha o diretório onde os áudios cortados estão localizados! O caminho completo dos arquivos de áudio lidos = este diretório - concatenação com o nome do arquivo de forma correspondente no arquivo .list (não o caminho completo). Se deixar em branco, use o caminho absoluto no arquivo .list.",
|
||||
"多语种混合": "Mistura de múltiplos idiomas",
|
||||
"多语种混合(粤语)": "Mistura Multilíngue (Yue)",
|
||||
"失败": " Falha",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Inferência Paralela",
|
||||
"并行推理模式已关闭": "Modo de Inferência Paralela Desativado",
|
||||
"并行推理模式已开启": "Modo de Inferência Paralela Ativado",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Falta o modelo base, não foi possível carregar os pesos LoRA correspondentes",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Falta o modelo base, não foi possível carregar os pesos LoRA correspondentes",
|
||||
"开启": "Ativar ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Ativar o modo sem texto de referência. Não preencher o texto de referência também equivale a ativar.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "Quando o modo de inferência paralela está ativado, os modelos SoVITS V3/4 não suportam processamento por lotes e esta funcionalidade foi automaticamente desativada.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Treinamento de ajuste fino",
|
||||
"怎么切": "Como cortar",
|
||||
"总训练轮数total_epoch": "Total de epoch de treinamento",
|
||||
"总训练轮数total_epoch,不建议太高": "Total de epoch de treinamento, não é recomendável um valor muito alto",
|
||||
"总训练轮数total_epoch, 不建议太高": "Total de epoch de treinamento, não é recomendável um valor muito alto",
|
||||
"指定输出主人声文件夹": "Especificar a pasta de saída da voz principal",
|
||||
"指定输出非主人声文件夹": "Especificar a pasta de saída da voz secundária",
|
||||
"按中文句号。切": "Dividir por ponto final chinês",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Tokenização de texto e extração de características",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Ferramenta de Segmentação de Texto. Textos muito longos podem não resultar em uma boa síntese, então é recomendado segmentar. A síntese será feita com base nas quebras de linha e depois concatenada.",
|
||||
"文本模块学习率权重": "Weight da taxa de aprendizado do módulo de texto",
|
||||
"施工中,请静候佳音": "Em construção, por favor, aguarde por um bom som",
|
||||
"施工中, 请静候佳音": "Em construção, por favor, aguarde por um bom som",
|
||||
"日文": "Japonês",
|
||||
"日英混合": "Mistura de Japonês e Inglês",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Deseja salvar apenas os arquivos de pesos mais recentes para economizar espaço em disco?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Modelo",
|
||||
"模型分为三类:": "Modelos dividem-se em três categorias:",
|
||||
"模型切换": "Troca de modelo",
|
||||
"模型加载中,请等待": "Carregando o modelo, por favor aguarde...",
|
||||
"模型加载中, 请等待": "Carregando o modelo, por favor aguarde...",
|
||||
"每张显卡的batch_size": "Tamanho do lote de cada placa de vídeo",
|
||||
"粤英混合": "Mistura Yue-Inglês",
|
||||
"粤语": "Yue",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Reconhecimento de voz",
|
||||
"语音识别工具": "Ferramenta de reconhecimento de voz",
|
||||
"语音降噪": "Redução de ruído de áudio",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Por favor, faça upload de um áudio de referência com duração entre 3 e 10 segundos. Áudios fora dessa faixa causarão erro!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Por favor, faça upload de um áudio de referência com duração entre 3 e 10 segundos. Áudios fora dessa faixa causarão erro!",
|
||||
"请上传参考音频": "Por Favor, Carregue o Áudio de Referência",
|
||||
"请填入推理文本": "Por Favor, Preencha o Texto de Inferência",
|
||||
"请填入正确的List路径": "Por Favor, Insira o Caminho Correto da Lista",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Progresso",
|
||||
"进程已终止": " Processo encerrado",
|
||||
"进程输出信息": " Informações de saída do processo",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Selecione os modelos treinados armazenados em SoVITS_weights e GPT_weights. Os padrões são modelos base para experimentar inferência Zero Shot TTS de 5 segundos sem treinamento.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Selecione os modelos treinados armazenados em SoVITS_weights e GPT_weights. Os padrões são modelos base para experimentar inferência Zero Shot TTS de 5 segundos sem treinamento.",
|
||||
"采样步数(仅对V3/4生效)": "Número de passos de amostragem (apenas válido para V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Passos de Amostragem: Se parecer ruidoso, tente aumentar; se parecer lento, tente diminuir",
|
||||
"重复惩罚": "Penalidade de Repetição",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Falha ao Carregar o Áudio",
|
||||
"音频文件不存在,跳过:": "Arquivo de áudio não encontrado, pulando: ",
|
||||
"音频标注WebUI": "WebUI de Anotação de Áudio",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Caminho de entrada para divisão automática de áudio (arquivo ou pasta)",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Caminho de entrada para divisão automática de áudio (arquivo ou pasta)",
|
||||
"音频超分中": "Executando Super-Resolução de Áudio",
|
||||
"音频超采样": "Superamostragem de áudio",
|
||||
"音频超采样(仅对V3生效))": "Superamostragem de áudio (apenas válida para V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):Это лучший выбор для реверберации с двумя каналами, но он не может устранить реверберацию с одним каналом;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Устраняет эффект задержки. Aggressive устраняет более тщательно, чем Normal, DeReverb дополнительно устраняет реверберацию, может устранить реверберацию с одного канала, но не полностью устраняет высокочастотную реверберацию.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Устраняет эффект задержки. Aggressive устраняет более тщательно, чем Normal, DeReverb дополнительно устраняет реверберацию, может устранить реверберацию с одного канала, но не полностью устраняет высокочастотную реверберацию.",
|
||||
"实验/模型名": "Название эксперимента/модели",
|
||||
"文本标注文件": "Файл текстовой аннотации",
|
||||
"训练集音频文件目录": "Директория аудиофайлов обучающего набора",
|
||||
"请上传并填写参考信息": "Пожалуйста, загрузите и заполните референтные данные",
|
||||
"请填写需要合成的目标文本和语种模式": "Пожалуйста, введите целевой текст для синтеза и режим языка",
|
||||
".限制范围越小判别效果越好。": "Чем меньше языков, тем лучше",
|
||||
"限制范围越小判别效果越好": "Чем меньше языков, тем лучше",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. Время обработки модели DeEcho-DeReverb почти вдвое больше, чем у двух других моделей DeEcho;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Сохранение голоса: выберите этот для аудио без гармоний, сохранение голоса будет лучше, чем HP5. Встроенные модели HP2 и HP3, HP3 может немного пропускать сопровождение, но сохраняет голос немного лучше, чем HP2;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 не поддерживает режим без опорного текста. Пожалуйста, укажите опорный текст!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:Какая доля нормализованного аудио смешивается",
|
||||
"batch_size": "размер пакета",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:Как рассчитывается кривая громкости, чем меньше, тем выше точность и больше вычислительная нагрузка (большая точность не всегда означает лучший результат)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size:Как рассчитывается кривая громкости, чем меньше, тем выше точность и больше вычислительная нагрузка (большая точность не всегда означает лучший результат)",
|
||||
"max:归一化后最大值多少": "max:Максимальное значение после нормализации",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:Максимальная длительность тишины после разреза",
|
||||
"min_interval:最短切割间隔": "min_interval:Минимальный интервал разреза",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:Минимальная длина каждого отрезка; если первый отрезок слишком короткий, он будет соединен с последующими до достижения этого значения",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:Минимальная длина каждого отрезка; если первый отрезок слишком короткий, он будет соединен с последующими до достижения этого значения",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:Значение громкости ниже этого считается тишиной для альтернативной точки разреза",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3 пока не поддерживает этот режим, при использовании возникнет ошибка.",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3 пока не поддерживает этот режим, при использовании возникнет ошибка.",
|
||||
"v3输出如果觉得闷可以试试开超分": "Если вывод v3 кажется глухим, попробуйте включить супер-разрешение",
|
||||
"不切": "Не разрезать",
|
||||
"不训练直接推v2ProPlus底模!": "Использовать базовую модель v2ProPlus без обучения!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Использовать базовую модель v3 без обучения!",
|
||||
"中文": "Китайский",
|
||||
"中英混合": "Китайский и английский",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Основной опорный аудиофайл (пожалуйста, загрузите опорный аудиофайл длительностью от 3 до 10 секунд, превышение этого лимита вызовет ошибку!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Основной опорный аудиофайл (пожалуйста, загрузите опорный аудиофайл длительностью от 3 до 10 секунд, превышение этого лимита вызовет ошибку!)",
|
||||
"主参考音频的文本": "Текст основного опорного аудиофайла",
|
||||
"主参考音频的语种": "Язык основного опорного аудиофайла",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "Можно также импортировать несколько аудиофайлов. Если путь к папке существует, то этот ввод игнорируется.",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "Такого файла или папки не существует",
|
||||
"以下模型不存在:": "Этот модель не существует",
|
||||
"伴奏人声分离&去混响&去回声": "Разделение вокала/аккомпанемента и удаление эхо",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Параметры модели супер-разрешения не загружены, поэтому супер-разрешение не будет выполняться. Чтобы использовать его, сначала загрузите необходимые файлы, следуя руководству.",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Параметры модели супер-разрешения не загружены, поэтому супер-разрешение не будет выполняться. Чтобы использовать его, сначала загрузите необходимые файлы, следуя руководству.",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "При использовании режима без эталонного текста рекомендуется использовать дообученный GPT.",
|
||||
"保存频率save_every_epoch": "Частота сохранения save_every_epoch",
|
||||
"保持随机": "Сохранить случайное значение",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Инструмент для получения предварительных данных",
|
||||
"占用中": " Занято",
|
||||
"去混响/去延迟,附:": "Удаление реверберации/удаление задержки, примечание:",
|
||||
"参考音频在3~10秒范围外,请更换!": "Референтное аудио вне диапазона 3~10 секунд, пожалуйста, замените!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "Референтное аудио вне диапазона 3~10 секунд, пожалуйста, замените!",
|
||||
"参考音频的文本": "Текст референтного аудио",
|
||||
"参考音频的语种": "Язык референтного аудио",
|
||||
"句间停顿秒数": "Время паузы между предложениями (в секундах)",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "Необязательно: загрузите несколько файлов с эталонными аудиозаписями, перетащив их (рекомендуется одного пола), и усредните их тон. Если этот параметр не заполнен, тон будет контролироваться одной эталонной аудиозаписью слева. При тонкой настройке модели рекомендуется, чтобы все эталонные аудиозаписи имели тон в пределах обучающего набора для тонкой настройки; предварительно обученную модель можно игнорировать.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "Необязательно: загрузите несколько файлов с эталонными аудиозаписями, перетащив их (рекомендуется одного пола), и усредните их тон. Если этот параметр не заполнен, тон будет контролироваться одной эталонной аудиозаписью слева. При тонкой настройке модели рекомендуется, чтобы все эталонные аудиозаписи имели тон в пределах обучающего набора для тонкой настройки; предварительно обученную модель можно игнорировать.",
|
||||
"合成语音": "Синтезированный голос",
|
||||
"合成音频": "Синтезировать аудио",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Пример допустимого формата пути к папке: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (просто скопируйте из адресной строки файлового менеджера).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "В будущем будет добавлена поддержка преобразования в фонемы, ручного редактирования фонемов и пошагового выполнения синтеза речи.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Если невозможно разобрать речь в эталонном аудио (и непонятно, что писать), можно включить эту опцию. При включении вводимый эталонный текст будет игнорироваться.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Если невозможно разобрать речь в эталонном аудио (и непонятно, что писать), можно включить эту опцию. При включении вводимый эталонный текст будет игнорироваться.",
|
||||
"启用并行推理版本": "Включить параллельную версию вывода",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Заполните каталог, где находятся аудиофайлы после разрезания! Полный путь к читаемым аудиофайлам = каталог - файл .list, имя файла соответствует волне (не полный путь). Если оставить пустым, будет использоваться абсолютный путь из файла .list.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Заполните каталог, где находятся аудиофайлы после разрезания! Полный путь к читаемым аудиофайлам = каталог - файл .list, имя файла соответствует волне (не полный путь). Если оставить пустым, будет использоваться абсолютный путь из файла .list.",
|
||||
"多语种混合": "Смешанные языки",
|
||||
"多语种混合(粤语)": "Многоязычная смесь (кантонский)",
|
||||
"失败": " Неудача",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Параллельный вывод",
|
||||
"并行推理模式已关闭": "Режим параллельного вывода отключен",
|
||||
"并行推理模式已开启": "Режим параллельного вывода включен",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Отсутствует базовая модель, не удалось загрузить соответствующие веса LoRA.",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Отсутствует базовая модель, не удалось загрузить соответствующие веса LoRA.",
|
||||
"开启": "Включить ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Включить режим без референтного текста. Не заполняя референтный текст, вы также включаете этот режим.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "При включенном режиме параллельного вывода модель SoVits V3/4 не поддерживает обработку по бакетам, эта функция была автоматически отключена.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "Обучение с тонкой настройкой",
|
||||
"怎么切": "Как разрезать",
|
||||
"总训练轮数total_epoch": "Общее количество эпох обучения total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "Общее количество эпох обучения total_epoch, не рекомендуется слишком высокое",
|
||||
"总训练轮数total_epoch, 不建议太高": "Общее количество эпох обучения total_epoch, не рекомендуется слишком высокое",
|
||||
"指定输出主人声文件夹": "Путь к папке для сохранения вокала:",
|
||||
"指定输出非主人声文件夹": "Путь к папке для сохранения аккомпанемента:",
|
||||
"按中文句号。切": "Разделение по китайским точкам.",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Токенизация текста и извлечение признаков",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Инструмент для сегментации текста. Очень длинный текст может не дать хороших результатов синтеза, поэтому рекомендуется сначала разбить его на сегменты. Синтез будет выполняться на основе разрывов строк, а затем объединяться.",
|
||||
"文本模块学习率权重": "Веса скорости обучения текстового модуля",
|
||||
"施工中,请静候佳音": "В разработке, ожидайте хороших новостей",
|
||||
"施工中, 请静候佳音": "В разработке, ожидайте хороших новостей",
|
||||
"日文": "Японский",
|
||||
"日英混合": "Японский и английский",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Сохранить только последние файлы весов для экономии дискового пространства?",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Модели",
|
||||
"模型分为三类:": "Модели делятся на три типа:",
|
||||
"模型切换": "Переключение модели",
|
||||
"模型加载中,请等待": "Модель загружается, пожалуйста, подождите...",
|
||||
"模型加载中, 请等待": "Модель загружается, пожалуйста, подождите...",
|
||||
"每张显卡的batch_size": "Размер пакета для каждой видеокарты",
|
||||
"粤英混合": "Кантоно-английская смесь",
|
||||
"粤语": "Кантонийский",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Распознавание речи",
|
||||
"语音识别工具": "Инструмент распознавания речи",
|
||||
"语音降噪": "Шумоподавление аудиофайлов",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Пожалуйста, загрузите референтное аудио длительностью от 3 до 10 секунд, иначе будет ошибка!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Пожалуйста, загрузите референтное аудио длительностью от 3 до 10 секунд, иначе будет ошибка!",
|
||||
"请上传参考音频": "Пожалуйста, загрузите эталонное аудио",
|
||||
"请填入推理文本": "Пожалуйста, введите целевой текст",
|
||||
"请填入正确的List路径": "Пожалуйста, укажите правильный путь к списку",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "Прогресс",
|
||||
"进程已终止": " Процесс завершён",
|
||||
"进程输出信息": " Выходные данные процесса",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "Выберите обученные модели в папках SoVITS_weights и GPT_weights. По умолчанию доступны базовые модели для Zero Shot TTS-синтеза за 5 секунд без обучения.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "Выберите обученные модели в папках SoVITS_weights и GPT_weights. По умолчанию доступны базовые модели для Zero Shot TTS-синтеза за 5 секунд без обучения.",
|
||||
"采样步数(仅对V3/4生效)": "Число шагов выборки (действительно только для V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Количество шагов выборки: если кажется, что шумно, попробуйте увеличить, если кажется, что медленно, попробуйте уменьшить",
|
||||
"重复惩罚": "Штраф за повторение",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Не удалось загрузить аудио",
|
||||
"音频文件不存在,跳过:": "Файл аудио не найден, пропускается: ",
|
||||
"音频标注WebUI": "Веб-интерфейс разметки аудио",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Путь ввода для автоматического разделения аудио, может быть файлом или папкой",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Путь ввода для автоматического разделения аудио, может быть файлом или папкой",
|
||||
"音频超分中": "Супер-разрешение аудио в процессе",
|
||||
"音频超采样": "Апсэмплирование аудио",
|
||||
"音频超采样(仅对V3生效))": "Апсэмплирование аудио (действительно только для V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):İki kanallı yankılar için en iyi seçimdir, ancak tek kanallı yankıları ortadan kaldıramaz;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Gecikme etkilerini giderir. Aggressive, Normal'dan daha kapsamlı bir şekilde giderir, DeReverb ek olarak yankıyı giderir, tek kanallı yankıyı giderebilir, ancak yüksek frekanslı plaka yankısını tamamen gideremez.",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:Gecikme etkilerini giderir. Aggressive, Normal'dan daha kapsamlı bir şekilde giderir, DeReverb ek olarak yankıyı giderir, tek kanallı yankıyı giderebilir, ancak yüksek frekanslı plaka yankısını tamamen gideremez.",
|
||||
"实验/模型名": "Deney/model adı",
|
||||
"文本标注文件": "Metin etiketleme dosyası",
|
||||
"训练集音频文件目录": "Eğitim seti ses dosyası dizini",
|
||||
"请上传并填写参考信息": "Lütfen referans bilgilerini yükleyin ve doldurun",
|
||||
"请填写需要合成的目标文本和语种模式": "Lütfen sentezlenecek hedef metni ve dil modunu giriniz.",
|
||||
".限制范围越小判别效果越好。": "Daha az çok dilli olmak daha iyidir",
|
||||
"限制范围越小判别效果越好": "Daha az çok dilli olmak daha iyidir",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1. DeEcho-DeReverb modelinin işleme süresi, diğer iki DeEcho modelinin neredeyse iki katıdır;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1. Ses koruma: Arka vokal içermeyen sesler için bu seçeneği kullanın, ana sesi HP5'ten daha iyi korur. HP2 ve HP3 adlı iki model içerir; HP3, arka vokali biraz kaçırabilir ancak ana sesi HP2'ye göre biraz daha iyi korur;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3, referans metin olmadan çalışmayı desteklememektedir! Lütfen bir referans metin giriniz!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:Normalizasyondan sonraki sesin ne kadarlık bir oranı karıştırılsın",
|
||||
"batch_size": "Toplu Boyut",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:Ses seviyesi eğrisi nasıl hesaplanır, ne kadar küçükse hassasiyet o kadar yüksek ve hesaplama yükü o kadar artar (hassasiyet arttıkça etki mutlaka daha iyi olmaz)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size:Ses seviyesi eğrisi nasıl hesaplanır, ne kadar küçükse hassasiyet o kadar yüksek ve hesaplama yükü o kadar artar (hassasiyet arttıkça etki mutlaka daha iyi olmaz)",
|
||||
"max:归一化后最大值多少": "max:Normalizasyondan sonra maksimum değer ne kadar",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:Kesimden sonra en fazla ne kadar sessizlik bırakılır",
|
||||
"min_interval:最短切割间隔": "min_interval:Minimum kesim aralığı",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length: bölümün minimum uzunluğu, ilk bölüm çok kısa ise, bu değeri aşana kadar sonraki bölümlerle birleştirilir",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: bölümün minimum uzunluğu, ilk bölüm çok kısa ise, bu değeri aşana kadar sonraki bölümlerle birleştirilir",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:Ses bu değerden düşükse sessiz olarak kabul edilen alternatif kesim noktası",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3 bu modu desteklemiyor, kullanıldığında hata verecektir.",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3 bu modu desteklemiyor, kullanıldığında hata verecektir.",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3 çıkışı eğer sıkıcıysa, süper çözünürlük açmayı deneyebilirsiniz",
|
||||
"不切": "Kesme",
|
||||
"不训练直接推v2ProPlus底模!": "Eğitim yapmadan doğrudan v2ProPlus temel modelini kullan!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "Eğitim yapmadan doğrudan v3 temel modelini kullan!",
|
||||
"中文": "Çince",
|
||||
"中英混合": "Çince ve İngilizce karışık",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "Ana Referans Sesi (Lütfen 3-10 saniye arasında referans sesi yükleyin, bu sınırı aşarsanız hata alırsınız!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "Ana Referans Sesi (Lütfen 3-10 saniye arasında referans sesi yükleyin, bu sınırı aşarsanız hata alırsınız!)",
|
||||
"主参考音频的文本": "Ana Referans Sesinin Metni",
|
||||
"主参考音频的语种": "Ana Referans Sesinin Dili",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "Ses dosyaları ayrıca toplu olarak, iki seçimle, öncelikli okuma klasörüyle içe aktarılabilir",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "Böyle Bir Dosya veya Klasör Yok",
|
||||
"以下模型不存在:": "Böyle bir model yok:",
|
||||
"伴奏人声分离&去混响&去回声": "Vokal/Müzik Ayrıştırma ve Yankı Giderme",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "Süper çözünürlük model parametrelerini indirmediniz, bu yüzden süper çözünürlük yapılmaz. Süper çözünürlük yapmak için önce kılavuzu takip ederek dosyaları indirin.",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "Süper çözünürlük model parametrelerini indirmediniz, bu yüzden süper çözünürlük yapılmaz. Süper çözünürlük yapmak için önce kılavuzu takip ederek dosyaları indirin.",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "Referans metinsiz modda, ince ayar yapılmış GPT kullanmanız tavsiye edilir.",
|
||||
"保存频率save_every_epoch": "Kayıt sıklığı save_every_epoch",
|
||||
"保持随机": "Rastgeleliği Koru",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "Ön Veri Kümesi Alma Aracı",
|
||||
"占用中": " Kullanımda",
|
||||
"去混响/去延迟,附:": "Yankı giderme/Geçikme giderme, ek:",
|
||||
"参考音频在3~10秒范围外,请更换!": "Referans ses dosyası 3~10 saniye aralığının dışında, lütfen değiştirin!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "Referans ses dosyası 3~10 saniye aralığının dışında, lütfen değiştirin!",
|
||||
"参考音频的文本": "Referans ses dosyasının metni",
|
||||
"参考音频的语种": "Referans ses dosyasının dili",
|
||||
"句间停顿秒数": "Cümleler Arası Duraklama Süresi",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "İsteğe bağlı: Birden fazla referans ses dosyasını sürükleyip bırakarak yükleyin (aynı cinsiyetten olmaları önerilir) ve tonlarını ortalayın. Bu seçenek boş bırakılırsa, ton soldaki tek referans ses dosyası tarafından kontrol edilir. Modeli ince ayar yapıyorsanız, tüm referans ses dosyalarının ince ayar eğitim seti içindeki tonlara sahip olması önerilir; önceden eğitilmiş model dikkate alınmayabilir.",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "İsteğe bağlı: Birden fazla referans ses dosyasını sürükleyip bırakarak yükleyin (aynı cinsiyetten olmaları önerilir) ve tonlarını ortalayın. Bu seçenek boş bırakılırsa, ton soldaki tek referans ses dosyası tarafından kontrol edilir. Modeli ince ayar yapıyorsanız, tüm referans ses dosyalarının ince ayar eğitim seti içindeki tonlara sahip olması önerilir; önceden eğitilmiş model dikkate alınmayabilir.",
|
||||
"合成语音": "Ses sentezi",
|
||||
"合成音频": "Ses Sentezleme",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "Geçerli klasör yolu formatı örneği: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例 (dosya yöneticisi adres çubuğundan kopyalayabilirsiniz).",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "Sonraki sürümlerde fonem dönüşümü, el ile fonem düzenleme ve adım adım konuşma sentezi desteği eklenecek.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "Referans ses kaydını anlamıyorsanız (ne yazacağınızı bilmiyorsanız) açabilirsiniz. Açıldığında yazılmış olan referans metni göz ardı edilir.",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "Referans ses kaydını anlamıyorsanız (ne yazacağınızı bilmiyorsanız) açabilirsiniz. Açıldığında yazılmış olan referans metni göz ardı edilir.",
|
||||
"启用并行推理版本": "Paralel Çıkarım Versiyonunu Etkinleştir",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "Kesmeye uygun ses dosyalarının bulunduğu dizini doldurun! Okunan ses dosyasının tam yolu = bu dizin + list dosyasındaki dalga biçimiyle eşleşen dosya adı (tam yol değil). Boş bırakılırsa, .list dosyasındaki tam yol kullanılır.",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "Kesmeye uygun ses dosyalarının bulunduğu dizini doldurun! Okunan ses dosyasının tam yolu = bu dizin + list dosyasındaki dalga biçimiyle eşleşen dosya adı (tam yol değil). Boş bırakılırsa, .list dosyasındaki tam yol kullanılır.",
|
||||
"多语种混合": "Çok dilli karışım",
|
||||
"多语种混合(粤语)": "Çok dilli karışık (Yue)",
|
||||
"失败": " Başarısız",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "Paralel Çıkarım",
|
||||
"并行推理模式已关闭": "Paralel Çıkarım Modu Kapalı",
|
||||
"并行推理模式已开启": "Paralel Çıkarım Modu Etkin",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "Temel model eksik, ilgili LoRA ağırlıkları yüklenemedi.",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "Temel model eksik, ilgili LoRA ağırlıkları yüklenemedi.",
|
||||
"开启": "Aç ",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "Referans metni olmayan mod açık. Referans metni doldurulmazsa bu mod otomatik olarak açılır.",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "Paralel çıkarım modu etkinleştirildiğinde, SoVITS V3/4 modelleri bölme işlemeyi desteklemez ve bu işlem otomatik olarak devre dışı bırakılır.",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "İnce Ayar Eğitimi",
|
||||
"怎么切": "Nasıl kesilir",
|
||||
"总训练轮数total_epoch": "Toplam eğitim turu sayısı total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "Toplam eğitim turu sayısı total_epoch, çok yüksek önerilmez",
|
||||
"总训练轮数total_epoch, 不建议太高": "Toplam eğitim turu sayısı total_epoch, çok yüksek önerilmez",
|
||||
"指定输出主人声文件夹": "Vokal için çıkış klasörünü belirtin:",
|
||||
"指定输出非主人声文件夹": "Müzik ve diğer sesler için çıkış klasörünü belirtin:",
|
||||
"按中文句号。切": "Çince dönem işaretine göre kes",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "Metin Kelimelemeleri ve Özellik Çıkartma",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "Metin Bölümleme Aracı. Çok uzun metinlerin sentez sonuçları iyi olmayabilir, bu nedenle uzun metinleri önce bölümlere ayırmanız önerilir. Sentez, metnin satır sonlarına göre ayrı ayrı yapılıp sonra birleştirilecektir.",
|
||||
"文本模块学习率权重": "Metin modülü öğrenme oranı ağırlığı",
|
||||
"施工中,请静候佳音": "Yapım aşamasında, lütfen iyi haberler için bekleyin",
|
||||
"施工中, 请静候佳音": "Yapım aşamasında, lütfen iyi haberler için bekleyin",
|
||||
"日文": "Japonca",
|
||||
"日英混合": "Japonca ve İngilizce karışımı",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "Sadece en son ağırlık dosyasını kaydedip sabit disk alanı tasarrufu sağlamak isterseniz",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "Model",
|
||||
"模型分为三类:": "Modeller üç türdedir:",
|
||||
"模型切换": "Model değiştirme",
|
||||
"模型加载中,请等待": "Model yükleniyor, lütfen bekleyin...",
|
||||
"模型加载中, 请等待": "Model yükleniyor, lütfen bekleyin...",
|
||||
"每张显卡的batch_size": "Her bir ekran kartı için batch_size",
|
||||
"粤英混合": "Yue-İngilizce Karışık",
|
||||
"粤语": "Yue",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "Ses Tanıma",
|
||||
"语音识别工具": "Ses Tanıma Aracı",
|
||||
"语音降噪": "Ses Gürültü Azaltma",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "Lütfen 3~10 saniye arasında bir referans ses dosyası yükleyin, aşım durumunda hata verilecektir!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "Lütfen 3~10 saniye arasında bir referans ses dosyası yükleyin, aşım durumunda hata verilecektir!",
|
||||
"请上传参考音频": "Lütfen Referans Sesi Yükleyin",
|
||||
"请填入推理文本": "Lütfen Hedef Metni Girin",
|
||||
"请填入正确的List路径": "Lütfen Doğru Liste Yolunu Girin",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "İlerleme",
|
||||
"进程已终止": " İşlem Sonlandırıldı",
|
||||
"进程输出信息": " İşlem Çıktı Bilgisi",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "SoVITS_weights ve GPT_weights altında kayıtlı eğitilmiş modelleri seçin. Varsayılanlar temel modellerdir, 5 saniyede Zero Shot TTS çıkarımını eğitimsiz deneyimleyin.",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "SoVITS_weights ve GPT_weights altında kayıtlı eğitilmiş modelleri seçin. Varsayılanlar temel modellerdir, 5 saniyede Zero Shot TTS çıkarımını eğitimsiz deneyimleyin.",
|
||||
"采样步数(仅对V3/4生效)": "Örnekleme Adım Sayısı (Sadece V3/4 için geçerli)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "Örnekleme Adımları: Eğer gürültülü görünüyorsa, adımları artırın; eğer yavaş görünüyorsa, adımları azaltın",
|
||||
"重复惩罚": "Tekrarlama Cezası",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "Ses Yüklenemedi",
|
||||
"音频文件不存在,跳过:": "Ses dosyası bulunamadı, atlanıyor: ",
|
||||
"音频标注WebUI": "Ses Etiketleme WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "Ses otomatik bölme giriş yolu, dosya veya klasör olabilir",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "Ses otomatik bölme giriş yolu, dosya veya klasör olabilir",
|
||||
"音频超分中": "Ses Süper Çözünürlük İşlemi Devam Ediyor",
|
||||
"音频超采样": "Ses Üst-örnekleme",
|
||||
"音频超采样(仅对V3生效))": "Ses Üst-örnekleme (Sadece V3 için geçerli)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延迟效果。Aggressive 比 Normal 去除得更彻底,DeReverb 额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延迟效果. Aggressive 比 Normal 去除得更彻底,DeReverb 额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。",
|
||||
"实验/模型名": "实验/模型名",
|
||||
"文本标注文件": "文本标注文件",
|
||||
"训练集音频文件目录": "训练集音频文件目录",
|
||||
"请上传并填写参考信息": "请上传并填写参考信息",
|
||||
"请填写需要合成的目标文本和语种模式": "请填写需要合成的目标文本和语种模式",
|
||||
".限制范围越小判别效果越好。": ".限制范围越小判别效果越好。",
|
||||
"限制范围越小判别效果越好": "限制范围越小判别效果越好",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3不支持无参考文本模式,请填写参考文本!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:混多少比例归一化后音频进来",
|
||||
"batch_size": "batch_size",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)",
|
||||
"max:归一化后最大值多少": "max:归一化后最大值多少",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:切完后静音最多留多长",
|
||||
"min_interval:最短切割间隔": "min_interval:最短切割间隔",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:音量小于这个值视作静音的备选切割点",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3暂不支持该模式,使用了会报错。",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3暂不支持该模式, 使用了会报错",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3输出如果觉得闷可以试试开超分",
|
||||
"不切": "不切",
|
||||
"不训练直接推v2ProPlus底模!": "不训练直接推v2ProPlus底模!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "不训练直接推v3底模!",
|
||||
"中文": "中文",
|
||||
"中英混合": "中英混合",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "主参考音频(请上传3~10秒内参考音频,超过会报错!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "主参考音频(请上传3~10秒内参考音频, 超过会报错!)",
|
||||
"主参考音频的文本": "主参考音频的文本",
|
||||
"主参考音频的语种": "主参考音频的语种",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "也可批量输入音频文件, 二选一, 优先读文件夹",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "以下文件或文件夹不存在",
|
||||
"以下模型不存在:": "以下模型不存在:",
|
||||
"伴奏人声分离&去混响&去回声": "伴奏人声分离&去混响&去回声",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "使用无参考文本模式时建议使用微调的GPT",
|
||||
"保存频率save_every_epoch": "保存频率save_every_epoch",
|
||||
"保持随机": "保持随机",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "前置数据集获取工具",
|
||||
"占用中": "占用中",
|
||||
"去混响/去延迟,附:": "去混响/去延迟,附:",
|
||||
"参考音频在3~10秒范围外,请更换!": "参考音频在3~10秒范围外,请更换!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "参考音频在3~10秒范围外, 请更换!",
|
||||
"参考音频的文本": "参考音频的文本",
|
||||
"参考音频的语种": "参考音频的语种",
|
||||
"句间停顿秒数": "句间停顿秒数",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.",
|
||||
"合成语音": "合成语音",
|
||||
"合成音频": "合成音频",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "后续将支持转音素、手工修改音素、语音合成分步执行。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.",
|
||||
"启用并行推理版本": "启用并行推理版本",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.",
|
||||
"多语种混合": "多语种混合",
|
||||
"多语种混合(粤语)": "多语种混合(粤语)",
|
||||
"失败": "失败",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "并行推理",
|
||||
"并行推理模式已关闭": "并行推理模式已关闭",
|
||||
"并行推理模式已开启": "并行推理模式已开启",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "底模缺失,无法加载相应 LoRA 权重",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "底模缺失, 无法加载相应 LoRA 权重",
|
||||
"开启": "开启",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "开启无参考文本模式。不填参考文本亦相当于开启。",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "微调训练",
|
||||
"怎么切": "怎么切",
|
||||
"总训练轮数total_epoch": "总训练轮数total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "总训练轮数total_epoch,不建议太高",
|
||||
"总训练轮数total_epoch, 不建议太高": "总训练轮数total_epoch, 不建议太高",
|
||||
"指定输出主人声文件夹": "指定输出主人声文件夹",
|
||||
"指定输出非主人声文件夹": "指定输出非主人声文件夹",
|
||||
"按中文句号。切": "按中文句号。切",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "文本分词与特征提取",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。",
|
||||
"文本模块学习率权重": "文本模块学习率权重",
|
||||
"施工中,请静候佳音": "施工中,请静候佳音",
|
||||
"施工中, 请静候佳音": "施工中, 请静候佳音",
|
||||
"日文": "日文",
|
||||
"日英混合": "日英混合",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "是否仅保存最新的权重文件以节省硬盘空间",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "模型",
|
||||
"模型分为三类:": "模型分为三类:",
|
||||
"模型切换": "模型切换",
|
||||
"模型加载中,请等待": "模型加载中,请等待",
|
||||
"模型加载中, 请等待": "模型加载中, 请等待",
|
||||
"每张显卡的batch_size": "每张显卡的batch_size",
|
||||
"粤英混合": "粤英混合",
|
||||
"粤语": "粤语",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "语音识别",
|
||||
"语音识别工具": "语音识别工具",
|
||||
"语音降噪": "语音降噪",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "请上传3~10秒内参考音频,超过会报错!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "请上传3~10秒内参考音频, 超过会报错!",
|
||||
"请上传参考音频": "请上传参考音频",
|
||||
"请填入推理文本": "请填入推理文本",
|
||||
"请填入正确的List路径": "请填入正确的List路径",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "进度",
|
||||
"进程已终止": "进程已终止",
|
||||
"进程输出信息": "进程输出信息",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.",
|
||||
"采样步数(仅对V3/4生效)": "采样步数(仅对V3/4生效)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "采样步数,如果觉得电,提高试试,如果觉得慢,降低试试",
|
||||
"重复惩罚": "重复惩罚",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "音频加载失败",
|
||||
"音频文件不存在,跳过:": "音频文件不存在,跳过:",
|
||||
"音频标注WebUI": "音频标注WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "音频自动切分输入路径,可文件可文件夹",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "音频自动切分输入路径, 可文件可文件夹",
|
||||
"音频超分中": "音频超分中",
|
||||
"音频超采样": "音频超采样",
|
||||
"音频超采样(仅对V3生效))": "音频超采样(仅对V3生效))",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):對於雙通道混響是最佳選擇,但不能去除單通道混響;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: 去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但對高頻重的板式混響去不乾淨。",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho: 去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但對高頻重的板式混響去不乾淨。",
|
||||
"实验/模型名": "實驗/模型名",
|
||||
"文本标注文件": "文本標注文件",
|
||||
"训练集音频文件目录": "訓練集音頻文件目錄",
|
||||
"请上传并填写参考信息": "請上傳並填寫參考信息",
|
||||
"请填写需要合成的目标文本和语种模式": "請填寫需要合成的目標文本和語言模式",
|
||||
".限制范围越小判别效果越好。": ".限制范围越小判别效果越好。",
|
||||
"限制范围越小判别效果越好": "限制范围越小判别效果越好",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1、DeEcho-DeReverb 模型的處理時間是另外兩個 DeEcho 模型的接近兩倍;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1、保留人聲:不帶和聲的音頻選這個,對主人聲保留比HP5更好。內置HP2和HP3兩個模型,HP3可能輕微漏伴奏但對主人聲保留比HP2稍微好一點點;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 不支援無參考文字模式,請填寫參考文字!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:混多少比例歸一化後音頻進來",
|
||||
"batch_size": "批次大小",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"max:归一化后最大值多少": "max:歸一化後最大值多少",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:切完後靜音最多留多長",
|
||||
"min_interval:最短切割间隔": "min_interval:最短切割間隔",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:音量小於這個值視作靜音的備選切割點",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3暫不支持該模式,使用了會報錯。",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3暫不支持該模式,使用了會報錯。",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3輸出如果覺得悶可以試試開超分",
|
||||
"不切": "不切",
|
||||
"不训练直接推v2ProPlus底模!": "唔訓練直接推v2ProPlus底模!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "唔訓練直接推v3底模!",
|
||||
"中文": "中文",
|
||||
"中英混合": "中英混合",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "主參考音頻(請上傳3~10秒內參考音頻,超過會報錯!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "主參考音頻(請上傳3~10秒內參考音頻,超過會報錯!)",
|
||||
"主参考音频的文本": "主參考音頻的文本",
|
||||
"主参考音频的语种": "主參考音頻的語種",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "也可批量输入音频文件, 二选一, 优先读文件夹",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"以下模型不存在:": "以下模型不存在:",
|
||||
"伴奏人声分离&去混响&去回声": "伴奏人聲分離&去混響&去回聲",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "使用無參考文本模式時建議使用微調的GPT",
|
||||
"保存频率save_every_epoch": "保存頻率save_every_epoch",
|
||||
"保持随机": "保持隨機",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "前置數據集獲取工具",
|
||||
"占用中": "佔用中",
|
||||
"去混响/去延迟,附:": "去混響/去延遲,附",
|
||||
"参考音频在3~10秒范围外,请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频的文本": "參考音頻的文本",
|
||||
"参考音频的语种": "參考音頻的語種",
|
||||
"句间停顿秒数": "句間停頓秒數",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"合成语音": "合成語音",
|
||||
"合成音频": "合成音訊",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "合格的文件夾路徑格式舉例: E:\\codes\\py39\\vits_vc_gpu\\白鷺霜華測試樣例(去文件管理器地址欄拷就行了)。",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "後續將支持轉音素、手工修改音素、語音合成分步執行。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "聽不清參考音頻說的啥(不曉得寫啥)可以開。開啟後無視填寫的參考文本。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "聽不清參考音頻說的啥(不曉得寫啥)可以開。開啟後無視填寫的參考文本。",
|
||||
"启用并行推理版本": "啟用並行推理版本",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "填切割後音頻所在目錄!讀取的音頻文件完整路徑=該目錄-拼接-list文件裡波形對應的文件名(不是全路徑)。如果留空則使用.list文件裡的絕對全路徑。",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "填切割後音頻所在目錄!讀取的音頻文件完整路徑=該目錄-拼接-list文件裡波形對應的文件名(不是全路徑)。如果留空則使用.list文件裡的絕對全路徑。",
|
||||
"多语种混合": "多語種混合",
|
||||
"多语种混合(粤语)": "多語種混合 (粵語)",
|
||||
"失败": "失敗",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "並行推理",
|
||||
"并行推理模式已关闭": "並行推理模式已關閉",
|
||||
"并行推理模式已开启": "並行推理模式已開啟",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "底模缺失,無法加載相應 LoRA 權重",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "底模缺失,無法加載相應 LoRA 權重",
|
||||
"开启": "開啟",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "開啟無參考文本模式。不填參考文本亦相當於開啟。",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "當啟用平行推論模式時,SoVITS V3/4 模型不支援分倉處理,已自動關閉分倉處理。",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "微調訓練",
|
||||
"怎么切": "怎麼切",
|
||||
"总训练轮数total_epoch": "總訓練輪數total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"总训练轮数total_epoch, 不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"指定输出主人声文件夹": "指定输出主人声文件夹",
|
||||
"指定输出非主人声文件夹": "指定输出非主人声文件夹",
|
||||
"按中文句号。切": "按中文句號。切",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "文本分詞與特徵提取",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "文本切分工具。太長的文本合成出來效果不一定好,所以太長建議先切。合成會根據文本的換行分開合成再拼起來。",
|
||||
"文本模块学习率权重": "文本模塊學習率權重",
|
||||
"施工中,请静候佳音": "施工中,請靜候佳音",
|
||||
"施工中, 请静候佳音": "施工中,請靜候佳音",
|
||||
"日文": "日文",
|
||||
"日英混合": "日英混合",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "是否僅保存最新的權重文件以節省硬碟空間",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "模型",
|
||||
"模型分为三类:": "模型分為三類:",
|
||||
"模型切换": "模型切換",
|
||||
"模型加载中,请等待": "模型載入中,請稍等",
|
||||
"模型加载中, 请等待": "模型載入中,請稍等",
|
||||
"每张显卡的batch_size": "每張顯卡的batch_size",
|
||||
"粤英混合": "粵英混合",
|
||||
"粤语": "粵語",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "語音識別",
|
||||
"语音识别工具": "語音識別工具",
|
||||
"语音降噪": "語音降噪",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传参考音频": "請上傳參考音頻",
|
||||
"请填入推理文本": "請填入推理文本",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "進度",
|
||||
"进程已终止": "進程已終止",
|
||||
"进程输出信息": "進程輸出信息",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "選擇訓練完存放在SoVITS_weights同GPT_weights下嘅模型。默認嘅幾個係底模,體驗5秒Zero Shot TTS唔訓練推理用。",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "選擇訓練完存放在SoVITS_weights同GPT_weights下嘅模型。默認嘅幾個係底模,體驗5秒Zero Shot TTS唔訓練推理用。",
|
||||
"采样步数(仅对V3/4生效)": "取樣步數(僅適用於 V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "採樣步數,如果覺得電,提高試試,如果覺得慢,降低試試",
|
||||
"重复惩罚": "重複懲罰",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"音频文件不存在,跳过:": "音頻檔案不存在,跳過:",
|
||||
"音频标注WebUI": "音頻標註 WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "音頻自動分割輸入路徑,可為檔案或資料夾",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "音頻自動分割輸入路徑,可為檔案或資料夾",
|
||||
"音频超分中": "音頻超高解像度處理中",
|
||||
"音频超采样": "音頻超取樣",
|
||||
"音频超采样(仅对V3生效))": "音頻超取樣(僅適用於 V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):對於雙通道混響是最好的選擇,不能去除單通道混響;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但是對高頻重的板式混響去不乾淨。",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但是對高頻重的板式混響去不乾淨。",
|
||||
"实验/模型名": "實驗/模型名",
|
||||
"文本标注文件": "文本標註文件",
|
||||
"训练集音频文件目录": "訓練集音頻文件目錄",
|
||||
"请上传并填写参考信息": "請上傳並填寫參考信息",
|
||||
"请填写需要合成的目标文本和语种模式": "請填寫需要合成的目標文本和語言模式",
|
||||
".限制范围越小判别效果越好。": ".限制范围越小判别效果越好。",
|
||||
"限制范围越小判别效果越好": "限制范围越小判别效果越好",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1、DeEcho-DeReverb 模型的耗時是另外兩個 DeEcho 模型的接近兩倍;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1、保留人聲:不帶和聲的音頻選這個,對主人聲保留比HP5更好。內置HP2和HP3兩個模型,HP3可能輕微漏伴奏但對主人聲保留比HP2稍微好一丁點;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 不支持无参考文本模式,请填写参考文本!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:混多少比例歸一化後音頻進來",
|
||||
"batch_size": "批次大小",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"max:归一化后最大值多少": "max:歸一化後最大值多少",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:切完後靜音最多留多長",
|
||||
"min_interval:最短切割间隔": "min_interval:最短切割間隔",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:音量小於這個值視作靜音的備選切割點",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3暫不支援該模式,使用了會報錯。",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3暫不支援該模式,使用了會報錯。",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3輸出如果覺得悶可以試試開超分",
|
||||
"不切": "不切",
|
||||
"不训练直接推v2ProPlus底模!": "不训练直接使用v2ProPlus基础模型!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "不训练直接使用v3基础模型!",
|
||||
"中文": "中文",
|
||||
"中英混合": "中英混合",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "主參考音檔(請上傳3~10秒內參考音檔,超過會報錯!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "主參考音檔(請上傳3~10秒內參考音檔,超過會報錯!)",
|
||||
"主参考音频的文本": "主參考音檔的文本",
|
||||
"主参考音频的语种": "主參考音檔的語種",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "也可批量输入音频文件, 二选一, 优先读文件夹",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"以下模型不存在:": "以下模型不存在",
|
||||
"伴奏人声分离&去混响&去回声": "伴奏人聲分離&去混響&去回聲",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "使用無參考文本模式時建議使用微調的GPT",
|
||||
"保存频率save_every_epoch": "保存頻率save_every_epoch",
|
||||
"保持随机": "保持隨機",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "前置數據集獲取工具",
|
||||
"占用中": "占用中",
|
||||
"去混响/去延迟,附:": "去混響/去延遲,附:",
|
||||
"参考音频在3~10秒范围外,请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频的文本": "參考音頻的文本",
|
||||
"参考音频的语种": "參考音頻的語種",
|
||||
"句间停顿秒数": "句間停頓秒數",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"合成语音": "合成語音",
|
||||
"合成音频": "合成音频",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "合格的資料夾路徑格式舉例: E:\\codes\\py39\\vits_vc_gpu\\白鷺霜華測試範例(去文件管理器地址欄拷就行了)。",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "後續將支援轉音素、手工修改音素、語音合成分步執行。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "聽不清參考音頻說的啥(不曉得寫啥)可以開。開啟後無視填寫的參考文本。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "聽不清參考音頻說的啥(不曉得寫啥)可以開。開啟後無視填寫的參考文本。",
|
||||
"启用并行推理版本": "啟用並行推理版本",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "填切割後音頻所在目錄!讀取的音頻檔案完整路徑=該目錄-拼接-list檔案裡波形對應的檔案名(不是全路徑)。如果留空則使用.list檔案裡的絕對全路徑。",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "填切割後音頻所在目錄!讀取的音頻檔案完整路徑=該目錄-拼接-list檔案裡波形對應的檔案名(不是全路徑)。如果留空則使用.list檔案裡的絕對全路徑。",
|
||||
"多语种混合": "多語種混合",
|
||||
"多语种混合(粤语)": "多語種混合 (粵語)",
|
||||
"失败": "失敗",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "並行推理",
|
||||
"并行推理模式已关闭": "並行推理模式已關閉",
|
||||
"并行推理模式已开启": "並行推理模式已開啟",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "底模缺失,无法加载相应 LoRA 权重",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "底模缺失, 无法加载相应 LoRA 权重",
|
||||
"开启": "開啟",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "開啟無參考文本模式。不填參考文本亦相當於開啟。",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "当启用并行推理模式时,SoVits V3/4 模型不支持分桶处理,已自动关闭分桶处理。",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "微調訓練",
|
||||
"怎么切": "怎麼切",
|
||||
"总训练轮数total_epoch": "總訓練輪數total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"总训练轮数total_epoch, 不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"指定输出主人声文件夹": "指定输出主人声文件夹",
|
||||
"指定输出非主人声文件夹": "指定输出非主人声文件夹",
|
||||
"按中文句号。切": "按中文句號。切",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "文本分詞與特徵提取",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "文本切分工具。太長的文本合成出來效果不一定好,所以太長建議先切。合成會根據文本的換行分開合成再拼起來。",
|
||||
"文本模块学习率权重": "文本模塊學習率權重",
|
||||
"施工中,请静候佳音": "施工中,請靜候佳音",
|
||||
"施工中, 请静候佳音": "施工中,請靜候佳音",
|
||||
"日文": "日文",
|
||||
"日英混合": "日英混合",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "是否僅保存最新的權重文件以節省硬碟空間",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "模型",
|
||||
"模型分为三类:": "模型分為三類:",
|
||||
"模型切换": "模型切換",
|
||||
"模型加载中,请等待": "模型加载中,请等待",
|
||||
"模型加载中, 请等待": "模型加载中, 请等待",
|
||||
"每张显卡的batch_size": "每張顯卡的batch_size",
|
||||
"粤英混合": "粵英混合",
|
||||
"粤语": "粵語",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "語音識別",
|
||||
"语音识别工具": "語音識別工具",
|
||||
"语音降噪": "語音降噪",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传参考音频": "請上傳參考音頻",
|
||||
"请填入推理文本": "請填入推理文本",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "進度",
|
||||
"进程已终止": "進程已終止",
|
||||
"进程输出信息": "進程輸出信息",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "选择训练完成后存储在SoVITS_weights和GPT_weights下的模型。默认的几个是基础模型,用于体验5秒Zero Shot TTS不训练推理。",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "选择训练完成后存储在SoVITS_weights和GPT_weights下的模型。默认的几个是基础模型,用于体验5秒Zero Shot TTS不训练推理。",
|
||||
"采样步数(仅对V3/4生效)": "采样步数(仅适用于 V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "採樣步數,如果覺得電,提高試試,如果覺得慢,降低試試",
|
||||
"重复惩罚": "重複懲罰",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"音频文件不存在,跳过:": "音频文件不存在,跳过:",
|
||||
"音频标注WebUI": "音频标注 WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "音频自动切分输入路径,可文件可文件夹",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "音频自动切分输入路径, 可文件可文件夹",
|
||||
"音频超分中": "音频超分辨率处理中",
|
||||
"音频超采样": "音频超采样",
|
||||
"音频超采样(仅对V3生效))": "音频超采样(仅适用于 V3)",
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;": "(1)MDX-Net(onnx_dereverb):對於雙通道混響是最好的選擇,不能去除單通道混響;",
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但是對高頻重的板式混響去不乾淨。",
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。": "(234)DeEcho:去除延遲效果。Aggressive 比 Normal 去除得更徹底,DeReverb 額外去除混響,可去除單聲道混響,但是對高頻重的板式混響去不乾淨。",
|
||||
"实验/模型名": "實驗/模型名",
|
||||
"文本标注文件": "文本標注文件",
|
||||
"训练集音频文件目录": "訓練集音頻文件目錄",
|
||||
"请上传并填写参考信息": "請上傳並填寫參考資訊",
|
||||
"请填写需要合成的目标文本和语种模式": "請填寫需要合成的目標文本和語言模式",
|
||||
".限制范围越小判别效果越好。": ".限制范围越小判别效果越好。",
|
||||
"限制范围越小判别效果越好": "限制范围越小判别效果越好",
|
||||
"1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
|
||||
"1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;": "1、DeEcho-DeReverb 模型的耗時是另外兩個 DeEcho 模型的接近兩倍;",
|
||||
"1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;": "1、保留人聲:不帶和聲的音頻選這個,對主人聲保留比HP5更好。內置HP2和HP3兩個模型,HP3可能輕微漏伴奏但對主人聲保留比HP2稍微好一丁點;",
|
||||
@ -35,16 +35,16 @@
|
||||
"V3不支持无参考文本模式,请填写参考文本!": "V3 不支援無參考文字模式,請填寫參考文字!",
|
||||
"alpha_mix:混多少比例归一化后音频进来": "alpha_mix:混多少比例歸一化後音頻進來",
|
||||
"batch_size": "批次大小",
|
||||
"hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)": "hop_size:怎麼算音量曲線,越小精度越大計算量越高(不是精度越大效果越好)",
|
||||
"max:归一化后最大值多少": "max:歸一化後最大值多少",
|
||||
"max_sil_kept:切完后静音最多留多长": "max_sil_kept:切完後靜音最多留多長",
|
||||
"min_interval:最短切割间隔": "min_interval:最短切割間隔",
|
||||
"min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值": "min_length:每段最小多長,如果第一段太短一直和後面段連起來直到超過這個值",
|
||||
"temperature": "temperature",
|
||||
"threshold:音量小于这个值视作静音的备选切割点": "threshold:音量小於這個值視作靜音的備選切割點",
|
||||
"top_k": "top_k",
|
||||
"top_p": "top_p",
|
||||
"v3暂不支持该模式,使用了会报错。": "v3暫不支援該模式,使用了會報錯。",
|
||||
"v3暂不支持该模式, 使用了会报错": "v3暫不支援該模式,使用了會報錯。",
|
||||
"v3输出如果觉得闷可以试试开超分": "v3輸出如果覺得悶可以試試開超分",
|
||||
"不切": "不切",
|
||||
"不训练直接推v2ProPlus底模!": "不訓練直接使用v2ProPlus底模!",
|
||||
@ -53,7 +53,7 @@
|
||||
"不训练直接推v3底模!": "不訓練直接使用v3底模!",
|
||||
"中文": "中文",
|
||||
"中英混合": "中英混合",
|
||||
"主参考音频(请上传3~10秒内参考音频,超过会报错!)": "主參考音檔(請上傳3~10秒內參考音檔,超過會報錯!)",
|
||||
"主参考音频(请上传3~10秒内参考音频, 超过会报错!)": "主參考音檔(請上傳3~10秒內參考音檔,超過會報錯!)",
|
||||
"主参考音频的文本": "主參考音檔的文字",
|
||||
"主参考音频的语种": "主參考音檔的語種",
|
||||
"也可批量输入音频文件, 二选一, 优先读文件夹": "也可批量输入音频文件, 二选一, 优先读文件夹",
|
||||
@ -63,7 +63,7 @@
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"以下模型不存在:": "#以下模型不存在",
|
||||
"伴奏人声分离&去混响&去回声": "伴奏人聲分離&去混響&去回聲",
|
||||
"你没有下载超分模型的参数,因此不进行超分。如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"你没有下载超分模型的参数, 因此不进行超分, 如想超分请先参照教程把文件下载好": "你沒有下載超分模型的參數,因此不進行超分。如想超分請先參照教程把文件下載好",
|
||||
"使用无参考文本模式时建议使用微调的GPT": "使用無參考文本模式時建議使用微調的GPT",
|
||||
"保存频率save_every_epoch": "保存頻率save_every_epoch",
|
||||
"保持随机": "保持隨機",
|
||||
@ -86,18 +86,18 @@
|
||||
"前置数据集获取工具": "前置數據集獲取工具",
|
||||
"占用中": "佔用中",
|
||||
"去混响/去延迟,附:": "去混響/去延遲,附:",
|
||||
"参考音频在3~10秒范围外,请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频在3~10秒范围外, 请更换!": "參考音頻在3~10秒範圍外,請更換!",
|
||||
"参考音频的文本": "參考音頻的文本",
|
||||
"参考音频的语种": "參考音頻的語種",
|
||||
"句间停顿秒数": "句間停頓秒數",
|
||||
"可选项:通过拖拽多个文件上传多个参考音频(建议同性),平均融合他们的音色。如不填写此项,音色由左侧单个参考音频控制。如是微调模型,建议参考音频全部在微调训练集音色内,底模不用管。": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"可选项: 通过拖拽多个文件上传多个参考音频 (建议同性), 平均融合他们的音色. 如不填写此项, 音色由左侧单个参考音频控制. 如是微调模型, 建议参考音频全部在微调训练集音色内, 底模不用管.": "可選項:通過拖曳多個文件上傳多個參考音頻(建議同性),平均融合他們的音色。如不填寫此項,音色由左側單個參考音頻控制。如是微調模型,建議參考音頻全部在微調訓練集音色內,底模不用管。",
|
||||
"合成语音": "合成語音",
|
||||
"合成音频": "合成音訊",
|
||||
"合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。": "合格的資料夾路徑格式舉例: E:\\codes\\py39\\vits_vc_gpu\\白鷺霜華測試範例(去文件管理器地址欄拷就行了)。",
|
||||
"后续将支持转音素、手工修改音素、语音合成分步执行。": "後續將支援轉音素、手工修改音素、語音合成分步執行。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本。": "聽不清參考音頻說的啥(不曉得寫啥)可以開,開啟後無視填寫的參考文本。",
|
||||
"听不清参考音频说的啥(不晓得写啥)可以开。开启后无视填写的参考文本.": "聽不清參考音頻說的啥(不曉得寫啥)可以開,開啟後無視填寫的參考文本。",
|
||||
"启用并行推理版本": "啟用並行推理版本",
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。": "填切割後音頻所在目錄!讀取的音頻檔案完整路徑=該目錄-拼接-list檔案裡波形對應的檔案名(不是全路徑)。如果留空則使用.list檔案裡的絕對全路徑。",
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径.": "填切割後音頻所在目錄!讀取的音頻檔案完整路徑=該目錄-拼接-list檔案裡波形對應的檔案名(不是全路徑)。如果留空則使用.list檔案裡的絕對全路徑。",
|
||||
"多语种混合": "多語種混合",
|
||||
"多语种混合(粤语)": "多語種混合 (粵語)",
|
||||
"失败": "失敗",
|
||||
@ -114,7 +114,7 @@
|
||||
"并行推理": "並行推理",
|
||||
"并行推理模式已关闭": "並行推理模式已關閉",
|
||||
"并行推理模式已开启": "並行推理模式已開啟",
|
||||
"底模缺失,无法加载相应 LoRA 权重": "底模缺失,無法載入相應 LoRA 權重",
|
||||
"底模缺失, 无法加载相应 LoRA 权重": "底模缺失,無法載入相應 LoRA 權重",
|
||||
"开启": "開啟",
|
||||
"开启无参考文本模式。不填参考文本亦相当于开启。": "開啟無參考文本模式。不填參考文本亦相當於開啟。",
|
||||
"当开启并行推理模式时,SoVits V3/4模型不支持分桶处理,已自动关闭分桶处理": "啟用平行推論模式時,SoVITS V3/4 模型不支援分倉處理,已自動關閉該功能。",
|
||||
@ -122,7 +122,7 @@
|
||||
"微调训练": "微調訓練",
|
||||
"怎么切": "怎麼切",
|
||||
"总训练轮数total_epoch": "總訓練輪數total_epoch",
|
||||
"总训练轮数total_epoch,不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"总训练轮数total_epoch, 不建议太高": "總訓練輪數total_epoch,不建議太高",
|
||||
"指定输出主人声文件夹": "指定输出主人声文件夹",
|
||||
"指定输出非主人声文件夹": "指定输出非主人声文件夹",
|
||||
"按中文句号。切": "按中文句號。切",
|
||||
@ -136,7 +136,7 @@
|
||||
"文本分词与特征提取": "文本分詞與特徵提取",
|
||||
"文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "文字切分工具。太長的文字合成出來效果不一定好,所以太長建議先切。合成會根據文字的換行分開合成再拼起來。",
|
||||
"文本模块学习率权重": "文本模塊學習率權重",
|
||||
"施工中,请静候佳音": "施工中,請靜候佳音",
|
||||
"施工中, 请静候佳音": "施工中,請靜候佳音",
|
||||
"日文": "日文",
|
||||
"日英混合": "日英混合",
|
||||
"是否仅保存最新的权重文件以节省硬盘空间": "是否僅保存最新的權重文件以節省硬盤空間",
|
||||
@ -150,7 +150,7 @@
|
||||
"模型": "模型",
|
||||
"模型分为三类:": "模型分為三類:",
|
||||
"模型切换": "模型切換",
|
||||
"模型加载中,请等待": "模型載入中,請稍候",
|
||||
"模型加载中, 请等待": "模型載入中,請稍候",
|
||||
"每张显卡的batch_size": "每張顯卡的batch_size",
|
||||
"粤英混合": "粵英混合",
|
||||
"粤语": "粵語",
|
||||
@ -174,7 +174,7 @@
|
||||
"语音识别": "語音識別",
|
||||
"语音识别工具": "語音識別工具",
|
||||
"语音降噪": "語音降噪",
|
||||
"请上传3~10秒内参考音频,超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传3~10秒内参考音频, 超过会报错!": "請上傳3~10秒內參考音頻,超過會報錯!",
|
||||
"请上传参考音频": "請上傳參考音頻",
|
||||
"请填入推理文本": "請填入推理文本",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
@ -197,7 +197,7 @@
|
||||
"进度": "進度",
|
||||
"进程已终止": "進程已終止",
|
||||
"进程输出信息": "進程輸出資訊",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。": "選擇訓練完成存放在SoVITS_weights和GPT_weights下的模型。預設的幾個是底模,體驗5秒Zero Shot TTS不訓練推理使用。",
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用.": "選擇訓練完成存放在SoVITS_weights和GPT_weights下的模型。預設的幾個是底模,體驗5秒Zero Shot TTS不訓練推理使用。",
|
||||
"采样步数(仅对V3/4生效)": "取樣步數(僅適用於 V3/4)",
|
||||
"采样步数,如果觉得电,提高试试,如果觉得慢,降低试试": "採樣步數,如果覺得電,提高試試,如果覺得慢,降低試試",
|
||||
"重复惩罚": "重複懲罰",
|
||||
@ -212,7 +212,7 @@
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"音频文件不存在,跳过:": "音訊檔案不存在,跳過:",
|
||||
"音频标注WebUI": "音訊標註 WebUI",
|
||||
"音频自动切分输入路径,可文件可文件夹": "音訊自動切割輸入路徑,可為檔案或資料夾",
|
||||
"音频自动切分输入路径, 可文件可文件夹": "音訊自動切割輸入路徑,可為檔案或資料夾",
|
||||
"音频超分中": "音訊超高解析度處理中",
|
||||
"音频超采样": "音訊超取樣",
|
||||
"音频超采样(仅对V3生效))": "音訊超取樣(僅適用於 V3)",
|
||||
|
||||
@ -151,7 +151,7 @@ with gr.Blocks(title="UVR5 WebUI", analytics_enabled=False) as app:
|
||||
+ i18n("(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;")
|
||||
+ "<br> "
|
||||
+ i18n(
|
||||
"(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。"
|
||||
"(234)DeEcho:去除延迟效果. Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净."
|
||||
)
|
||||
+ "<br>"
|
||||
+ i18n("去混响/去延迟,附:")
|
||||
|
||||
65
webui.py
65
webui.py
@ -319,7 +319,7 @@ def change_tts_inference(
|
||||
sovits_path: str,
|
||||
batched_infer_enabled: bool,
|
||||
backends_dropdown: str,
|
||||
quantization_methods_dropdown: str | None,
|
||||
quantization_methods_dropdown: str,
|
||||
):
|
||||
global p_tts_inference
|
||||
env = os.environ.copy()
|
||||
@ -329,6 +329,8 @@ def change_tts_inference(
|
||||
cmd.extend(
|
||||
[
|
||||
"GPT_SoVITS.inference_webui_fast", language,
|
||||
"-b", backends_dropdown,
|
||||
"-q", quantization_methods_dropdown,
|
||||
"-d", f"{infer_device.type}:{gpu_number}",
|
||||
"-p", str(webui_port_infer_tts),
|
||||
"--gpt", gpt_path,
|
||||
@ -341,9 +343,9 @@ def change_tts_inference(
|
||||
[
|
||||
"GPT_SoVITS.inference_webui", language,
|
||||
"-b", backends_dropdown,
|
||||
"-q", quantization_methods_dropdown,
|
||||
"-d", f"{infer_device.type}:{gpu_number}",
|
||||
"-p", str(webui_port_infer_tts),
|
||||
"-q", str(quantization_methods_dropdown),
|
||||
"--gpt", gpt_path,
|
||||
"--sovits", sovits_path,
|
||||
]
|
||||
@ -352,10 +354,17 @@ def change_tts_inference(
|
||||
if is_share:
|
||||
cmd.append("-s")
|
||||
|
||||
yield (
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
gr.skip(),
|
||||
)
|
||||
|
||||
if p_tts_inference is None:
|
||||
yield (
|
||||
gr.update(visible=False),
|
||||
gr.update(visible=True),
|
||||
gr.skip(),
|
||||
)
|
||||
console.print(" ".join(cmd))
|
||||
p_tts_inference = Popen(cmd, env=env)
|
||||
@ -365,6 +374,7 @@ def change_tts_inference(
|
||||
yield (
|
||||
gr.update(visible=True),
|
||||
gr.update(visible=False),
|
||||
gr.skip(),
|
||||
)
|
||||
|
||||
|
||||
@ -1281,13 +1291,6 @@ def sync(text):
|
||||
return gr.update(value=text)
|
||||
|
||||
|
||||
def changeBackend(flag: bool):
|
||||
if flag:
|
||||
return gr.update(choices=["Torch Varlen"], value="Torch Varlen")
|
||||
else:
|
||||
return gr.update(choices=backends_gradio, value=backends_gradio[-1][-1])
|
||||
|
||||
|
||||
def changeQuantization(backend: str, gradio_call=True):
|
||||
backend = backend.lower().replace("-", "_")
|
||||
if backend in MLX.backends:
|
||||
@ -1295,10 +1298,12 @@ def changeQuantization(backend: str, gradio_call=True):
|
||||
elif backend in PyTorch.backends:
|
||||
choices = quantization_methods_torch
|
||||
else:
|
||||
choices = [None]
|
||||
choices = ["None"]
|
||||
|
||||
choices = [str(c) for c in choices]
|
||||
|
||||
if gradio_call:
|
||||
return gr.update(choices=choices, value=None)
|
||||
return gr.update(choices=choices, value="None")
|
||||
else:
|
||||
return choices
|
||||
|
||||
@ -1334,7 +1339,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
with gr.Column(scale=3):
|
||||
with gr.Row(equal_height=True):
|
||||
slice_inp_path = gr.Textbox(
|
||||
label=i18n("音频自动切分输入路径,可文件可文件夹"),
|
||||
label=i18n("音频自动切分输入路径, 可文件可文件夹"),
|
||||
placeholder="D:/InputAudioFolder"
|
||||
if platform.system() == "Windows"
|
||||
else "~/InputAudioFolder",
|
||||
@ -1347,12 +1352,12 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
label=i18n("threshold:音量小于这个值视作静音的备选切割点"), value="-34"
|
||||
)
|
||||
min_length = gr.Textbox(
|
||||
label=i18n("min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值"),
|
||||
label=i18n("min_length: 每段最小多长, 如果第一段太短一直和后面段连起来直到超过这个值"),
|
||||
value="4000",
|
||||
)
|
||||
min_interval = gr.Textbox(label=i18n("min_interval:最短切割间隔"), value="300")
|
||||
hop_size = gr.Textbox(
|
||||
label=i18n("hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)"),
|
||||
label=i18n("hop_size: 怎么算音量曲线, 越小精度越大计算量越高 (不是精度越大效果越好)"),
|
||||
value="10",
|
||||
)
|
||||
max_sil_kept = gr.Textbox(label=i18n("max_sil_kept:切完后静音最多留多长"), value="500")
|
||||
@ -1549,7 +1554,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
# value=r"D:\RVC1006\GPT-SoVITS\raw\xxx",
|
||||
interactive=True,
|
||||
placeholder=i18n(
|
||||
"填切割后音频所在目录!读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名(不是全路径)。如果留空则使用.list文件里的绝对全路径。"
|
||||
"填切割后音频所在目录! 读取的音频文件完整路径=该目录-拼接-list文件里波形对应的文件名 (不是全路径). 如果留空则使用.list文件里的绝对全路径."
|
||||
),
|
||||
scale=10,
|
||||
)
|
||||
@ -1727,7 +1732,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
minimum=1,
|
||||
maximum=max_sovits_epoch,
|
||||
step=1,
|
||||
label=i18n("总训练轮数total_epoch,不建议太高"),
|
||||
label=i18n("总训练轮数total_epoch, 不建议太高"),
|
||||
value=default_sovits_epoch,
|
||||
interactive=True,
|
||||
)
|
||||
@ -1868,7 +1873,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
with gr.TabItem("1C-" + i18n("推理")):
|
||||
gr.Markdown(
|
||||
value=i18n(
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的几个是底模,体验5秒Zero Shot TTS不训练推理用。"
|
||||
"选择训练完存放在SoVITS_weights和GPT_weights下的模型. 默认的几个是底模, 体验5秒Zero Shot TTS不训练推理用."
|
||||
)
|
||||
)
|
||||
with gr.Row(equal_height=True):
|
||||
@ -1917,8 +1922,8 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
with gr.Column():
|
||||
quantization_methods_dropdown = gr.Dropdown(
|
||||
choices=cast(list, changeQuantization(backends_gradio[-1][-1], gradio_call=False)),
|
||||
value="None",
|
||||
label=i18n("量化方法"),
|
||||
value=None,
|
||||
interactive=True,
|
||||
)
|
||||
open_tts = gr.Button(
|
||||
@ -1928,11 +1933,6 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
value=process_info(process_name_tts, "close"), variant="primary", visible=False
|
||||
)
|
||||
|
||||
batched_infer_enabled.change(
|
||||
changeBackend,
|
||||
[batched_infer_enabled],
|
||||
[backends_dropdown],
|
||||
)
|
||||
backends_dropdown.change(
|
||||
changeQuantization,
|
||||
[backends_dropdown],
|
||||
@ -1949,7 +1949,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
backends_dropdown,
|
||||
quantization_methods_dropdown,
|
||||
],
|
||||
[open_tts, close_tts],
|
||||
[open_tts, close_tts, batched_infer_enabled],
|
||||
)
|
||||
close_tts.click(
|
||||
change_tts_inference,
|
||||
@ -1961,7 +1961,7 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
backends_dropdown,
|
||||
quantization_methods_dropdown,
|
||||
],
|
||||
[open_tts, close_tts],
|
||||
[open_tts, close_tts, batched_infer_enabled],
|
||||
)
|
||||
button1Ba_open.click(
|
||||
open1Ba,
|
||||
@ -2017,12 +2017,11 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
|
||||
)
|
||||
|
||||
with gr.TabItem(i18n("2-GPT-SoVITS-变声")):
|
||||
gr.Markdown(value=i18n("施工中,请静候佳音"))
|
||||
gr.Markdown(value=i18n("施工中, 请静候佳音"))
|
||||
|
||||
app.queue().launch( # concurrency_count=511, max_size=1022
|
||||
server_name="0.0.0.0",
|
||||
inbrowser=True,
|
||||
share=is_share,
|
||||
server_port=webui_port_main,
|
||||
# quiet=True,
|
||||
)
|
||||
app.queue().launch(
|
||||
server_name="0.0.0.0",
|
||||
inbrowser=True,
|
||||
share=is_share,
|
||||
server_port=webui_port_main,
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user