kkvc-hf/Style-Bert-VITS2-AS2
1
1import argparse2from pathlib import Path3 4import datetime5import json6import os7import sys8from typing import Optional9from huggingface_hub import hf_hub_download10def get_dataset_pytorch_model(local_dir):11 os.makedirs(local_dir, exist_ok=True)12 hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/pytorch_model.bin", local_dir=local_dir, repo_type="dataset")13 14get_dataset_pytorch_model("bert/chinese-roberta-wwm-ext-large")15get_dataset_pytorch_model("bert/deberta-v2-large-japanese-char-wwm")16get_dataset_pytorch_model("bert/deberta-v3-large")17get_dataset_pytorch_model("slm/wavlm-base-plus")18 19local_dir = "bert/deberta-v2-large-japanese-char-wwm"20os.makedirs(local_dir, exist_ok=True)21hf_hub_download("kkvc-hf/Style-Bert-VITS2-bert_deberta-v2-large-japanese-char-wwm", "pytorch_model.bin", local_dir=local_dir, repo_type="dataset")22 23local_dir = "pretrained"24os.makedirs(local_dir, exist_ok=True)25hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/D_0.safetensors", local_dir=local_dir, repo_type="dataset")26hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/G_0.safetensors", local_dir=local_dir, repo_type="dataset")27hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/DUR_0.safetensors", local_dir=local_dir, repo_type="dataset")28 29local_dir = "pretrained_jp_extra"30os.makedirs(local_dir, exist_ok=True)31hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/D_0.safetensors", local_dir=local_dir, repo_type="dataset")32hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/G_0.safetensors", local_dir=local_dir, repo_type="dataset")33hf_hub_download("kkvc-hf/Style-Bert-VITS2-Datasets", f"{local_dir}/WD_0.safetensors", local_dir=local_dir, repo_type="dataset")34 35import gradio as gr36import torch37 38from config import get_path_config39from gradio_tabs.dataset import create_dataset_app40from gradio_tabs.inference import create_inference_app41from gradio_tabs.merge import create_merge_app42from gradio_tabs.style_vectors import create_style_vectors_app43from gradio_tabs.train import create_train_app44from style_bert_vits2.constants import GRADIO_THEME, VERSION45from style_bert_vits2.nlp.japanese import pyopenjtalk_worker46from style_bert_vits2.nlp.japanese.user_dict import update_dict47from style_bert_vits2.tts_model import TTSModelHolder48 49 50# このプロセスからはワーカーを起動して辞書を使いたいので、ここで初期化51pyopenjtalk_worker.initialize_worker()52 53# dict_data/ 以下の辞書データを pyopenjtalk に適用54update_dict()55 56 57parser = argparse.ArgumentParser()58parser.add_argument("--device", type=str, default="cuda")59parser.add_argument("--host", type=str, default="127.0.0.1")60parser.add_argument("--port", type=int, default=None)61parser.add_argument("--no_autolaunch", action="store_true")62parser.add_argument("--share", action="store_true")63# parser.add_argument("--skip_default_models", action="store_true")64 65args = parser.parse_args()66device = args.device67if device == "cuda" and not torch.cuda.is_available():68 device = "cpu"69 70# if not args.skip_default_models:71# download_default_models()72 73path_config = get_path_config()74model_holder = TTSModelHolder(Path(path_config.assets_root), device)75 76with gr.Blocks(theme=GRADIO_THEME) as app:77 gr.Markdown(f"# Style-Bert-VITS2 WebUI (version {VERSION})")78 with gr.Tabs():79 with gr.Tab("音声合成"):80 create_inference_app(model_holder=model_holder)81 with gr.Tab("データセット作成"):82 create_dataset_app()83 with gr.Tab("学習"):84 create_train_app()85 with gr.Tab("スタイル作成"):86 create_style_vectors_app()87 with gr.Tab("マージ"):88 create_merge_app(model_holder=model_holder)89 90app.launch(91 #server_name=args.host,92 #server_port=args.port,93 inbrowser=not args.no_autolaunch,94 share=args.share,95)96 