diff --git a/GPT_SoVITS/inference_webui.py b/GPT_SoVITS/inference_webui.py
index 79e4a82..7626bc4 100644
--- a/GPT_SoVITS/inference_webui.py
+++ b/GPT_SoVITS/inference_webui.py
@@ -1,4 +1,9 @@
-import os,re
+import os,re,logging
+logging.getLogger("markdown_it").setLevel(logging.ERROR)
+logging.getLogger("urllib3").setLevel(logging.ERROR)
+logging.getLogger("httpcore").setLevel(logging.ERROR)
+logging.getLogger("httpx").setLevel(logging.ERROR)
+logging.getLogger("asyncio").setLevel(logging.ERROR)
import pdb
gpt_path = os.environ.get(
diff --git a/README.md b/README.md
index 4bf6581..83538a9 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,8 @@ A Powerful Few-shot Voice Conversion and Text-to-Speech WebUI.
https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb
+For users in China region, you can use AutoDL Cloud Docker to experience the full functionality online: https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official
+
## Features:
1. **Zero-shot TTS:** Input a 5-second vocal sample and experience instant text-to-speech conversion.
diff --git a/api.py b/api.py
index 0070a16..87ad212 100644
--- a/api.py
+++ b/api.py
@@ -7,7 +7,7 @@ import torch
import librosa
import soundfile as sf
from fastapi import FastAPI, Request, HTTPException
-from fastapi.responses import StreamingResponse
+from fastapi.responses import StreamingResponse, JSONResponse
import uvicorn
from transformers import AutoModelForMaskedLM, AutoTokenizer
import numpy as np
@@ -51,10 +51,18 @@ args = parser.parse_args()
sovits_path = args.sovits_path
gpt_path = args.gpt_path
-default_refer_path = args.default_refer_path
-default_refer_text = args.default_refer_text
-default_refer_language = args.default_refer_language
-has_preset = False
+
+class DefaultRefer:
+ def __init__(self, path, text, language):
+ self.path = args.default_refer_path
+ self.text = args.default_refer_text
+ self.language = args.default_refer_language
+
+ def is_ready(self) -> bool:
+ return is_full(self.path, self.text, self.language)
+
+
+default_refer = DefaultRefer(args.default_refer_path, args.default_refer_text, args.default_refer_language)
device = args.device
port = args.port
@@ -68,15 +76,13 @@ if gpt_path == "":
print(f"[WARN] 未指定GPT模型路径, fallback后当前值: {gpt_path}")
# 指定默认参考音频, 调用方 未提供/未给全 参考音频参数时使用
-if default_refer_path == "" or default_refer_text == "" or default_refer_language == "":
- default_refer_path, default_refer_text, default_refer_language = "", "", ""
+if default_refer.path == "" or default_refer.text == "" or default_refer.language == "":
+ default_refer.path, default_refer.text, default_refer.language = "", "", ""
print("[INFO] 未指定默认参考音频")
- has_preset = False
else:
- print(f"[INFO] 默认参考音频路径: {default_refer_path}")
- print(f"[INFO] 默认参考音频文本: {default_refer_text}")
- print(f"[INFO] 默认参考音频语种: {default_refer_language}")
- has_preset = True
+ print(f"[INFO] 默认参考音频路径: {default_refer.path}")
+ print(f"[INFO] 默认参考音频文本: {default_refer.text}")
+ print(f"[INFO] 默认参考音频语种: {default_refer.language}")
is_half = g_config.is_half
if args.full_precision:
@@ -100,6 +106,20 @@ else:
bert_model = bert_model.to(device)
+def is_empty(*items): # 任意一项不为空返回False
+ for item in items:
+ if item is not None and item != "":
+ return False
+ return True
+
+
+def is_full(*items): # 任意一项为空返回False
+ for item in items:
+ if item is None or item == "":
+ return False
+ return True
+
+
def get_bert_feature(text, word2ph):
with torch.no_grad():
inputs = tokenizer(text, return_tensors="pt")
@@ -192,13 +212,18 @@ def get_tts_wav(ref_wav_path, prompt_text, prompt_language, text, text_language)
t0 = ttime()
prompt_text = prompt_text.strip("\n")
prompt_language, text = prompt_language, text.strip("\n")
+ zero_wav = np.zeros(int(hps.data.sampling_rate * 0.3), dtype=np.float16 if is_half == True else np.float32)
with torch.no_grad():
- wav16k, sr = librosa.load(ref_wav_path, sr=16000) # 派蒙
+ wav16k, sr = librosa.load(ref_wav_path, sr=16000)
wav16k = torch.from_numpy(wav16k)
+ zero_wav_torch = torch.from_numpy(zero_wav)
if (is_half == True):
wav16k = wav16k.half().to(device)
+ zero_wav_torch = zero_wav_torch.half().to(device)
else:
wav16k = wav16k.to(device)
+ zero_wav_torch = zero_wav_torch.to(device)
+ wav16k = torch.cat([wav16k, zero_wav_torch])
ssl_content = ssl_model.model(wav16k.unsqueeze(0))["last_hidden_state"].transpose(1, 2) # .float()
codes = vq_model.extract_latent(ssl_content)
prompt_semantic = codes[0, 0]
@@ -209,7 +234,7 @@ def get_tts_wav(ref_wav_path, prompt_text, prompt_language, text, text_language)
phones1 = cleaned_text_to_sequence(phones1)
texts = text.split("\n")
audio_opt = []
- zero_wav = np.zeros(int(hps.data.sampling_rate * 0.3), dtype=np.float16 if is_half == True else np.float32)
+
for text in texts:
phones2, word2ph2, norm_text2 = clean_text(text, text_language)
phones2 = cleaned_text_to_sequence(phones2)
@@ -259,6 +284,25 @@ def get_tts_wav(ref_wav_path, prompt_text, prompt_language, text, text_language)
yield hps.data.sampling_rate, (np.concatenate(audio_opt, 0) * 32768).astype(np.int16)
+def handle_change(path, text, language):
+ if is_empty(path, text, language):
+ raise HTTPException(status_code=400, detail='缺少任意一项以下参数: "path", "text", "language"')
+
+ if path != "" or path is not None:
+ default_refer.path = path
+ if text != "" or text is not None:
+ default_refer.text = text
+ if language != "" or language is not None:
+ default_refer.language = language
+
+ print(f"[INFO] 当前默认参考音频路径: {default_refer.path}")
+ print(f"[INFO] 当前默认参考音频文本: {default_refer.text}")
+ print(f"[INFO] 当前默认参考音频语种: {default_refer.language}")
+ print(f"[INFO] is_ready: {default_refer.is_ready()}")
+
+ return JSONResponse({"code": 0, "message": "Success"}, status_code=200)
+
+
def handle(command, refer_wav_path, prompt_text, prompt_language, text, text_language):
if command == "/restart":
os.execl(g_config.python_exec, g_config.python_exec, *sys.argv)
@@ -272,11 +316,11 @@ def handle(command, refer_wav_path, prompt_text, prompt_language, text, text_lan
or prompt_language == "" or prompt_language is None
):
refer_wav_path, prompt_text, prompt_language = (
- default_refer_path,
- default_refer_text,
- default_refer_language,
+ default_refer.path,
+ default_refer.text,
+ default_refer.language,
)
- if not has_preset:
+ if not default_refer.is_ready():
raise HTTPException(status_code=400, detail="未指定参考音频且接口无预设")
with torch.no_grad():
@@ -297,6 +341,25 @@ def handle(command, refer_wav_path, prompt_text, prompt_language, text, text_lan
app = FastAPI()
+@app.post("/change_refer")
+async def change_refer(request: Request):
+ json_post_raw = await request.json()
+ return handle_change(
+ json_post_raw.get("path"),
+ json_post_raw.get("text"),
+ json_post_raw.get("language")
+ )
+
+
+@app.get("/change_refer")
+async def change_refer(
+ path: str = None,
+ text: str = None,
+ language: str = None
+):
+ return handle_change(path, text, language)
+
+
@app.post("/")
async def tts_endpoint(request: Request):
json_post_raw = await request.json()
diff --git a/docs/cn/README.md b/docs/cn/README.md
index 072dc0d..2c63814 100644
--- a/docs/cn/README.md
+++ b/docs/cn/README.md
@@ -23,6 +23,8 @@
https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb
+中国地区用户可使用AutoDL云端镜像进行体验:https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official
+
## 功能:
1. **零样本文本到语音(TTS):** 输入5秒的声音样本,即刻体验文本到语音转换。
diff --git a/i18n/locale/ko_KR.json b/i18n/locale/ko_KR.json
index 816ed3f..fa53060 100644
--- a/i18n/locale/ko_KR.json
+++ b/i18n/locale/ko_KR.json
@@ -1,135 +1,275 @@
{
- ">=3则使用对harvest音高识别的结果使用中值滤波,数值为滤波半径,使用可以削弱哑音": ">=3이면 harvest 음높이 인식 결과에 중간값 필터를 사용합니다. 이 수치는 필터 반경이며, 사용하면 불명확한 음성을 어느정도 배제할 수 있습니다.",
- "A模型权重": "A 모델 가중치",
- "A模型路径": "A 모델 경로",
- "B模型路径": "B 모델 경로",
- "E:\\语音音频+标注\\米津玄师\\src": "E:\\음성 오디오+주석\\요네즈 켄시\\src",
- "F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调": "F0 곡선 파일, 선택 사항, 한 줄에 하나의 음높이, 기본 F0 및 음높이 변화를 대체함",
- "Index Rate": "인덱스 비율",
- "Onnx导出": "Onnx 내보내기",
- "Onnx输出路径": "Onnx 출력 경로",
- "RVC模型路径": "RVC 모델 경로",
- "ckpt处理": "ckpt 처리",
- "harvest进程数": "harvest 프로세스 수",
- "index文件路径不可包含中文": "인덱스 파일 경로에는 중국어를 포함할 수 없습니다.",
- "pth文件路径不可包含中文": "pth 파일 경로에는 중국어를 포함할 수 없습니다.",
- "rmvpe卡号配置:以-分隔输入使用的不同进程卡号,例如0-0-1使用在卡0上跑2个进程并在卡1上跑1个进程": "rmvpe 카드 번호 구성: '-'로 구분하여 입력된 다른 프로세스 카드 번호, 예를 들어 0-0-1은 카드 0에서 2개의 프로세스를 실행하고 카드 1에서 1개의 프로세스를 실행",
- "step1: 填写实验配置. 实验数据放在logs下, 每个实验一个文件夹, 需手工输入实验名路径, 内含实验配置, 日志, 训练得到的模型文件. ": "step1: 실험 설정을 작성합니다. 실험 데이터는 logs 아래에 있으며, 각 실험마다 하나의 폴더가 있습니다. 실험 이름 경로를 수동으로 입력해야 하며, 이 안에는 실험 설정, 로그, 훈련으로 얻은 모델 파일이 포함되어 있습니다.",
- "step1:正在处理数据": "step1: 데이터 처리 중",
- "step2:正在提取音高&正在提取特征": "step2: 음높이 추출 및 특성 추출 중",
- "step2a: 自动遍历训练文件夹下所有可解码成音频的文件并进行切片归一化, 在实验目录下生成2个wav文件夹; 暂时只支持单人训练. ": "step2a: 훈련 폴더 아래 모든 오디오로 디코딩 가능한 파일을 자동으로 순회하고 슬라이스 정규화를 진행하여, 실험 디렉토리 아래에 2개의 wav 폴더를 생성합니다; 현재는 단일 사용자 훈련만 지원합니다.",
- "step2b: 使用CPU提取音高(如果模型带音高), 使用GPU提取特征(选择卡号)": "step2b: CPU를 사용해 음높이를 추출합니다(모델이 음높이를 포함하는 경우), GPU를 사용해 특성을 추출합니다(카드 번호 선택)",
- "step3: 填写训练设置, 开始训练模型和索引": "step3: 훈련 설정을 작성하고, 모델 및 인덱스 훈련을 시작합니다",
- "step3a:正在训练模型": "step3a: 모델 훈련 중",
- "一键训练": "원키 트레이닝",
- "也可批量输入音频文件, 二选一, 优先读文件夹": "대량으로 오디오 파일 입력도 가능, 둘 중 하나 선택, 폴더 우선 읽기",
- "人声伴奏分离批量处理, 使用UVR5模型。
合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。
模型分为三类:
1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;
2、仅保留主人声:带和声的音频选这个,对主人声可能有削弱。内置HP5一个模型;
3、去混响、去延迟模型(by FoxJoy):
(1)MDX-Net(onnx_dereverb):对于双通道混响是最好的选择,不能去除单通道混响;
(234)DeEcho:去除延迟效果。Aggressive比Normal去除得更彻底,DeReverb额外去除混响,可去除单声道混响,但是对高频重的板式混响去不干净。
去混响/去延迟,附:
1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;
2、MDX-Net-Dereverb模型挺慢的;
3、个人推荐的最干净的配置是先MDX-Net再DeEcho-Aggressive。": "인간 목소리와 반주 분리 대량 처리, UVR5 모델 사용.
올바른 폴더 경로 예: E:\\codes\\py39\\vits_vc_gpu\\백로서화 테스트 케이스(파일 탐색기 주소창에서 복사하면 됨).
모델은 세 가지 유형으로 나뉩니다:
1. 인간 목소리 보존: 하모니가 없는 오디오를 선택, 주요 인간 목소리를 HP5보다 더 잘 보존. 내장된 HP2와 HP3 모델, HP3는 약간의 반주를 놓칠 수 있지만 HP2보다는 인간 목소리를 조금 더 잘 보존합니다.
2. 오직 주요 인간 목소리 보존: 하모니가 있는 오디오를 선택, 주요 인간 목소리가 약간 약해질 수 있음. 내장된 HP5 모델 하나;
3. 울림 제거, 지연 제거 모델(by FoxJoy):
(1)MDX-Net(onnx_dereverb): 양채널 울림에 대해서는 최선의 선택, 단채널 울림 제거 불가능;
(234)DeEcho: 지연 효과 제거. Aggressive가 Normal보다 더 철저하게 제거하며, DeReverb는 추가로 울림 제거, 단일 채널 울림 제거 가능하지만 고주파 중심의 판형 울림은 완전히 제거하지 못함.
울림/지연 제거 시 참고:
1. DeEcho-DeReverb 모델의 처리 시간은 다른 두 DeEcho 모델의 거의 2배임;
2. MDX-Net-Dereverb 모델은 상당히 느림;
3. 개인적으로 추천하는 가장 깨끗한 구성은 MDX-Net 다음에 DeEcho-Aggressive 사용.",
- "以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2": "-로 구분하여 입력한 카드 번호, 예를 들어 0-1-2는 카드0, 카드1, 카드2 사용",
- "伴奏人声分离&去混响&去回声": "반주 및 인간 목소리 분리 & 울림 제거 & 에코 제거",
- "使用模型采样率": "모델 샘플링 레이트 사용",
- "使用设备采样率": "장치 샘플링 레이트 사용",
- "保存名": "저장 이름",
- "保存的文件名, 默认空为和源文件同名": "저장된 파일 이름, 기본값은 원본 파일과 동일",
- "保存的模型名不带后缀": "저장된 모델 이름은 접미사 없음",
- "保存频率save_every_epoch": "저장 빈도 save_every_epoch",
- "保护清辅音和呼吸声,防止电音撕裂等artifact,拉满0.5不开启,调低加大保护力度但可能降低索引效果": "청결한 자음과 숨소리를 보호하고, 전자음의 찢어짐과 같은 아티팩트를 방지하며, 0.5까지 끌어올리면 보호가 활성화되지 않으며, 낮추면 보호 강도는 증가하지만 인덱싱 효과는 감소할 수 있음",
- "修改": "수정",
- "修改模型信息(仅支持weights文件夹下提取的小模型文件)": "모델 정보 수정(오직 weights 폴더에서 추출된 소형 모델 파일만 지원)",
- "停止音频转换": "오디오 변환 중지",
- "全流程结束!": "전체 과정 완료!",
- "刷新音色列表和索引路径": "음색 목록 및 인덱스 경로 새로고침",
- "加载模型": "모델 로드",
- "加载预训练底模D路径": "사전 훈련된 베이스 모델 D 경로 로드",
- "加载预训练底模G路径": "사전 훈련된 베이스 모델 G 경로 로드",
- "单次推理": "단일 추론",
- "卸载音色省显存": "음색 언로드로 메모리 절약",
- "变调(整数, 半音数量, 升八度12降八度-12)": "변조(정수, 반음 수, 옥타브 상승 12, 옥타브 하강 -12)",
- "后处理重采样至最终采样率,0为不进行重采样": "후처리로 최종 샘플링 레이트까지 리샘플링, 0은 리샘플링하지 않음",
- "否": "아니오",
- "启用相位声码器": "위상 보코더 활성화",
- "响应阈值": "응답 임계값",
- "响度因子": "소리 크기 인자",
- "处理数据": "데이터 처리",
- "导出Onnx模型": "Onnx 모델 내보내기",
- "导出文件格式": "파일 형식 내보내기",
- "常见问题解答": "자주 묻는 질문 답변",
- "常规设置": "일반 설정",
- "开始音频转换": "오디오 변환 시작",
- "很遗憾您这没有能用的显卡来支持您训练": "유감스럽게도 훈련을 지원할 수 있는 그래픽 카드가 없습니다",
- "性能设置": "성능 설정",
- "总训练轮数total_epoch": "총 훈련 회차 total_epoch",
- "批量推理": "대량 추론",
- "批量转换, 输入待转换音频文件夹, 或上传多个音频文件, 在指定文件夹(默认opt)下输出转换的音频. ": "대량 변환, 변환할 오디오 폴더 입력, 또는 여러 오디오 파일 업로드, 지정된 폴더(기본값 opt)에 변환된 오디오 출력.",
- "指定输出主人声文件夹": "주인공 목소리 출력 폴더 지정",
- "指定输出文件夹": "출력 파일 폴더 지정",
- "指定输出非主人声文件夹": "비주인공 목소리 출력 폴더 지정",
- "推理时间(ms):": "추론 시간(ms):",
- "推理音色": "추론 음색",
- "提取": "추출",
- "提取音高和处理数据使用的CPU进程数": "음높이 추출 및 데이터 처리에 사용되는 CPU 프로세스 수",
- "是": "예",
- "是否仅保存最新的ckpt文件以节省硬盘空间": "디스크 공간을 절약하기 위해 가장 최신의 ckpt 파일만 저장할지 여부",
- "是否在每次保存时间点将最终小模型保存至weights文件夹": "매 저장 시점마다 최종 작은 모델을 weights 폴더에 저장할지 여부",
- "是否缓存所有训练集至显存. 10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速": "모든 훈련 세트를 VRAM에 캐시할지 여부. 10분 미만의 작은 데이터는 훈련 속도를 높이기 위해 캐시할 수 있으나, 큰 데이터는 VRAM을 초과하여 큰 속도 향상을 기대할 수 없음.",
- "显卡信息": "그래픽 카드 정보",
- "本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责.
如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录LICENSE.": "이 소프트웨어는 MIT 라이선스로 오픈 소스이며, 작성자는 소프트웨어에 대한 어떠한 제어도 가지지 않으며, 소프트웨어 사용자 및 소프트웨어에서 내보낸 소리를 전파하는 사용자는 모든 책임을 져야 함.
이 조항을 인정하지 않는 경우, 소프트웨어 패키지 내의 어떠한 코드나 파일도 사용하거나 인용할 수 없음. 자세한 내용은 루트 디렉토리의 LICENSE를 참조.",
- "查看": "보기",
- "查看模型信息(仅支持weights文件夹下提取的小模型文件)": "모델 정보 보기(오직 weights 폴더에서 추출된 작은 모델 파일만 지원)",
- "检索特征占比": "특징 검색 비율",
- "模型": "모델",
- "模型推理": "모델 추론",
- "模型提取(输入logs文件夹下大文件模型路径),适用于训一半不想训了模型没有自动提取保存小文件模型,或者想测试中间模型的情况": "모델 추출(로그 폴더 아래 대용량 모델 경로 입력), 중간에 훈련을 중단하고 싶은 경우나 작은 파일 모델을 자동으로 저장하지 않은 경우, 또는 중간 모델을 테스트하고 싶은 경우에 적합",
- "模型是否带音高指导": "모델이 음높이 지도를 포함하는지 여부",
- "模型是否带音高指导(唱歌一定要, 语音可以不要)": "모델이 음높이 지도를 포함하는지 여부(노래에는 필수, 말하기에는 선택적)",
- "模型是否带音高指导,1是0否": "모델이 음높이 지도를 포함하는지 여부, 1은 '예', 0은 '아니오'",
- "模型版本型号": "모델 버전 및 모델",
- "模型融合, 可用于测试音色融合": "모델 통합, 음색 통합 테스트에 사용 가능",
- "模型路径": "모델 경로",
- "每张显卡的batch_size": "각 GPU의 batch_size",
- "淡入淡出长度": "페이드 인/아웃 길이",
- "版本": "버전",
- "特征提取": "특징 추출",
- "特征检索库文件路径,为空则使用下拉的选择结果": "특징 검색 라이브러리 파일 경로, 비어 있으면 드롭다운 선택 결과 사용",
- "男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域. ": "남성에서 여성으로 전환 시 +12키 추천, 여성에서 남성으로 전환 시 -12키 추천, 음역대 폭발로 음색 왜곡이 발생할 경우 적절한 음역대로 조정 가능.",
- "目标采样率": "목표 샘플링 비율",
- "算法延迟(ms):": "알고리즘 지연(ms):",
- "自动检测index路径,下拉式选择(dropdown)": "index 경로 자동 감지, 드롭다운 선택",
- "融合": "통합",
- "要改的模型信息": "수정할 모델 정보",
- "要置入的模型信息": "삽입할 모델 정보",
- "训练": "훈련",
- "训练模型": "모델 훈련",
- "训练特征索引": "특징 인덱스 훈련",
- "训练结束, 您可查看控制台训练日志或实验文件夹下的train.log": "훈련이 완료되었습니다. 콘솔 훈련 로그나 실험 폴더 내의 train.log를 확인하세요.",
- "请指定说话人id": "화자 id를 지정해주세요.",
- "请选择index文件": "index 파일을 선택해주세요.",
- "请选择pth文件": "pth 파일을 선택해주세요.",
- "请选择说话人id": "화자 id를 선택해주세요.",
- "转换": "변환",
- "输入实验名": "실험명을 입력하세요.",
- "输入待处理音频文件夹路径": "처리할 오디오 파일 폴더 경로를 입력하세요.",
- "输入待处理音频文件夹路径(去文件管理器地址栏拷就行了)": "처리할 오디오 파일 폴더 경로를 입력하세요(파일 관리자의 주소 표시줄에서 복사하세요).",
- "输入待处理音频文件路径(默认是正确格式示例)": "처리할 오디오 파일 경로를 입력하세요(기본값은 올바른 형식의 예시입니다).",
- "输入源音量包络替换输出音量包络融合比例,越靠近1越使用输出包络": "원본 볼륨 엔벨로프와 출력 볼륨 엔벨로프의 혼합 비율을 입력하세요. 1에 가까울수록 출력 엔벨로프를 더 많이 사용합니다.",
- "输入监听": "모니터링 입력",
- "输入训练文件夹路径": "학습시킬 파일 폴더의 경로를 입력하세요.",
- "输入设备": "입력 장치",
- "输入降噪": "입력 노이즈 감소",
- "输出信息": "출력 정보",
- "输出变声": "음성 변환 출력",
- "输出设备": "출력 장치",
- "输出降噪": "출력 노이즈 감소",
- "输出音频(右下角三个点,点了可以下载)": "오디오 출력(오른쪽 하단 세 개의 점, 클릭하면 다운로드 가능)",
- "选择.index文件": ".index 파일 선택",
- "选择.pth文件": ".pth 파일 선택",
- "选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比,crepe效果好但吃GPU": "음고 추출 알고리즘을 선택하세요. 노래 입력 시 pm으로 속도를 높일 수 있으며, harvest는 저음이 좋지만 매우 느리고, crepe는 효과가 좋지만 GPU를 많이 사용합니다.",
- "选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比,crepe效果好但吃GPU,rmvpe效果最好且微吃GPU": "음고 추출 알고리즘을 선택하세요. 노래 입력 시 pm으로 속도를 높일 수 있고, harvest는 저음이 좋지만 매우 느리며, crepe는 효과가 좋지만 GPU를 많이 사용하고, rmvpe는 가장 좋은 효과를 내면서 GPU를 적게 사용합니다.",
- "选择音高提取算法:输入歌声可用pm提速,高质量语音但CPU差可用dio提速,harvest质量更好但慢,rmvpe效果最好且微吃CPU/GPU": "음고 추출 알고리즘 선택: 노래 입력 시 pm으로 속도를 높일 수 있으며, 고품질 음성이지만 CPU가 낮을 때는 dio로 속도를 높일 수 있고, harvest는 품질이 더 좋지만 느리며, rmvpe는 최고의 효과를 내면서 CPU/GPU를 적게 사용합니다.",
- "采样率:": "샘플링 레이트:",
- "采样长度": "샘플링 길이",
- "重载设备列表": "장치 목록 리로드",
- "音调设置": "음조 설정",
- "音频设备(请使用同种类驱动)": "오디오 장치(동일한 유형의 드라이버를 사용해주세요)",
- "音高算法": "음고 알고리즘",
- "额外推理时长": "추가적인 추론 시간"
-}
+ "很遗憾您这没有能用的显卡来支持您训练": "아쉽게도 훈련을 지원할 수 있는 사용 가능한 그래픽 카드가 없습니다",
+ "UVR5已开启": "UVR5가 활성화되었습니다",
+ "UVR5已关闭": "UVR5가 비활성화되었습니다",
+ "本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责.
如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录LICENSE.": "본 소프트웨어는 MIT 라이선스로 오픈 소스로 제공되며, 제작자는 소프트웨어에 대해 어떠한 제어력도 가지지 않습니다. 소프트웨어 사용자 및 소프트웨어에서 내보낸 소리를 전파하는 자는 전적으로 책임져야 합니다.
이 조항을 인정하지 않으면 소프트웨어의 코드 및 파일을 사용하거나 인용할 수 없습니다. 루트 디렉터리의 LICENSE를 참조하십시오.",
+ "0-前置数据集获取工具": "0-전방 데이터 세트 수집 도구",
+ "0a-UVR5人声伴奏分离&去混响去延迟工具": "0a-UVR5 보컬 및 반주 분리 및 에코 및 지연 제거 도구",
+ "是否开启UVR5-WebUI": "UVR5-WebUI를 열까요?",
+ "UVR5进程输出信息": "UVR5 프로세스 출력 정보",
+ "0b-语音切分工具": "0b-음성 분리 도구",
+ "音频自动切分输入路径,可文件可文件夹": "오디오 자동 분리 입력 경로, 파일 또는 폴더 가능",
+ "切分后的子音频的输出根目录": "분리된 하위 오디오의 출력 기본 디렉터리",
+ "threshold:音量小于这个值视作静音的备选切割点": "임계 값: 이 값보다 작은 볼륨은 대체 분리 지점으로 간주됩니다.",
+ "min_length:每段最小多长,如果第一段太短一直和后面段连起来直到超过这个值": "최소 길이: 각 세그먼트의 최소 길이. 첫 번째 세그먼트가 너무 짧으면 계속해서 뒷부분과 연결하여 이 값 이상이 될 때까지",
+ "min_interval:最短切割间隔": "최소 분리 간격",
+ "hop_size:怎么算音量曲线,越小精度越大计算量越高(不是精度越大效果越好)": "hop 크기: 볼륨 곡선을 계산하는 방법. 작을수록 정확도가 높아지지만 계산량이 높아집니다 (정확도가 높다고 효과가 좋아지지 않음)",
+ "max_sil_kept:切完后静音最多留多长": "최대 유지되는 정적 길이 (분리 후)",
+ "开启语音切割": "음성 분리 활성화",
+ "终止语音切割": "음성 분리 종료",
+ "max:归一化后最大值多少": "최대 값 (정규화 후)",
+ "alpha_mix:混多少比例归一化后音频进来": "알파 믹스: 정규화된 오디오가 들어오는 비율",
+ "切割使用的进程数": "사용되는 프로세스 수로 자르기",
+ "语音切割进程输出信息": "음성 분리 프로세스 출력 정보",
+ "0c-中文批量离线ASR工具": "0c-중국어 대량 오프라인 ASR 도구",
+ "开启离线批量ASR": "오프라인 대량 ASR 활성화",
+ "终止ASR进程": "ASR 프로세스 종료",
+ "批量ASR(中文only)输入文件夹路径": "대량 ASR (중국어 전용) 입력 폴더 경로",
+ "ASR进程输出信息": "ASR 프로세스 출력 정보",
+ "0d-语音文本校对标注工具": "0d-음성 텍스트 교정 주석 도구",
+ "是否开启打标WebUI": "웹 기반 주석 활성화 여부",
+ "打标数据标注文件路径": "주석 데이터 주석 파일 경로",
+ "打标工具进程输出信息": "주석 도구 프로세스 출력 정보",
+ "1-GPT-SoVITS-TTS": "1-GPT-SoVITS-TTS",
+ "*实验/模型名": "*실험/모델 이름",
+ "显卡信息": "그래픽 카드 정보",
+ "预训练的SoVITS-G模型路径": "사전 훈련된 SoVITS-G 모델 경로",
+ "预训练的SoVITS-D模型路径": "사전 훈련된 SoVITS-D 모델 경로",
+ "预训练的GPT模型路径": "사전 훈련된 GPT 모델 경로",
+ "1A-训练集格式化工具": "1A-훈련 세트 형식 지정 도구",
+ "输出logs/实验名目录下应有23456开头的文件和文件夹": "logs/실험 이름 디렉터리에는 23456으로 시작하는 파일과 폴더가 있어야 함",
+ "*文本标注文件": "*텍스트 주석 파일",
+ "*训练集音频文件目录": "*훈련 세트 오디오 파일 디렉터리",
+ "训练集音频文件目录 拼接 list文件里波形对应的文件名。": "훈련 세트 오디오 파일 디렉터리 - 목록 파일에 해당하는 원형 이름 연결",
+ "1Aa-文本内容": "1Aa-텍스트 내용",
+ "GPU卡号以-分割,每个卡号一个进程": "GPU 카드 번호는 -로 구분되며 각 카드 번호에 하나의 프로세스가 있어야 함",
+ "预训练的中文BERT模型路径": "사전 훈련된 중국어 BERT 모델 경로",
+ "开启文本获取": "텍스트 추출 활성화",
+ "终止文本获取进程": "텍스트 추출 프로세스 종료",
+ "文本进程输出信息": "텍스트 프로세스 출력 정보",
+ "1Ab-SSL自监督特征提取": "1Ab-SSL 자기 지도 특징 추출",
+ "预训练的SSL模型路径": "사전 훈련된 SSL 모델 경로",
+ "开启SSL提取": "SSL 추출 활성화",
+ "终止SSL提取进程": "SSL 추출 프로세스 종료",
+ "SSL进程输出信息": "SSL 프로세스 출력 정보",
+ "1Ac-语义token提取": "1Ac-의미 토큰 추출",
+ "开启语义token提取": "의미 토큰 추출 활성화",
+ "终止语义token提取进程": "의미 토큰 추출 프로세스 종료",
+ "语义token提取进程输出信息": "의미 토큰 추출 프로세스 출력 정보",
+ "1Aabc-训练集格式化一键三连": "1Aabc-훈련 세트 형식 지정 일괄 처리",
+ "开启一键三连": "일괄 처리 활성화",
+ "终止一键三连": "일괄 처리 종료",
+ "一键三连进程输出信息": "일괄 처리 프로세스 출력 정보",
+ "1B-微调训练": "1B-미세 조정 훈련",
+ "1Ba-SoVITS训练。用于分享的模型文件输出在SoVITS_weights下。": "1Ba-SoVITS 훈련. 공유 용 모델 파일은 SoVITS_weights 하위에 출력됩니다.",
+ "每张显卡的batch_size": "각 그래픽 카드의 배치 크기",
+ "总训练轮数total_epoch,不建议太高": "총 훈련 라운드 수 (total_epoch), 너무 높지 않게 권장됨",
+ "文本模块学习率权重": "텍스트 모듈 학습률 가중치",
+ "保存频率save_every_epoch": "저장 빈도 (각 라운드마다)",
+ "是否仅保存最新的ckpt文件以节省硬盘空间": "디스크 공간을 절약하기 위해 최신 ckpt 파일만 저장할지 여부",
+ "是否在每次保存时间点将最终小模型保存至weights文件夹": "각 저장 시간에 최종 작은 모델을 weights 폴더에 저장할지 여부",
+ "开启SoVITS训练": "SoVITS 훈련 활성화",
+ "终止SoVITS训练": "SoVITS 훈련 종료",
+ "SoVITS训练进程输出信息": "SoVITS 훈련 프로세스 출력 정보",
+ "1Bb-GPT训练。用于分享的模型文件输出在GPT_weights下。": "1Bb-GPT 훈련. 공유 용 모델 파일은 GPT_weights 하위에 출력됩니다.",
+ "总训练轮数total_epoch": "총 훈련 라운드 수 (total_epoch)",
+ "开启GPT训练": "GPT 훈련 활성화",
+ "终止GPT训练": "GPT 훈련 종료",
+ "GPT训练进程输出信息": "GPT 훈련 프로세스 출력 정보",
+ "1C-推理": "1C-추론",
+ "选择训练完存放在SoVITS_weights和GPT_weights下的模型。默认的一个是底模,体验5秒Zero Shot TTS用。": "SoVITS_weights 및 GPT_weights에 저장된 훈련 완료된 모델 중 선택. 기본적으로 하나는 기본 모델이며 5초 Zero Shot TTS를 체험할 수 있습니다.",
+ "*GPT模型列表": "*GPT 모델 목록",
+ "*SoVITS模型列表": "*SoVITS 모델 목록",
+ "GPU卡号,只能填1个整数": "GPU 카드 번호, 1개의 정수만 입력 가능",
+ "刷新模型路径": "모델 경로 새로 고침",
+ "是否开启TTS推理WebUI": "TTS 추론 WebUI 활성화 여부",
+ "TTS推理WebUI进程输出信息": "TTS 추론 WebUI 프로세스 출력 정보",
+ "2-GPT-SoVITS-变声": "2-GPT-SoVITS-음성 변환",
+ "施工中,请静候佳音": "공사 중입니다. 기다려주십시오.",
+ "TTS推理进程已开启": "TTS 추론 프로세스가 열렸습니다",
+ "TTS推理进程已关闭": "TTS 추론 프로세스가 닫혔습니다",
+ "打标工具WebUI已开启": "주석 도구 WebUI가 열렸습니다",
+ "打标工具WebUI已关闭": "주석 도구 WebUI가 닫혔습니다",
+ "*请上传并填写参考信息": "*참고 정보를 업로드하고 입력하십시오",
+ "*请填写需要合成的目标文本": "*합성할 대상 텍스트를 입력하십시오",
+ "ASR任务开启:%s": "ASR 작업 시작: %s",
+ "GPT训练完成": "GPT 훈련 완료",
+ "GPT训练开始:%s": "GPT 훈련 시작: %s",
+ "SSL提取进程执行中": "SSL 추출 프로세스 실행 중",
+ "SSL提取进程结束": "SSL 추출 프로세스 종료",
+ "SoVITS训练完成": "SoVITS 훈련 완료",
+ "SoVITS训练开始:%s": "SoVITS 훈련 시작: %s",
+ "一键三连中途报错": "일괄 처리 중 오류 발생",
+ "一键三连进程结束": "일괄 처리 프로세스 종료",
+ "中文": "중국어",
+ "凑50字一切": "50자를 채우십시오",
+ "凑五句一切": "다섯 문장을 채우십시오",
+ "切分后文本": "분리된 텍스트",
+ "切割执行中": "분리 진행 중",
+ "切割结束": "분리 종료",
+ "参考音频的文本": "참고 오디오의 텍스트",
+ "参考音频的语种": "참고 오디오의 언어",
+ "合成语音": "합성 음성",
+ "后续将支持混合语种编码文本输入。": "향후 혼합 언어 코딩 텍스트 입력을 지원할 예정입니다.",
+ "已有正在进行的ASR任务,需先终止才能开启下一次任务": "이미 진행 중인 ASR 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的GPT训练任务,需先终止才能开启下一次任务": "이미 진행 중인 GPT 훈련 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的SSL提取任务,需先终止才能开启下一次任务": "이미 진행 중인 SSL 추출 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的SoVITS训练任务,需先终止才能开启下一次任务": "이미 진행 중인 SoVITS 훈련 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的一键三连任务,需先终止才能开启下一次任务": "이미 진행 중인 일괄 처리 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的切割任务,需先终止才能开启下一次任务": "이미 진행 중인 분리 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的文本任务,需先终止才能开启下一次任务": "이미 진행 중인 텍스트 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已有正在进行的语义token提取任务,需先终止才能开启下一次任务": "이미 진행 중인 의미 토큰 추출 작업이 있습니다. 다음 작업을 시작하려면 먼저 종료하십시오.",
+ "已终止ASR进程": "ASR 프로세스 종료됨",
+ "已终止GPT训练": "GPT 훈련 종료됨",
+ "已终止SoVITS训练": "SoVITS 훈련 종료됨",
+ "已终止所有1a进程": "모든 1a 프로세스 종료됨",
+ "已终止所有1b进程": "모든 1b 프로세스 종료됨",
+ "已终止所有一键三连进程": "모든 일괄 처리 프로세스 종료됨",
+ "已终止所有切割进程": "모든 분리 프로세스 종료됨",
+ "已终止所有语义token进程": "모든 의미 토큰 프로세스 종료됨",
+ "按中文句号。切": "중국어 문장으로 분리하십시오.",
+ "文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。": "텍스트 분리 도구. 너무 긴 텍스트는 합성 결과가 항상 좋지 않을 수 있으므로 너무 길면 먼저 분리하는 것이 좋습니다. 합성은 텍스트 줄 바꿈을 기준으로 분리되어 다시 조합됩니다.",
+ "文本进程执行中": "텍스트 프로세스 실행 중",
+ "文本进程结束": "텍스트 프로세스 종료",
+ "日文": "일본어",
+ "英文": "영어",
+ "语义token提取进程执行中": "의미 토큰 추출 프로세스 실행 중",
+ "语义token提取进程结束": "의미 토큰 추출 프로세스 종료",
+ "请上传参考音频": "참고 오디오를 업로드하십시오",
+ "输入路径不存在": "입력 경로가 존재하지 않습니다",
+ "输入路径存在但既不是文件也不是文件夹": "입력 경로가 파일이나 폴더가 아닙니다",
+ "输出的语音": "출력 음성",
+ "进度:1a-done": "진행: 1a-done",
+ "进度:1a-done, 1b-ing": "진행: 1a-done, 1b-ing",
+ "进度:1a-ing": "진행: 1a-ing",
+ "进度:1a1b-done": "진행: 1a1b-done",
+ "进度:1a1b-done, 1cing": "진행: 1a1b-done, 1cing",
+ "进度:all-done": "진행: all-done",
+ "需要合成的切分前文本": "합성해야 할 분할 전 텍스트",
+ "需要合成的文本": "합성해야 할 텍스트",
+ "需要合成的语种": "합성해야 할 언어",
+ ">=3则使用对harvest音高识别的结果使用中值滤波,数值为滤波半径,使用可以削弱哑音": ">=3이면 harvest 음고 인식 결과에 중앙값 필터를 사용하며, 값은 필터 반경이며 사용하면 소리를 약하게 할 수 있습니다",
+ "A模型权重": "A 모델 가중치",
+ "A模型路径": "A 모델 경로",
+ "B模型路径": "B 모델 경로",
+ "E:\\语音音频+标注\\米津玄师\\src": "E:\\음성 오디오 + 주석\\Miyuki Kenshi\\src",
+ "F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调": "F0 곡선 파일, 선택 사항, 한 줄에 하나의 음고, 기본 F0 및 음조 대신 사용",
+ "Index Rate": "인덱스 비율",
+ "Onnx导出": "Onnx 내보내기",
+ "Onnx输出路径": "Onnx 출력 경로",
+ "RVC模型路径": "RVC 모델 경로",
+ "ckpt处理": "ckpt 처리",
+ "harvest进程数": "harvest 프로세스 수",
+ "index文件路径不可包含中文": "인덱스 파일 경로에는 중국어를 포함할 수 없습니다",
+ "pth文件路径不可包含中文": "pth 파일 경로에는 중국어를 포함할 수 없습니다",
+ "rmvpe卡号配置:以-分隔输入使用的不同进程卡号,例如0-0-1使用在卡0上跑2个进程并在卡1上跑1个进程": "rmvpe 카드 번호 구성: 각 입력에 사용되는 다른 프로세스 카드를 -로 구분하여 입력하십시오. 예: 0-0-1은 카드 0에서 2개의 프로세스를 실행하고 카드 1에서 1개의 프로세스를 실행합니다",
+ "step1: 填写实验配置. 实验数据放在logs下, 每个实验一个文件夹, 需手工输入实验名路径, 内含实验配置, 日志, 训练得到的模型文件. ": "step1: 실험 구성 입력. 실험 데이터는 logs 하위에 있으며 각 실험에 대한 폴더가 있어야합니다. 실험 이름 경로를 수동으로 입력해야하며 실험 구성, 로그, 훈련된 모델 파일이 포함되어 있습니다.",
+ "step1:正在处理数据": "step1: 데이터 처리 중",
+ "step2:正在提取音高&正在提取特征": "step2: 음고 추출 및 특징 추출 중",
+ "step2a: 自动遍历训练文件夹下所有可解码成音频的文件并进行切片归一化, 在实验目录下生成2个wav文件夹; 暂时只支持单人训练. ": "step2a: 자동으로 훈련 폴더에서 오디오로 디코딩할 수 있는 모든 파일을 반복하고 슬라이스 정규화를 수행하여 실험 디렉토리에 2 개의 wav 폴더를 생성합니다. 현재 단일 훈련만 지원됩니다.",
+ "step2b: 使用CPU提取音高(如果模型带音高), 使用GPU提取特征(选择卡号)": "step2b: CPU로 음고 추출(모델이 음고를 지원하는 경우), GPU로 특징 추출(카드 번호 선택)",
+ "step3: 填写训练设置, 开始训练模型和索引": "step3: 훈련 설정 입력, 모델 및 인덱스 훈련 시작",
+ "step3a:正在训练模型": "step3a: 모델 훈련 중",
+ "一键训练": "일괄 훈련",
+ "也可批量输入音频文件, 二选一, 优先读文件夹": "오디오 파일을 일괄로 입력할 수도 있습니다. 둘 중 하나를 선택하고 폴더를 읽기를 우선합니다.",
+ "以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2": "-로 구분하여 입력에 사용되는 카드 번호를 지정하십시오. 예 : 0-1-2는 카드 0, 1 및 2를 사용합니다",
+ "伴奏人声分离&去混响&去回声": "반주 및 보컬 분리 & 리버브 제거 & 에코 제거",
+ "使用模型采样率": "모델 샘플링 속도 사용",
+ "使用设备采样率": "기기 샘플링 속도 사용",
+ "保存名": "저장 이름",
+ "保存的文件名, 默认空为和源文件同名": "저장할 파일 이름, 기본적으로 공백은 원본 파일과 동일한 이름입니다",
+ "保存的模型名不带后缀": "저장할 모델 이름에는 확장자가 없습니다",
+ "保护清辅音和呼吸声,防止电音撕裂等artifact,拉满0.5不开启,调低加大保护力度但可能降低索引效果": "클리어 자음 및 숨소를 보호하여 전자 음향 찢김과 같은 아티팩트를 방지하려면 0.5로 설정하되, 보호 강도를 높이려면 0.5로 당기지 않고 낮추면 인덱스 효과가 감소할 수 있습니다",
+ "修改": "수정",
+ "修改模型信息(仅支持weights文件夹下提取的小模型文件)": "모델 정보 수정 (weights 폴더에서 추출된 작은 모델 파일만 지원됨)",
+ "停止音频转换": "오디오 변환 중지",
+ "全流程结束!": "전체 프로세스 완료!",
+ "刷新音色列表和索引路径": "음색 목록 및 인덱스 경로 새로 고침",
+ "加载模型": "모델 로드",
+ "加载预训练底模D路径": "사전 훈련된 기본 모델 D 경로 로드",
+ "加载预训练底模G路径": "사전 훈련된 기본 모델 G 경로 로드",
+ "单次推理": "단일 추론",
+ "卸载音色省显存": "음색 언로드 및 GPU 메모리 절약",
+ "变调(整数, 半音数量, 升八度12降八度-12)": "음높이 변경(정수, 반음 수, 올림 높이 12 내림 높이 -12)",
+ "后处理重采样至最终采样率,0为不进行重采样": "후 처리를 통한 최종 샘플링률 재샘플링, 0은 재샘플링 미실행",
+ "否": "아니오",
+ "启用相位声码器": "페이즈 보코더 사용",
+ "响应阈值": "응답 임계값",
+ "响度因子": "음량 요소",
+ "处理数据": "데이터 처리",
+ "导出Onnx模型": "Onnx 모델 내보내기",
+ "导出文件格式": "내보내기 파일 형식",
+ "常见问题解答": "자주 묻는 질문 해결",
+ "常规设置": "일반 설정",
+ "开始音频转换": "오디오 변환 시작",
+ "性能设置": "성능 설정",
+ "批量推理": "일괄 추론",
+ "批量转换, 输入待转换音频文件夹, 或上传多个音频文件, 在指定文件夹(默认opt)下输出转换的音频. ": "일괄 변환, 변환 대기 중인 오디오 폴더를 입력하거나 여러 오디오 파일을 업로드하고 지정된 폴더(opt 기본값)에 변환된 오디오를 출력합니다.",
+ "指定输出主人声文件夹": "지정된 주인 목소리 출력 폴더",
+ "指定输出文件夹": "지정된 출력 폴더",
+ "指定输出非主人声文件夹": "지정된 비주인 목소리 출력 폴더",
+ "推理时间(ms):": "추론 시간(ms):",
+ "推理音色": "추론 음색",
+ "提取": "추출",
+ "提取音高和处理数据使用的CPU进程数": "음높이 추출 및 데이터 처리에 사용되는 CPU 프로세스 수 추출",
+ "是": "예",
+ "是否缓存所有训练集至显存. 10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速": "모든 훈련 세트를 GPU 메모리에 캐시할지 여부. 10분 미만의 소량 데이터는 훈련 속도를 높이기 위해 캐시할 수 있지만, 대량 데이터를 캐시하면 메모리가 터지고 속도가 크게 향상되지 않을 수 있습니다.",
+ "查看": "보기",
+ "查看模型信息(仅支持weights文件夹下提取的小模型文件)": "모델 정보보기(작은 모델 파일로 추출된 weights 폴더에서만 지원)",
+ "检索特征占比": "특징 비율 검색",
+ "模型": "모델",
+ "模型推理": "모델 추론",
+ "模型提取(输入logs文件夹下大文件模型路径),适用于训一半不想训了模型没有自动提取保存小文件模型,或者想测试中间模型的情况": "모델 추출(로그 폴더에 대형 파일 모델 경로 입력), 반 훈련하고 싶지 않거나 모델이 자동으로 작은 파일 모델로 추출되지 않았거나 중간 모델을 테스트하려는 경우에 사용",
+ "模型是否带音高指导": "모델에 음높이 안내가 있는지 여부",
+ "模型是否带音高指导(唱歌一定要, 语音可以不要)": "모델에 음높이 안내가 있는지 여부(노래에는 필수, 음성은 선택 사항)",
+ "模型是否带音高指导,1是0否": "모델에 음높이 안내가 있는지 여부, 1이면 있음 0이면 없음",
+ "模型版本型号": "모델 버전 및 모델 번호",
+ "模型融合, 可用于测试音色融合": "모델 통합, 음색 통합 테스트에 사용 가능",
+ "模型路径": "모델 경로",
+ "淡入淡出长度": "페이드 인/아웃 길이",
+ "版本": "버전",
+ "特征提取": "특성 추출",
+ "特征检索库文件路径,为空则使用下拉的选择结果": "특성 검색 라이브러리 파일 경로, 비어 있으면 드롭다운 선택 결과 사용",
+ "男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域. ": "남성을 여성으로 추천 +12키, 여성을 남성으로 추천 -12키, 음역 폭발로 음색이 왜곡되면 적절한 음역으로 직접 조절 가능",
+ "目标采样率": "목표 샘플링률",
+ "算法延迟(ms):": "알고리즘 지연 시간(ms):",
+ "自动检测index路径,下拉式选择(dropdown)": "자동으로 index 경로 감지, 드롭다운 선택",
+ "融合": "융합",
+ "要改的模型信息": "수정할 모델 정보",
+ "要置入的模型信息": "삽입할 모델 정보",
+ "训练": "훈련",
+ "训练模型": "모델 훈련",
+ "训练特征索引": "특성 인덱스 훈련",
+ "训练结束, 您可查看控制台训练日志或实验文件夹下的train.log": "훈련 종료, 콘솔 훈련 로그 또는 실험 폴더의 train.log를 확인할 수 있습니다",
+ "请指定说话人id": "화자 ID 지정",
+ "请选择index文件": "index 파일 선택",
+ "请选择pth文件": "pth 파일 선택",
+ "请选择说话人id": "화자 ID 선택",
+ "转换": "변환",
+ "输入实验名": "실험명 입력",
+ "输入待处理音频文件夹路径": "처리 대기 중인 오디오 폴더 경로 입력",
+ "输入待处理音频文件夹路径(去文件管理器地址栏拷就行了)": "처리 대기 중인 오디오 폴더 경로 입력(파일 관리자 주소 표시 줄에서 복사하면 됨)",
+ "输入待处理音频文件路径(默认是正确格式示例)": "처리 대기 중인 오디오 파일 경로 입력(기본적으로 올바른 형식의 예제)",
+ "输入源音量包络替换输出音量包络融合比例,越靠近1越使用输出包络": "소스 음량 에너벌롭을 입력하여 출력 음량 에너벌롭 합성 비율을 대체하면 1에 가까울수록 출력 에너벌롭 사용",
+ "输入监听": "입력 모니터링",
+ "输入训练文件夹路径": "훈련 폴더 경로 입력",
+ "输入设备": "입력 장치",
+ "输入降噪": "노이즈 감소 입력",
+ "输出信息": "출력 정보",
+ "输出变声": "음성 출력",
+ "输出设备": "출력 장치",
+ "输出降噪": "노이즈 감소 출력",
+ "输出音频(右下角三个点,点了可以下载)": "출력 오디오(우하단 세 점, 클릭하면 다운로드 가능)",
+ "选择.index文件": "index 파일 선택",
+ "选择.pth文件": "pth 파일 선택",
+ "选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比,crepe效果好但吃GPU": "음높이 추출 알고리즘 선택, 노래 입력에 pm 사용 가능, harvest는 저음이 좋지만 매우 느림, crepe 효과는 좋지만 GPU 사용",
+ "选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比,crepe效果好但吃GPU,rmvpe效果最好且微吃GPU": "음높이 추출 알고리즘 선택, 노래 입력에 pm 사용 가능, harvest는 저음이 좋지만 매우 느림, crepe 효과는 좋지만 GPU 사용, rmvpe 효과가 가장 좋으며 약간의 GPU 사용",
+ "选择音高提取算法:输入歌声可用pm提速,高质量语音但CPU差可用dio提速,harvest质量更好但慢,rmvpe效果最好且微吃CPU/GPU": "음높이 추출 알고리즘 선택: 노래 입력에 pm 사용 가능, 고품질 음성이지만 CPU가 낮음, dio 사용 가능, harvest 품질이 더 좋지만 느림, rmvpe 효과가 최고이며 CPU/GPU 약간 사용",
+ "采样率:": "샘플링률:",
+ "采样长度": "샘플링 길이",
+ "重载设备列表": "장치 목록 다시로드",
+ "音调设置": "음조 설정",
+ "音频设备(请使用同种类驱动)": "오디오 장치(동일한 유형의 드라이버 사용 권장)",
+ "音高算法": "음높이 알고리즘",
+ "额外推理时长": "추가 추론 시간"
+ }
diff --git a/requirements.txt b/requirements.txt
index a8e72ea..1bafeef 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,20 +4,21 @@ tensorboard
librosa==0.9.2
numba==0.56.4
pytorch-lightning
-gradio==3.14.0
+gradio==3.38.0
ffmpeg-python
onnxruntime
tqdm
-funasr
+funasr==0.8.7
cn2an
pypinyin
pyopenjtalk
g2p_en
torchaudio
-modelscope
+modelscope==1.10.0
sentencepiece
transformers
chardet
PyYAML
psutil
jieba_fast
+jieba