File size: 1,695 Bytes
a2e1a22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
import tempfile
import gradio as gr
from neon_tts_plugin_coqui import CoquiTTS
LANGUAGES = list(CoquiTTS.langs.keys())
default_lang = "en"
title = "ChatGPTBots.net | TTS"
description = "A deep learning toolkit for Text-to-Speech, battle-tested in research and production"
info = "More info at [TTS](https://chatgptbots.net)"
coquiTTS = CoquiTTS()
def tts(text: str, language: str):
print(text, language)
# return output
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
coquiTTS.get_tts(text, fp, speaker = {"language" : language})
return fp.name
with gr.Blocks() as blocks:
gr.Markdown("<h1 style='text-align: center; margin-bottom: 1rem'>"
+ title
+ "</h1>")
gr.Markdown(description)
with gr.Row():# equal_height=False
with gr.Column():# variant="panel"
textbox = gr.Textbox(
label="Input",
value=CoquiTTS.langs[default_lang]["sentence"],
max_lines=3,
)
radio = gr.Radio(
label="Language",
choices=LANGUAGES,
value=default_lang
)
with gr.Row():# mobile_collapse=False
submit = gr.Button("Submit", variant="primary")
audio = gr.Audio(label="Output", interactive=False)
gr.Markdown(info)
gr.Markdown("<center>"
+f'<img src={badge} alt="visitors badge"/>'
+"</center>")
# actions
submit.click(
tts,
[textbox, radio],
[audio],
)
radio.change(lambda lang: CoquiTTS.langs[lang]["sentence"], radio, textbox)
blocks.launch() |