Spaces:
Running
Running
import streamlit as st | |
from googletrans import Translator | |
from gtts import gTTS | |
from IPython.display import Audio | |
# Create an instance of Translator | |
translator = Translator() | |
# Set up the Streamlit app | |
st.title("Translator") | |
st.write("Enter text in the box below and select the language to translate to.") | |
# Create a text input box for the user to enter text | |
text = st.text_input("Enter text here:") | |
# Create a dropdown menu for selecting the language to translate to | |
languages = { | |
"Afrikaans": "af", | |
"Arabic": "ar", | |
"Bengali": "bn", | |
"Chinese (Simplified)": "zh-cn", | |
"Chinese (Traditional)": "zh-tw", | |
"Dutch": "nl", | |
"English": "en", | |
"French": "fr", | |
"German": "de", | |
"Greek": "el", | |
"Hindi": "hi", | |
"Italian": "it", | |
"Japanese": "ja", | |
"Korean": "ko", | |
"Portuguese": "pt", | |
"Russian": "ru", | |
"Spanish": "es", | |
"Swedish": "sv", | |
"Turkish": "tr" | |
} | |
target_language = st.selectbox("Select language:", list(languages.keys())) | |
# Translate the text when the user clicks the "Translate" button | |
if st.button("Translate"): | |
if text: | |
translation = translator.translate(text, dest=languages[target_language]) | |
st.write(f"Translated text ({target_language}):") | |
st.write(translation.text) | |
# Generate audio file of translated text | |
tts = gTTS(text=translation.text, lang=languages[target_language]) | |
audio_file = "translation.mp3" | |
tts.save(audio_file) | |
# Display audio player in the app | |
audio_bytes = open(audio_file, "rb").read() | |
st.audio(audio_bytes, format="audio/mpeg") | |
else: | |
st.write("Please enter some text to translate.") | |