Spaces:
Sleeping
Sleeping
| 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() | |