vincenthugging commited on
Commit
d9e15de
·
1 Parent(s): caa0c9b

修复音频预设机制 - 组件初始化时直接设置默认值

Browse files

解决 HF Spaces 环境中音频显示为 object Object 的问题:
1. 在 gr.Audio 组件创建时直接设置 value 参数
2. 在 gr.TextArea 组件创建时直接设置默认文本
3. 移除复杂的 demo.load 事件机制
4. 添加文件存在性检查和错误处理
5. 说话者1和说话者2分别独立处理

现在用户打开页面应该能立即看到预填充的音频波形和文本内容

Files changed (1) hide show
  1. app.py +65 -29
app.py CHANGED
@@ -513,26 +513,72 @@ def create_space_ui() -> gr.Blocks:
513
  with gr.Row():
514
  with gr.Group():
515
  gr.Markdown("### 🎵 说话者1 (女声)")
516
- speaker1_audio = gr.Audio(
517
- label="参考音频",
518
- type="filepath"
519
- )
520
- speaker1_text = gr.TextArea(
521
- label="参考文本",
522
- lines=2,
523
- placeholder="请输入与参考音频内容完全匹配的文本..."
524
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  with gr.Group():
526
  gr.Markdown("### 🎵 说话者2 (男声)")
527
- speaker2_audio = gr.Audio(
528
- label="参考音频",
529
- type="filepath"
530
- )
531
- speaker2_text = gr.TextArea(
532
- label="参考文本",
533
- lines=2,
534
- placeholder="请输入与参考音频内容完全匹配的文本..."
535
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
 
537
  with gr.Group():
538
  gr.Markdown("### ⚙️ 设置")
@@ -646,17 +692,7 @@ def create_space_ui() -> gr.Blocks:
646
  gr.Error(f"❌ 加载默认音频时出错: {str(e)}")
647
  return gr.update(), gr.update(), gr.update(), gr.update(), gr.update()
648
 
649
- # 页面加载时自动填充默认内容,实现真正的开箱即用
650
- def auto_load_on_startup():
651
- """页面加载时自动执行默认音频加载"""
652
- print("🚀 页面加载,自动填充默认内容...")
653
- return load_default_audio()
654
-
655
- # 绑定页面加载事件 - 实现音频预设
656
- demo.load(
657
- fn=auto_load_on_startup,
658
- outputs=[dialogue_text, speaker1_audio, speaker1_text, speaker2_audio, speaker2_text],
659
- )
660
 
661
  btn_load_scenario.click(
662
  fn=on_load_scenario,
 
513
  with gr.Row():
514
  with gr.Group():
515
  gr.Markdown("### 🎵 说话者1 (女声)")
516
+ # 尝试预设默认音频
517
+ try:
518
+ default_audio1 = DEFAULT_AUDIO_CONFIG["speaker1"]["audio"]
519
+ default_text1 = DEFAULT_AUDIO_CONFIG["speaker1"]["text"]
520
+ if os.path.exists(default_audio1):
521
+ speaker1_audio = gr.Audio(
522
+ label="参考音频",
523
+ type="filepath",
524
+ value=default_audio1
525
+ )
526
+ else:
527
+ speaker1_audio = gr.Audio(
528
+ label="参考音频",
529
+ type="filepath"
530
+ )
531
+ speaker1_text = gr.TextArea(
532
+ label="参考文本",
533
+ lines=2,
534
+ placeholder="请输入与参考音频内容完全匹配的文本...",
535
+ value=default_text1
536
+ )
537
+ except Exception as e:
538
+ print(f"⚠️ 无法预设说话者1默认内容: {e}")
539
+ speaker1_audio = gr.Audio(
540
+ label="参考音频",
541
+ type="filepath"
542
+ )
543
+ speaker1_text = gr.TextArea(
544
+ label="参考文本",
545
+ lines=2,
546
+ placeholder="请输入与参考音频内容完全匹配的文本..."
547
+ )
548
  with gr.Group():
549
  gr.Markdown("### 🎵 说话者2 (男声)")
550
+ # 尝试预设默认音频
551
+ try:
552
+ default_audio2 = DEFAULT_AUDIO_CONFIG["speaker2"]["audio"]
553
+ default_text2 = DEFAULT_AUDIO_CONFIG["speaker2"]["text"]
554
+ if os.path.exists(default_audio2):
555
+ speaker2_audio = gr.Audio(
556
+ label="参考音频",
557
+ type="filepath",
558
+ value=default_audio2
559
+ )
560
+ else:
561
+ speaker2_audio = gr.Audio(
562
+ label="参考音频",
563
+ type="filepath"
564
+ )
565
+ speaker2_text = gr.TextArea(
566
+ label="参考文本",
567
+ lines=2,
568
+ placeholder="请输入与参考音频内容完全匹配的文本...",
569
+ value=default_text2
570
+ )
571
+ except Exception as e:
572
+ print(f"⚠️ 无法预设说话者2默认内容: {e}")
573
+ speaker2_audio = gr.Audio(
574
+ label="参考音频",
575
+ type="filepath"
576
+ )
577
+ speaker2_text = gr.TextArea(
578
+ label="参考文本",
579
+ lines=2,
580
+ placeholder="请输入与参考音频内容完全匹配的文本..."
581
+ )
582
 
583
  with gr.Group():
584
  gr.Markdown("### ⚙️ 设置")
 
692
  gr.Error(f"❌ 加载默认音频时出错: {str(e)}")
693
  return gr.update(), gr.update(), gr.update(), gr.update(), gr.update()
694
 
695
+ # 组件已在初始化时设置默认值,无需额外的加载事件
 
 
 
 
 
 
 
 
 
 
696
 
697
  btn_load_scenario.click(
698
  fn=on_load_scenario,