| import gradio as gr |
| from gtts import gTTS |
| import os |
|
|
| def text_to_speech(text, lang): |
| if not text: |
| return None |
| |
| |
| lang_map = { |
| "中文 (Chinese)": "zh-CN", |
| "英语 (English)": "en", |
| "法语 (French)": "fr", |
| "日语 (Japanese)": "ja", |
| "德语 (German)": "de", |
| "西班牙语 (Spanish)": "es" |
| } |
| |
| selected_lang = lang_map.get(lang, "en") |
| |
| |
| tts = gTTS(text=text, lang=selected_lang) |
| output_file = "output.mp3" |
| tts.save(output_file) |
| |
| return output_file |
|
|
| |
| iface = gr.Interface( |
| fn=text_to_speech, |
| inputs=[ |
| gr.Textbox(label="请输入文字", placeholder="在这里输入你想转换的内容..."), |
| gr.Dropdown( |
| choices=["中文 (Chinese)", "英语 (English)", "法语 (French)", "日语 (Japanese)", "德语 (German)", "西班牙语 (Spanish)"], |
| label="选择语种", |
| value="中文 (Chinese)" |
| ) |
| ], |
| outputs=gr.Audio(label="生成声音", type="filepath"), |
| title="多语种文字转语音 (TTS) 工具", |
| description="输入文字并选择语言,点击提交即可生成并下载语音文件。" |
| ) |
|
|
| if __name__ == "__main__": |
| iface.launch() |