import gradio as gr import pandas as pd import os import warnings from gtts import gTTS from deep_translator import GoogleTranslator from langdetect import detect # Load language dataset dataset = pd.read_csv("language.csv") dataset.dropna(inplace=True) # Extract language names and codes langlist = tuple(dataset['name'].tolist()) langcode = dataset['iso'].tolist() lang_array = {langlist[i]: langcode[i] for i in range(len(langlist))} speech_langs = {"en": "English", "es": "Spanish", "fr": "French", "de": "German", "hi": "Hindi", "zh-CN": "Chinese", "te": "Telugu"} # Function to translate and speak def translate_and_speak(text, selected_option): if len(text) > 0: try: detected_lang = detect(text) # Detect input language source_lang = "en" if detected_lang == "en" else detected_lang # Handle Tanglish translator = GoogleTranslator(source=source_lang, target=lang_array[selected_option]) output = translator.translate(text) audio_file = None if lang_array[selected_option] in speech_langs: tts = gTTS(text=output, lang=lang_array[selected_option], slow=False) audio_file = "translated_audio.mp3" tts.save(audio_file) return output, audio_file except Exception as e: return str(e), None return "", None # Gradio UI demo = gr.Interface( fn=translate_and_speak, inputs=[gr.Textbox(label="Write Your Text"), gr.Dropdown(choices=list(langlist), label="Select Language to Translate")], outputs=[gr.Textbox(label="Translated Text"), gr.Audio(label="Translated Audio")], title="Language Translation App", description="Translate text into different languages." ) demo.launch()