app.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import gradio as gr
  2. HEADER_MD = """
  3. # Fish Speech
  4. 基于 VITS 和 GPT 的多语种语音合成. 项目很大程度上基于 Rcell 的 GPT-VITS.
  5. """
  6. with gr.Blocks(theme=gr.themes.Base()) as app:
  7. gr.Markdown(HEADER_MD)
  8. with gr.Row():
  9. with gr.Column(scale=5):
  10. text = gr.Textbox(lines=5, label="输入文本")
  11. with gr.Row():
  12. with gr.Tab(label="合成参数"):
  13. gr.Markdown("配置常见的合成参数.")
  14. input_mode = gr.Dropdown(
  15. choices=["手动输入音素/文本", "自动音素转换"],
  16. value="手动输入音素/文本",
  17. label="输入模式",
  18. )
  19. with gr.Tab(label="语言优先级"):
  20. gr.Markdown("该参数只在自动音素转换时生效.")
  21. with gr.Column(scale=1):
  22. language0 = gr.Dropdown(
  23. choices=["中文", "日文", "英文", "无"],
  24. label="语言 1",
  25. value="中文",
  26. )
  27. with gr.Column(scale=1):
  28. language1 = gr.Dropdown(
  29. choices=["中文", "日文", "英文", "无"],
  30. label="语言 2",
  31. value="英文",
  32. )
  33. with gr.Column(scale=1):
  34. language2 = gr.Dropdown(
  35. choices=["中文", "日文", "英文", "无"],
  36. label="语言 3",
  37. value="无",
  38. )
  39. with gr.Row():
  40. with gr.Column(scale=2):
  41. generate = gr.Button(value="合成", variant="primary")
  42. with gr.Column(scale=1):
  43. clear = gr.Button(value="清空")
  44. with gr.Column(scale=3):
  45. audio = gr.Audio(label="合成音频")
  46. generate.click(lambda: None, [input_mode], [audio])
  47. # dark_mode.link(lambda val: app.set_theme(gr.themes.Dark() if val else gr.themes.Default()))
  48. if __name__ == "__main__":
  49. app.launch(show_api=False)