smartwang commited on
Commit
4e8eacf
·
1 Parent(s): 27ddaa6
Files changed (1) hide show
  1. app.py +53 -0
app.py CHANGED
@@ -316,6 +316,59 @@ def build_ui():
316
  prompt_audio_out = gr.Audio(label="生成音频", type="numpy")
317
  prompt_status = gr.Textbox(label="状态", interactive=False)
318
  prompt_btn.click(generate_voice_clone_from_prompt_file, inputs=[prompt_file, prompt_target_text, prompt_language], outputs=[prompt_audio_out, prompt_status])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  return demo
320
 
321
  if __name__ == "__main__":
 
316
  prompt_audio_out = gr.Audio(label="生成音频", type="numpy")
317
  prompt_status = gr.Textbox(label="状态", interactive=False)
318
  prompt_btn.click(generate_voice_clone_from_prompt_file, inputs=[prompt_file, prompt_target_text, prompt_language], outputs=[prompt_audio_out, prompt_status])
319
+ gr.Markdown("---")
320
+
321
+ # Section 3: Traditional Voice Clone (Original)
322
+ gr.Markdown("### 3. 传统音色克隆(直接使用参考音频)")
323
+ gr.Markdown("直接上传参考音频生成语音(每次都需要提取特征)。")
324
+ with gr.Row():
325
+ with gr.Column(scale=2):
326
+ clone_ref_audio = gr.Audio(
327
+ label="参考音频",
328
+ type="numpy",
329
+ )
330
+ clone_ref_text = gr.Textbox(
331
+ label="参考文本",
332
+ lines=2,
333
+ placeholder="输入参考音频中的确切文字...",
334
+ )
335
+ clone_xvector = gr.Checkbox(
336
+ label="仅使用 x-vector",
337
+ value=False,
338
+ )
339
+
340
+ with gr.Column(scale=2):
341
+ clone_target_text = gr.Textbox(
342
+ label="目标文本",
343
+ lines=4,
344
+ placeholder="输入要让克隆音色说话的文字...",
345
+ )
346
+ with gr.Row():
347
+ clone_language = gr.Dropdown(
348
+ label="语言",
349
+ choices=LANGUAGES,
350
+ value="Auto",
351
+ interactive=True,
352
+ )
353
+ clone_model_size = gr.Dropdown(
354
+ label="模型大小",
355
+ choices=MODEL_SIZES,
356
+ value="1.7B",
357
+ interactive=True,
358
+ )
359
+ clone_btn = gr.Button("克隆并生成", variant="primary")
360
+
361
+ with gr.Row():
362
+ clone_audio_out = gr.Audio(label="生成的音频", type="numpy")
363
+ clone_status = gr.Textbox(label="状态", lines=2, interactive=False)
364
+
365
+ clone_btn.click(
366
+ generate_voice_clone,
367
+ inputs=[clone_ref_audio, clone_ref_text, clone_target_text, clone_language, clone_xvector, clone_model_size],
368
+ outputs=[clone_audio_out, clone_status],
369
+ api_name="generate_voice_clone"
370
+ )
371
+
372
  return demo
373
 
374
  if __name__ == "__main__":