Chores (#1422)
Make Gradio Great Again 附带vs2017下载链接 增加了各种数据集检查,若缺失会弹出warning 修复了warning乱弹的bug 修复了参考音频混合只能上传一条的bug 修复了下载G2PW Model出现import错误的bug 修复了Windows训练无N卡在预处理阶段的报错
This commit is contained in:
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Pretrained SSL model path",
|
||||
"预训练的SoVITS-D模型路径": "Pretrained SoVITS-D model path",
|
||||
"预训练的SoVITS-G模型路径": "Pretrained SoVITS-G model path",
|
||||
"预训练的中文BERT模型路径": " Pretrained BERT model path"
|
||||
"预训练的中文BERT模型路径": " Pretrained BERT model path",
|
||||
"音频加载失败": "Failed to Load Audio",
|
||||
"以下文件或文件夹不存在": "No Such File or Folder",
|
||||
"路径不能为空": "Expected No Empty Path",
|
||||
"请填入正确的List路径": "Please Fill in the Correct List Path",
|
||||
"请填入正确的音频文件夹路径": "Please Fill in the Correct Audio Folder Path",
|
||||
"路径错误": "Path Error",
|
||||
"缺少音素数据集": "Missing Phoneme Dataset",
|
||||
"缺少Hubert数据集": "Missing Hubert Dataset",
|
||||
"缺少音频数据集": "Missing Audio Dataset",
|
||||
"缺少语义数据集": "Missing Semantics Dataset"
|
||||
}
|
||||
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Ruta del modelo SSL preentrenado",
|
||||
"预训练的SoVITS-D模型路径": "Ruta del modelo SoVITS-D preentrenado",
|
||||
"预训练的SoVITS-G模型路径": "Ruta del modelo SoVITS-G preentrenado",
|
||||
"预训练的中文BERT模型路径": "Ruta del modelo BERT en chino preentrenado"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Ruta del modelo BERT en chino preentrenado",
|
||||
"音频加载失败": "Error al Cargar el Audio",
|
||||
"以下文件或文件夹不存在": "No Existe Tal Archivo o Carpeta",
|
||||
"路径不能为空": "Se Espera que la Ruta No Esté Vacía",
|
||||
"请填入正确的List路径": "Por Favor, Introduzca la Ruta Correcta de la Lista",
|
||||
"请填入正确的音频文件夹路径": "Por Favor, Introduzca la Ruta Correcta de la Carpeta de Audio",
|
||||
"路径错误": "Error de Ruta",
|
||||
"缺少音素数据集": "Falta el Conjunto de Datos de Fonemas",
|
||||
"缺少Hubert数据集": "Falta el Conjunto de Datos de Hubert",
|
||||
"缺少音频数据集": "Falta el Conjunto de Datos de Audio",
|
||||
"缺少语义数据集": "Falta el Conjunto de Datos Semánticos"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Chemin du modèle SSL pré-entraîné",
|
||||
"预训练的SoVITS-D模型路径": "Chemin du modèle SoVITS-D pré-entraîné",
|
||||
"预训练的SoVITS-G模型路径": "Chemin du modèle SoVITS-G pré-entraîné",
|
||||
"预训练的中文BERT模型路径": "Chemin du modèle BERT chinois pré-entraîné"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Chemin du modèle BERT chinois pré-entraîné",
|
||||
"音频加载失败": "Échec du Chargement de l'Audio",
|
||||
"以下文件或文件夹不存在": "Aucun Fichier ou Dossier de ce Type",
|
||||
"路径不能为空": "Chemin Non Vide Attendu",
|
||||
"请填入正确的List路径": "Veuillez Remplir le Chemin Correct de la Liste",
|
||||
"请填入正确的音频文件夹路径": "Veuillez Remplir le Chemin Correct du Dossier Audio",
|
||||
"路径错误": "Erreur de Chemin",
|
||||
"缺少音素数据集": "Jeu de Données de Phonèmes Manquant",
|
||||
"缺少Hubert数据集": "Jeu de Données Hubert Manquant",
|
||||
"缺少音频数据集": "Jeu de Données Audio Manquant",
|
||||
"缺少语义数据集": "Jeu de Données Sémantiques Manquant"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Percorso del modello SSL preaddestrato",
|
||||
"预训练的SoVITS-D模型路径": "Percorso del modello preaddestrato SoVITS-D",
|
||||
"预训练的SoVITS-G模型路径": "Percorso del modello preaddestrato SoVITS-G",
|
||||
"预训练的中文BERT模型路径": "Percorso del modello BERT cinese preaddestrato"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Percorso del modello BERT cinese preaddestrato",
|
||||
"音频加载失败": "Caricamento Audio Fallito",
|
||||
"以下文件或文件夹不存在": "Nessun File o Cartella di Questo Tipo",
|
||||
"路径不能为空": "Percorso Vuoto Non Consentito",
|
||||
"请填入正确的List路径": "Si Prega di Inserire il Percorso Corretto della Lista",
|
||||
"请填入正确的音频文件夹路径": "Si Prega di Inserire il Percorso Corretto della Cartella Audio",
|
||||
"路径错误": "Errore di Percorso",
|
||||
"缺少音素数据集": "Dataset di Fonemi Mancante",
|
||||
"缺少Hubert数据集": "Dataset di Hubert Mancante",
|
||||
"缺少音频数据集": "Dataset Audio Mancante",
|
||||
"缺少语义数据集": "Dataset Semantico Mancante"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "事前にトレーニングされたSSLモデルのパス",
|
||||
"预训练的SoVITS-D模型路径": "事前にトレーニングされたSoVITS-Dモデルのパス",
|
||||
"预训练的SoVITS-G模型路径": "事前にトレーニングされたSoVITS-Gモデルのパス",
|
||||
"预训练的中文BERT模型路径": "事前にトレーニングされた中文BERTモデルのパス"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "事前にトレーニングされた中文BERTモデルのパス",
|
||||
"音频加载失败": "音声の読み込みに失敗しました",
|
||||
"以下文件或文件夹不存在": "そのようなファイルまたはフォルダは存在しません",
|
||||
"路径不能为空": "空のパスは予期されていません",
|
||||
"请填入正确的List路径": "正しいリストパスを入力してください",
|
||||
"请填入正确的音频文件夹路径": "正しいオーディオフォルダパスを入力してください",
|
||||
"路径错误": "パスエラー",
|
||||
"缺少音素数据集": "音素データセットが欠落しています",
|
||||
"缺少Hubert数据集": "Hubertデータセットが欠落しています",
|
||||
"缺少音频数据集": "オーディオデータセットが欠落しています",
|
||||
"缺少语义数据集": "セマンティクスデータセットが欠落しています"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "사전 훈련된 SSL 모델 경로",
|
||||
"预训练的SoVITS-D模型路径": "사전 훈련된 SoVITS-D 모델 경로",
|
||||
"预训练的SoVITS-G模型路径": "사전 훈련된 SoVITS-G 모델 경로",
|
||||
"预训练的中文BERT模型路径": "사전 훈련된 중국어 BERT 모델 경로"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "사전 훈련된 중국어 BERT 모델 경로",
|
||||
"音频加载失败": "오디오 로드 실패",
|
||||
"以下文件或文件夹不存在": "해당 파일이나 폴더가 없습니다",
|
||||
"路径不能为空": "경로가 비어 있을 수 없습니다",
|
||||
"请填入正确的List路径": "올바른 리스트 경로를 입력하세요",
|
||||
"请填入正确的音频文件夹路径": "올바른 오디오 폴더 경로를 입력하세요",
|
||||
"路径错误": "경로 오류",
|
||||
"缺少音素数据集": "음소 데이터셋이 없습니다",
|
||||
"缺少Hubert数据集": "Hubert 데이터셋이 없습니다",
|
||||
"缺少音频数据集": "오디오 데이터셋이 없습니다",
|
||||
"缺少语义数据集": "의미론 데이터셋이 없습니다"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Caminho do modelo SSL pre-train",
|
||||
"预训练的SoVITS-D模型路径": "Caminho do modelo SoVITS-D pre-train",
|
||||
"预训练的SoVITS-G模型路径": "Caminho do modelo SoVITS-G pre-train",
|
||||
"预训练的中文BERT模型路径": "Caminho do modelo BERT chinês pre-train"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Caminho do modelo BERT chinês pre-train",
|
||||
"音频加载失败": "Falha ao Carregar o Áudio",
|
||||
"以下文件或文件夹不存在": "Nenhum Arquivo ou Pasta Encontrado",
|
||||
"路径不能为空": "Esperado Caminho Não Vazio",
|
||||
"请填入正确的List路径": "Por Favor, Insira o Caminho Correto da Lista",
|
||||
"请填入正确的音频文件夹路径": "Por Favor, Insira o Caminho Correto da Pasta de Áudio",
|
||||
"路径错误": "Erro de Caminho",
|
||||
"缺少音素数据集": "Conjunto de Dados de Fonemas Ausente",
|
||||
"缺少Hubert数据集": "Conjunto de Dados Hubert Ausente",
|
||||
"缺少音频数据集": "Conjunto de Dados de Áudio Ausente",
|
||||
"缺少语义数据集": "Conjunto de Dados Semânticos Ausente"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Путь к предварительно обученной модели SSL",
|
||||
"预训练的SoVITS-D模型路径": "Путь к предварительно обученной модели SoVITS-D",
|
||||
"预训练的SoVITS-G模型路径": "Путь к предварительно обученной модели SoVITS-G",
|
||||
"预训练的中文BERT模型路径": "Путь к предварительно обученной китайской модели BERT"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Путь к предварительно обученной китайской модели BERT",
|
||||
"音频加载失败": "Не удалось загрузить аудио",
|
||||
"以下文件或文件夹不存在": "Такого файла или папки не существует",
|
||||
"路径不能为空": "Ожидается, что путь не будет пустым",
|
||||
"请填入正确的List路径": "Пожалуйста, укажите правильный путь к списку",
|
||||
"请填入正确的音频文件夹路径": "Пожалуйста, укажите правильный путь к папке с аудио",
|
||||
"路径错误": "Ошибка пути",
|
||||
"缺少音素数据集": "Отсутствует набор данных фонем",
|
||||
"缺少Hubert数据集": "Отсутствует набор данных Hubert",
|
||||
"缺少音频数据集": "Отсутствует набор данных аудио",
|
||||
"缺少语义数据集": "Отсутствует семантический набор данных"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "Ön eğitilmiş SSL model yolu",
|
||||
"预训练的SoVITS-D模型路径": "Ön eğitilmiş SoVITS-D model yolu",
|
||||
"预训练的SoVITS-G模型路径": "Ön eğitilmiş SoVITS-G model yolu",
|
||||
"预训练的中文BERT模型路径": "Ön eğitilmiş Çince BERT model yolu"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "Ön eğitilmiş Çince BERT model yolu",
|
||||
"音频加载失败": "Ses Yüklenemedi",
|
||||
"以下文件或文件夹不存在": "Böyle Bir Dosya veya Klasör Yok",
|
||||
"路径不能为空": "Boş Yol Beklenmiyor",
|
||||
"请填入正确的List路径": "Lütfen Doğru Liste Yolunu Girin",
|
||||
"请填入正确的音频文件夹路径": "Lütfen Doğru Ses Klasörü Yolunu Girin",
|
||||
"路径错误": "Yol Hatası",
|
||||
"缺少音素数据集": "Fonem Veri Seti Eksik",
|
||||
"缺少Hubert数据集": "Hubert Veri Seti Eksik",
|
||||
"缺少音频数据集": "Ses Veri Seti Eksik",
|
||||
"缺少语义数据集": "Anlamsal Veri Seti Eksik"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "预训练的SSL模型路径",
|
||||
"预训练的SoVITS-D模型路径": "预训练的SoVITS-D模型路径",
|
||||
"预训练的SoVITS-G模型路径": "预训练的SoVITS-G模型路径",
|
||||
"预训练的中文BERT模型路径": "预训练的中文BERT模型路径"
|
||||
"预训练的中文BERT模型路径": "预训练的中文BERT模型路径",
|
||||
"音频加载失败": "音频加载失败",
|
||||
"以下文件或文件夹不存在": "以下文件或文件夹不存在",
|
||||
"路径不能为空": "路径不能为空",
|
||||
"请填入正确的List路径": "请填入正确的List路径",
|
||||
"请填入正确的音频文件夹路径": "请填入正确的音频文件夹路径",
|
||||
"路径错误": "路径错误",
|
||||
"缺少音素数据集": "缺少音素数据集",
|
||||
"缺少Hubert数据集": "缺少Hubert数据集",
|
||||
"缺少音频数据集": "缺少音频数据集",
|
||||
"缺少语义数据集": "缺少语义数据集"
|
||||
}
|
||||
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "預訓練的SSL模型路徑",
|
||||
"预训练的SoVITS-D模型路径": "預訓練的SoVITS-D模型路徑",
|
||||
"预训练的SoVITS-G模型路径": "預訓練的SoVITS-G模型路徑",
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑",
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"路径不能为空": "路徑不應該為空",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
"请填入正确的音频文件夹路径": "請填寫正確的音頻文件夾路徑",
|
||||
"路径错误": "路徑錯誤",
|
||||
"缺少音素数据集": "缺少音素數據集",
|
||||
"缺少Hubert数据集": "缺少Hubert數據集",
|
||||
"缺少音频数据集": "缺少音頻數據集",
|
||||
"缺少语义数据集": "缺少語義數據集"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "預訓練的SSL模型路徑",
|
||||
"预训练的SoVITS-D模型路径": "預訓練的SoVITS-D模型路徑",
|
||||
"预训练的SoVITS-G模型路径": "預訓練的SoVITS-G模型路徑",
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑",
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"路径不能为空": "路徑不應該為空",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
"请填入正确的音频文件夹路径": "請填寫正確的音頻文件夾路徑",
|
||||
"路径错误": "路徑錯誤",
|
||||
"缺少音素数据集": "缺少音素數據集",
|
||||
"缺少Hubert数据集": "缺少Hubert數據集",
|
||||
"缺少音频数据集": "缺少音頻數據集",
|
||||
"缺少语义数据集": "缺少語義數據集"
|
||||
}
|
||||
@@ -174,5 +174,15 @@
|
||||
"预训练的SSL模型路径": "預訓練的SSL模型路徑",
|
||||
"预训练的SoVITS-D模型路径": "預訓練的SoVITS-D模型路徑",
|
||||
"预训练的SoVITS-G模型路径": "預訓練的SoVITS-G模型路徑",
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑"
|
||||
}
|
||||
"预训练的中文BERT模型路径": "預訓練的中文BERT模型路徑",
|
||||
"音频加载失败": "無法加載音頻",
|
||||
"以下文件或文件夹不存在": "沒有此文件或文件夾",
|
||||
"路径不能为空": "路徑不應該為空",
|
||||
"请填入正确的List路径": "請填寫正確的列表路徑",
|
||||
"请填入正确的音频文件夹路径": "請填寫正確的音頻文件夾路徑",
|
||||
"路径错误": "路徑錯誤",
|
||||
"缺少音素数据集": "缺少音素數據集",
|
||||
"缺少Hubert数据集": "缺少Hubert數據集",
|
||||
"缺少音频数据集": "缺少音頻數據集",
|
||||
"缺少语义数据集": "缺少語義數據集"
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
import platform,os,traceback
|
||||
import ffmpeg
|
||||
import numpy as np
|
||||
|
||||
import gradio as gr
|
||||
from tools.i18n.i18n import I18nAuto
|
||||
import pandas as pd
|
||||
i18n = I18nAuto(language=os.environ.get('language','Auto'))
|
||||
|
||||
def load_audio(file, sr):
|
||||
try:
|
||||
@@ -20,7 +23,7 @@ def load_audio(file, sr):
|
||||
)
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
raise RuntimeError(f"Failed to load audio: {e}")
|
||||
raise RuntimeError(i18n("音频加载失败"))
|
||||
|
||||
return np.frombuffer(out, np.float32).flatten()
|
||||
|
||||
@@ -30,3 +33,83 @@ def clean_path(path_str:str):
|
||||
return clean_path(path_str[0:-1])
|
||||
path_str = path_str.replace('/', os.sep).replace('\\', os.sep)
|
||||
return path_str.strip(" ").strip('\'').strip("\n").strip('"').strip(" ").strip("\u202a")
|
||||
|
||||
|
||||
def check_for_existance(file_list:list=None,is_train=False,is_dataset_processing=False):
|
||||
files_status=[]
|
||||
if is_train == True and file_list:
|
||||
file_list.append(os.path.join(file_list[0],'2-name2text.txt'))
|
||||
file_list.append(os.path.join(file_list[0],'3-bert'))
|
||||
file_list.append(os.path.join(file_list[0],'4-cnhubert'))
|
||||
file_list.append(os.path.join(file_list[0],'5-wav32k'))
|
||||
file_list.append(os.path.join(file_list[0],'6-name2semantic.tsv'))
|
||||
for file in file_list:
|
||||
if os.path.exists(file):files_status.append(True)
|
||||
else:files_status.append(False)
|
||||
if sum(files_status)!=len(files_status):
|
||||
if is_train:
|
||||
for file,status in zip(file_list,files_status):
|
||||
if status:pass
|
||||
else:gr.Warning(file)
|
||||
gr.Warning(i18n('以下文件或文件夹不存在'))
|
||||
return False
|
||||
elif is_dataset_processing:
|
||||
if files_status[0]:
|
||||
return True
|
||||
elif not files_status[0]:
|
||||
gr.Warning(file_list[0])
|
||||
elif not files_status[1] and file_list[1]:
|
||||
gr.Warning(file_list[1])
|
||||
gr.Warning(i18n('以下文件或文件夹不存在'))
|
||||
return False
|
||||
else:
|
||||
if file_list[0]:
|
||||
gr.Warning(file_list[0])
|
||||
gr.Warning(i18n('以下文件或文件夹不存在'))
|
||||
else:
|
||||
gr.Warning(i18n('路径不能为空'))
|
||||
return False
|
||||
return True
|
||||
|
||||
def check_details(path_list=None,is_train=False,is_dataset_processing=False):
|
||||
if is_dataset_processing:
|
||||
list_path, audio_path = path_list
|
||||
if (not list_path.endswith('.list')):
|
||||
gr.Warning(i18n('请填入正确的List路径'))
|
||||
return
|
||||
if audio_path:
|
||||
if not os.path.isdir(audio_path):
|
||||
gr.Warning(i18n('请填入正确的音频文件夹路径'))
|
||||
return
|
||||
with open(list_path,"r",encoding="utf8")as f:
|
||||
line=f.readline().strip("\n").split("\n")
|
||||
wav_name, _, __, ___ = line[0].split("|")
|
||||
wav_name=clean_path(wav_name)
|
||||
if (audio_path != "" and audio_path != None):
|
||||
wav_name = os.path.basename(wav_name)
|
||||
wav_path = "%s/%s"%(audio_path, wav_name)
|
||||
else:
|
||||
wav_path=wav_name
|
||||
if os.path.exists(wav_path):
|
||||
...
|
||||
else:
|
||||
gr.Warning(i18n('路径错误'))
|
||||
return
|
||||
if is_train:
|
||||
path_list.append(os.path.join(path_list[0],'2-name2text.txt'))
|
||||
path_list.append(os.path.join(path_list[0],'4-cnhubert'))
|
||||
path_list.append(os.path.join(path_list[0],'5-wav32k'))
|
||||
path_list.append(os.path.join(path_list[0],'6-name2semantic.tsv'))
|
||||
phone_path, hubert_path, wav_path, semantic_path = path_list[1:]
|
||||
with open(phone_path,'r',encoding='utf-8') as f:
|
||||
if f.read(1):...
|
||||
else:gr.Warning(i18n('缺少音素数据集'))
|
||||
if os.listdir(hubert_path):...
|
||||
else:gr.Warning(i18n('缺少Hubert数据集'))
|
||||
if os.listdir(wav_path):...
|
||||
else:gr.Warning(i18n('缺少音频数据集'))
|
||||
df = pd.read_csv(
|
||||
semantic_path, delimiter="\t", encoding="utf-8"
|
||||
)
|
||||
if len(df) >= 1:...
|
||||
else:gr.Warning(i18n('缺少语义数据集'))
|
||||
|
||||
@@ -25,6 +25,16 @@ is_half=eval(sys.argv[2])
|
||||
webui_port_uvr5=int(sys.argv[3])
|
||||
is_share=eval(sys.argv[4])
|
||||
|
||||
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>"""
|
||||
|
||||
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 uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format0):
|
||||
infos = []
|
||||
try:
|
||||
@@ -116,11 +126,11 @@ with gr.Blocks(title="UVR5 WebUI") as app:
|
||||
value=
|
||||
i18n("本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责. <br>如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录<b>LICENSE</b>.")
|
||||
)
|
||||
with gr.Tabs():
|
||||
with gr.TabItem(i18n("伴奏人声分离&去混响&去回声")):
|
||||
with gr.Group():
|
||||
with gr.Group():
|
||||
gr.Markdown(html_center(i18n("伴奏人声分离&去混响&去回声"),'h2'))
|
||||
with gr.Group():
|
||||
gr.Markdown(
|
||||
value=i18n("人声伴奏分离批量处理, 使用UVR5模型。") + "<br>" + \
|
||||
value=html_left(i18n("人声伴奏分离批量处理, 使用UVR5模型。") + "<br>" + \
|
||||
i18n("合格的文件夹路径格式举例: E:\\codes\\py39\\vits_vc_gpu\\白鹭霜华测试样例(去文件管理器地址栏拷就行了)。")+ "<br>" + \
|
||||
i18n("模型分为三类:") + "<br>" + \
|
||||
i18n("1、保留人声:不带和声的音频选这个,对主人声保留比HP5更好。内置HP2和HP3两个模型,HP3可能轻微漏伴奏但对主人声保留比HP2稍微好一丁点;") + "<br>" + \
|
||||
@@ -131,10 +141,11 @@ with gr.Blocks(title="UVR5 WebUI") as app:
|
||||
i18n("去混响/去延迟,附:") + "<br>" + \
|
||||
i18n("1、DeEcho-DeReverb模型的耗时是另外2个DeEcho模型的接近2倍;") + "<br>" + \
|
||||
i18n("2、MDX-Net-Dereverb模型挺慢的;") + "<br>" + \
|
||||
i18n("3、个人推荐的最干净的配置是先MDX-Net再DeEcho-Aggressive。")
|
||||
i18n("3、个人推荐的最干净的配置是先MDX-Net再DeEcho-Aggressive。"),'h4')
|
||||
)
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
model_choose = gr.Dropdown(label=i18n("模型"), choices=uvr5_names)
|
||||
dir_wav_input = gr.Textbox(
|
||||
label=i18n("输入待处理音频文件夹路径"),
|
||||
placeholder="C:\\Users\\Desktop\\todo-songs",
|
||||
@@ -143,7 +154,6 @@ with gr.Blocks(title="UVR5 WebUI") as app:
|
||||
file_count="multiple", label=i18n("也可批量输入音频文件, 二选一, 优先读文件夹")
|
||||
)
|
||||
with gr.Column():
|
||||
model_choose = gr.Dropdown(label=i18n("模型"), choices=uvr5_names)
|
||||
agg = gr.Slider(
|
||||
minimum=0,
|
||||
maximum=20,
|
||||
@@ -165,8 +175,11 @@ with gr.Blocks(title="UVR5 WebUI") as app:
|
||||
value="flac",
|
||||
interactive=True,
|
||||
)
|
||||
but2 = gr.Button(i18n("转换"), variant="primary")
|
||||
vc_output4 = gr.Textbox(label=i18n("输出信息"))
|
||||
with gr.Column():
|
||||
with gr.Row():
|
||||
but2 = gr.Button(i18n("转换"), variant="primary")
|
||||
with gr.Row():
|
||||
vc_output4 = gr.Textbox(label=i18n("输出信息"),lines=3)
|
||||
but2.click(
|
||||
uvr,
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user