| import gradio as gr |
| from modules.webui.webui_utils import ( |
| synthesize_ssml, |
| ) |
| from modules.webui import webui_config |
| from modules.webui.examples import ssml_examples, default_ssml |
|
|
|
|
| def create_ssml_interface(): |
| with gr.Row(): |
| with gr.Column(scale=3): |
| with gr.Group(): |
| gr.Markdown("📝SSML Input") |
| gr.Markdown(f"- 最长{webui_config.ssml_max:,}字符,超过会被截断") |
| gr.Markdown("- 尽量保证使用相同的 seed") |
| gr.Markdown( |
| "- 关于SSML可以看这个 [文档](https://github.com/lenML/ChatTTS-Forge/blob/main/docs/SSML.md)" |
| ) |
| ssml_input = gr.Textbox( |
| label="SSML Input", |
| lines=10, |
| value=default_ssml, |
| placeholder="输入 SSML 或选择示例", |
| elem_id="ssml_input", |
| show_label=False, |
| ) |
| ssml_button = gr.Button("🔊Synthesize SSML", variant="primary") |
| with gr.Column(scale=1): |
| with gr.Group(): |
| |
| gr.Markdown("🎛️Parameters") |
| |
| batch_size_input = gr.Slider( |
| label="Batch Size", |
| value=4, |
| minimum=1, |
| maximum=webui_config.max_batch_size, |
| step=1, |
| ) |
| with gr.Group(): |
| gr.Markdown("🎄Examples") |
| gr.Examples( |
| examples=ssml_examples, |
| inputs=[ssml_input], |
| ) |
|
|
| ssml_output = gr.Audio(label="Generated Audio", format="mp3") |
|
|
| ssml_button.click( |
| synthesize_ssml, |
| inputs=[ssml_input, batch_size_input], |
| outputs=ssml_output, |
| ) |
|
|
| return ssml_input |
|
|