import os import gradio as gr lang_dict = {"EN(英文)": "_en", "ZH(中文)": "_zh", "JP(日语)": "_jp"} def raw_dir_convert_to_path(target_dir: str, lang): res = target_dir.rstrip("/").rstrip("\\") if (not target_dir.startswith("raw")) and (not target_dir.startswith("./raw")): res = os.path.join("./raw", res) if ( (not res.endswith("_zh")) and (not res.endswith("_jp")) and (not res.endswith("_en")) ): res += lang_dict[lang] return res def update_g_files(): g_files = [] cnt = 0 for root, dirs, files in os.walk(os.path.abspath("./logs")): for file in files: if file.startswith("G_") and file.endswith(".pth"): g_files.append(os.path.join(root, file)) cnt += 1 print(g_files) return f"更新模型列表完成, 共找到{cnt}个模型", gr.Dropdown.update(choices=g_files) def update_c_files(): c_files = [] cnt = 0 for root, dirs, files in os.walk(os.path.abspath("./logs")): for file in files: if file.startswith("config.json"): c_files.append(os.path.join(root, file)) cnt += 1 print(c_files) return f"更新模型列表完成, 共找到{cnt}个配置文件", gr.Dropdown.update(choices=c_files) def update_model_folders(): subdirs = [] cnt = 0 for root, dirs, files in os.walk(os.path.abspath("./logs")): for dir_name in dirs: if os.path.basename(dir_name) != "eval": subdirs.append(os.path.join(root, dir_name)) cnt += 1 print(subdirs) return f"更新模型文件夹列表完成, 共找到{cnt}个文件夹", gr.Dropdown.update(choices=subdirs) def update_wav_lab_pairs(): wav_count = tot_count = 0 for root, _, files in os.walk("./raw"): for file in files: # print(file) file_path = os.path.join(root, file) if file.lower().endswith(".wav"): lab_file = os.path.splitext(file_path)[0] + ".lab" if os.path.exists(lab_file): wav_count += 1 tot_count += 1 return f"{wav_count} / {tot_count}" def update_raw_folders(): subdirs = [] cnt = 0 script_path = os.path.dirname(os.path.abspath(__file__)) # 获取当前脚本的绝对路径 raw_path = os.path.join(script_path, "raw") print(raw_path) os.makedirs(raw_path, exist_ok=True) for root, dirs, files in os.walk(raw_path): for dir_name in dirs: relative_path = os.path.relpath( os.path.join(root, dir_name), script_path ) # 获取相对路径 subdirs.append(relative_path) cnt += 1 print(subdirs) return ( f"更新raw音频文件夹列表完成, 共找到{cnt}个文件夹", gr.Dropdown.update(choices=subdirs), gr.Textbox.update(value=update_wav_lab_pairs()), )