my-telegram-bot / gradio_app.py
omar1232's picture
Create gradio_app.py
756e72d verified
import gradio as gr
from deep_translator import GoogleTranslator
from gtts import gTTS
import tempfile
# Supported languages
languages = {
"English": "en",
"Arabic": "ar",
"German": "de"
}
# Translation function
def translate_text(input_text, source_lang, target_lang):
if not input_text:
return "", None
source_code = languages[source_lang]
target_code = languages[target_lang]
translation = GoogleTranslator(source=source_code, target=target_code).translate(input_text)
# Generate audio
tts = gTTS(translation, lang=target_code)
tmp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
tts.save(tmp_file.name)
return translation, tmp_file.name
# Gradio UI
with gr.Blocks(title="Multi-Language Translator") as demo:
gr.Markdown("# ๐ŸŒ Multi-Language Translator\nTranslate between English, Arabic, and German with audio pronunciation!")
with gr.Row():
source_text = gr.Textbox(label="Enter text to translate", placeholder="Type here...")
with gr.Row():
source_lang = gr.Dropdown(choices=list(languages.keys()), label="Source Language", value="English")
target_lang = gr.Dropdown(choices=list(languages.keys()), label="Target Language", value="Arabic")
translate_button = gr.Button("Translate")
output_text = gr.Textbox(label="Translated Text", interactive=False)
output_audio = gr.Audio(label="Pronunciation", interactive=False)
translate_button.click(translate_text, inputs=[source_text, source_lang, target_lang], outputs=[output_text, output_audio])
demo.launch()