atsushieee commited on
Commit
11646d7
·
1 Parent(s): 770369d

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +113 -5
main.py CHANGED
@@ -28,8 +28,116 @@ data = {
28
 
29
  df = pd.DataFrame(data)
30
 
31
- # 入力音声のアップロード
32
- input_audio = gr.Audio(
33
- label="変換したい音声をアップロード",
34
- type="filepath" # ファイルパスとして取得
35
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  df = pd.DataFrame(data)
30
 
31
+ def create_plot():
32
+ fig = px.scatter(df, x='x', y='y', text='id',
33
+ title='Interactive Numeric Scatter Plot')
34
+
35
+ # マーカーのスタイルを設定(紫系の色に設定)
36
+ fig.update_traces(
37
+ marker=dict(
38
+ size=10,
39
+ color='#663399', # 紫色
40
+ line=dict(color='#4B0082', width=1) # より暗い紫の境界線
41
+ ),
42
+ textposition='top center'
43
+ )
44
+
45
+ # レイアウトの設定
46
+ fig.update_layout(
47
+ height=600,
48
+ width=800,
49
+ clickmode='event+select',
50
+ plot_bgcolor='#eeeeee',
51
+ paper_bgcolor='white',
52
+ xaxis=dict(
53
+ showgrid=True,
54
+ zeroline=True,
55
+ range=[-35, 35] # x軸の範囲を設定
56
+ ),
57
+ yaxis=dict(
58
+ showgrid=True,
59
+ zeroline=True,
60
+ range=[-30, 30] # y軸の範囲を設定
61
+ )
62
+ )
63
+
64
+ return fig
65
+
66
+ def run_main(audio_file, shift, speaker_id):
67
+ # 固定の引数を設定
68
+ class Args:
69
+ pass
70
+
71
+ args = Args()
72
+ args.config = "configs/base.yaml"
73
+ args.model = "./vits_pretrain/sovits5.0.pretrain.pth"
74
+ speaker_str = f"{speaker_id:04d}"
75
+ args.spk = f"./configs/singers/singer{speaker_str}.npy"
76
+ args.wave = audio_file
77
+ print(audio_file)
78
+ args.shift = shift
79
+
80
+ # オプショナルパラメータのデフォルト値設定
81
+ args.ppg = None
82
+ args.vec = None
83
+ args.pit = None
84
+ args.enable_retrieval = False
85
+ args.retrieval_index_prefix = ""
86
+ args.retrieval_ratio = 0.5
87
+ args.n_retrieval_vectors = 3
88
+ args.hubert_index_path = None
89
+ args.whisper_index_path = None
90
+ args.debug = False
91
+
92
+ try:
93
+ main(args)
94
+ return "svc_out.wav" # 音声ファイルのパスを返す
95
+ except Exception as e:
96
+ return None
97
+
98
+ # Gradio インターフェースの作成
99
+ with gr.Blocks() as demo:
100
+ gr.Markdown("# SVC 音声変換システム")
101
+
102
+ with gr.Row():
103
+ with gr.Column(scale=1.15):
104
+ plot = gr.Plot(value=create_plot())
105
+
106
+ with gr.Column(scale=1):
107
+ # 入力音声のアップロード
108
+ input_audio = gr.Audio(
109
+ label="変換したい音声をアップロード",
110
+ type="filepath" # ファイルパスとして取得
111
+ )
112
+ # Speaker ID の選択
113
+ speaker_id = gr.Number(
114
+ label="Speaker ID (1-56)",
115
+ value=1,
116
+ minimum=1,
117
+ maximum=56,
118
+ step=1
119
+ )
120
+ # Pitch シフトのスライダー
121
+ shift = gr.Slider(
122
+ minimum=-12,
123
+ maximum=12,
124
+ value=0,
125
+ step=1,
126
+ label="Pitch Shift(-12から+12の半音)"
127
+ )
128
+ # ボタン
129
+ run_btn = gr.Button(value="音声変換を実行", variant="primary", size="lg")
130
+
131
+ # 出力表示用
132
+ output_audio = gr.Audio(label="変換後の音声")
133
+
134
+
135
+ run_btn.click(
136
+ fn=run_main,
137
+ inputs=[input_audio, shift, speaker_id],
138
+ outputs=[output_audio]
139
+ )
140
+
141
+ # アプリケーションの起動
142
+ if __name__ == "__main__":
143
+ demo.launch()