atsushieee commited on
Commit
ad51a72
·
1 Parent(s): 3df32b6

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +16 -56
main.py CHANGED
@@ -4,38 +4,10 @@ import requests
4
  from tqdm import tqdm
5
 
6
  from svc_inference import main
 
7
 
8
- def check_and_download_model():
9
- temp_dir = "/tmp"
10
- model_path = os.path.join(temp_dir, "large-v2.pt")
11
-
12
- if os.path.exists(model_path):
13
- return f"モデルは既に存在します: {model_path}"
14
-
15
- url = "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt"
16
-
17
- try:
18
- response = requests.get(url, stream=True)
19
- response.raise_for_status()
20
- total_size = int(response.headers.get('content-length', 0))
21
-
22
- with open(model_path, 'wb') as f, tqdm(
23
- desc=model_path,
24
- total=total_size,
25
- unit='iB',
26
- unit_scale=True,
27
- unit_divisor=1024,
28
- ) as pbar:
29
- for data in response.iter_content(chunk_size=1024):
30
- size = f.write(data)
31
- pbar.update(size)
32
-
33
- return f"モデルのダウンロードが完了しました: {model_path}"
34
-
35
- except Exception as e:
36
- return f"エラーが発生しました: {e}"
37
 
38
- def run_main(shift):
39
  # 固定の引数を設定
40
  class Args:
41
  pass
@@ -44,7 +16,7 @@ def run_main(shift):
44
  args.config = "configs/base.yaml"
45
  args.model = "./vits_pretrain/sovits5.0.pretrain.pth"
46
  args.spk = "./configs/singers/singer0001.npy"
47
- args.wave = "test.wav"
48
  args.shift = shift
49
 
50
  # オプショナルパラメータのデフォルト値設定
@@ -61,23 +33,19 @@ def run_main(shift):
61
 
62
  try:
63
  main(args)
64
- return "処理が完了しました。", "svc_out.wav" # 音声ファイルのパスを返す
65
  except Exception as e:
66
- return f"エラーが発生しました: {str(e)}", None
67
 
68
  # Gradio インターフェースの作成
69
  with gr.Blocks() as demo:
70
  gr.Markdown("# SVC 音声変換システム")
71
- gr.Markdown("## 設定されているパラメータ")
72
- gr.Markdown("""
73
- - Config: configs/base.yaml
74
- - Model: ./vits_pretrain/sovits5.0.pretrain.pth
75
- - Speaker: ./configs/singers/singer0001.npy
76
- - Input Wave: test.wav
77
- """)
78
 
79
- # 入力音声の表示
80
- gr.Audio("test.wav", label="入力音声")
 
 
 
81
 
82
  # Pitch シフトのスライダー
83
  shift = gr.Slider(
@@ -88,27 +56,19 @@ with gr.Blocks() as demo:
88
  label="Pitch Shift(-12から+12の半音)"
89
  )
90
 
 
 
 
91
  # 出力表示用
92
- output_text = gr.Text(label="処理結果")
93
  output_audio = gr.Audio(label="変換後の音声")
94
 
95
- # ボタン
96
- with gr.Row():
97
- check_btn = gr.Button(value="モデルを確認する", variant="secondary", size="lg")
98
- run_btn = gr.Button(value="音声変換を実行", variant="primary", size="lg")
99
-
100
- # イベント設定
101
- check_btn.click(
102
- fn=check_and_download_model,
103
- outputs=output_text
104
- )
105
 
106
  run_btn.click(
107
  fn=run_main,
108
- inputs=[shift],
109
- outputs=[output_text, output_audio]
110
  )
111
 
112
  # アプリケーションの起動
113
  if __name__ == "__main__":
114
- demo.launch()
 
4
  from tqdm import tqdm
5
 
6
  from svc_inference import main
7
+ from whisper.inference import check_and_download_model
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
+ def run_main(audio_file,shift):
11
  # 固定の引数を設定
12
  class Args:
13
  pass
 
16
  args.config = "configs/base.yaml"
17
  args.model = "./vits_pretrain/sovits5.0.pretrain.pth"
18
  args.spk = "./configs/singers/singer0001.npy"
19
+ args.wave = audio_file
20
  args.shift = shift
21
 
22
  # オプショナルパラメータのデフォルト値設定
 
33
 
34
  try:
35
  main(args)
36
+ return "svc_out.wav" # 音声ファイルのパスを返す
37
  except Exception as e:
38
+ return None
39
 
40
  # Gradio インターフェースの作成
41
  with gr.Blocks() as demo:
42
  gr.Markdown("# SVC 音声変換システム")
 
 
 
 
 
 
 
43
 
44
+ # 入力音声のアップロード
45
+ input_audio = gr.Audio(
46
+ label="変換したい音声をアップロード",
47
+ type="filepath" # ファイルパスとして取得
48
+ )
49
 
50
  # Pitch シフトのスライダー
51
  shift = gr.Slider(
 
56
  label="Pitch Shift(-12から+12の半音)"
57
  )
58
 
59
+ # ボタン
60
+ run_btn = gr.Button(value="音声変換を実行", variant="primary", size="lg")
61
+
62
  # 出力表示用
 
63
  output_audio = gr.Audio(label="変換後の音声")
64
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  run_btn.click(
67
  fn=run_main,
68
+ inputs=[input_audio, shift],
69
+ outputs=[output_audio]
70
  )
71
 
72
  # アプリケーションの起動
73
  if __name__ == "__main__":
74
+ demo.launch()