Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import os
|
| 4 |
+
import warnings
|
| 5 |
+
from gtts import gTTS
|
| 6 |
+
from deep_translator import GoogleTranslator
|
| 7 |
+
from langdetect import detect
|
| 8 |
+
|
| 9 |
+
# Load language dataset
|
| 10 |
+
dataset = pd.read_csv(r"C:\Users\thila\Downloads\NARESH IT PYTHON FSDS NOTES\MY PROJECTS\Language Translation\language.csv")
|
| 11 |
+
dataset.dropna(inplace=True)
|
| 12 |
+
|
| 13 |
+
# Extract language names and codes
|
| 14 |
+
langlist = tuple(dataset['name'].tolist())
|
| 15 |
+
langcode = dataset['iso'].tolist()
|
| 16 |
+
lang_array = {langlist[i]: langcode[i] for i in range(len(langlist))}
|
| 17 |
+
|
| 18 |
+
speech_langs = {"en": "English", "es": "Spanish", "fr": "French", "de": "German", "hi": "Hindi", "zh-CN": "Chinese", "te": "Telugu"}
|
| 19 |
+
|
| 20 |
+
# Function to translate and speak
|
| 21 |
+
def translate_and_speak(text, selected_option):
|
| 22 |
+
if len(text) > 0:
|
| 23 |
+
try:
|
| 24 |
+
detected_lang = detect(text) # Detect input language
|
| 25 |
+
source_lang = "en" if detected_lang == "en" else detected_lang # Handle Tanglish
|
| 26 |
+
|
| 27 |
+
translator = GoogleTranslator(source=source_lang, target=lang_array[selected_option])
|
| 28 |
+
output = translator.translate(text)
|
| 29 |
+
|
| 30 |
+
audio_file = None
|
| 31 |
+
if lang_array[selected_option] in speech_langs:
|
| 32 |
+
tts = gTTS(text=output, lang=lang_array[selected_option], slow=False)
|
| 33 |
+
audio_file = "translated_audio.mp3"
|
| 34 |
+
tts.save(audio_file)
|
| 35 |
+
|
| 36 |
+
return output, audio_file
|
| 37 |
+
except Exception as e:
|
| 38 |
+
return str(e), None
|
| 39 |
+
return "", None
|
| 40 |
+
|
| 41 |
+
# Gradio UI
|
| 42 |
+
demo = gr.Interface(
|
| 43 |
+
fn=translate_and_speak,
|
| 44 |
+
inputs=[gr.Textbox(label="Write Your Text"), gr.Dropdown(choices=list(langlist), label="Select Language to Translate")],
|
| 45 |
+
outputs=[gr.Textbox(label="Translated Text"), gr.Audio(label="Translated Audio")],
|
| 46 |
+
title="Language Translation App",
|
| 47 |
+
description="Translate text into different languages, including transliterated Telugu (Tanglish), and listen to the translation."
|
| 48 |
+
)
|
| 49 |
+
|
| 50 |
+
demo.launch()
|
| 51 |
+
|