File size: 1,704 Bytes
7ac3970
 
 
 
 
 
 
 
 
e43775a
7ac3970
 
 
 
 
 
 
 
 
 
 
 
 
0e000b2
7ac3970
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2f81b86
7ac3970
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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.")