Spaces:
Running
Running
| import gradio as gr | |
| import os | |
| import requests | |
| from tqdm import tqdm | |
| from svc_inference import main | |
| from whisper.inference import check_and_download_model | |
| def run_main(audio_file,shift): | |
| # 固定の引数を設定 | |
| class Args: | |
| pass | |
| args = Args() | |
| args.config = "configs/base.yaml" | |
| args.model = "./vits_pretrain/sovits5.0.pretrain.pth" | |
| args.spk = "./configs/singers/singer0001.npy" | |
| args.wave = audio_file | |
| args.shift = shift | |
| # オプショナルパラメータのデフォルト値設定 | |
| args.ppg = None | |
| args.vec = None | |
| args.pit = None | |
| args.enable_retrieval = False | |
| args.retrieval_index_prefix = "" | |
| args.retrieval_ratio = 0.5 | |
| args.n_retrieval_vectors = 3 | |
| args.hubert_index_path = None | |
| args.whisper_index_path = None | |
| args.debug = False | |
| try: | |
| main(args) | |
| return "svc_out.wav" # 音声ファイルのパスを返す | |
| except Exception as e: | |
| return None | |
| # Gradio インターフェースの作成 | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# SVC 音声変換システム") | |
| # 入力音声のアップロード | |
| input_audio = gr.Audio( | |
| label="変換したい音声をアップロード", | |
| type="filepath" # ファイルパスとして取得 | |
| ) | |
| # Pitch シフトのスライダー | |
| shift = gr.Slider( | |
| minimum=-12, | |
| maximum=12, | |
| value=0, | |
| step=1, | |
| label="Pitch Shift(-12から+12の半音)" | |
| ) | |
| # ボタン | |
| run_btn = gr.Button(value="音声変換を実行", variant="primary", size="lg") | |
| # 出力表示用 | |
| output_audio = gr.Audio(label="変換後の音声") | |
| run_btn.click( | |
| fn=run_main, | |
| inputs=[input_audio, shift], | |
| outputs=[output_audio] | |
| ) | |
| # アプリケーションの起動 | |
| if __name__ == "__main__": | |
| demo.launch() | |