File size: 1,695 Bytes
94eae23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import googletrans
from googletrans import Translator
from gtts import gTTS
import os

# Function to translate text
def translate_text(text, target_lang):
    translator = Translator()
    translated_text = translator.translate(text, dest=target_lang)
    return translated_text.text

# Function to convert text to speech
def text_to_speech(text, target_lang, voice_gender):
    lang = target_lang
    if target_lang == "hi":
        # Hindi does not support accents
        lang = "hi"

    tts = gTTS(text=text, lang=lang, slow=False, lang_check=False)
    tts.save("output.mp3")

# Main function to run the app
def main():
    st.title("Text-to-Speech Translation App")

    # Text input field
    input_text = st.text_area("Enter text to translate:", "")

    # Dropdown to select source and target languages
    source_lang = "en"  # Source language is English by default
    target_lang = st.selectbox("Select Target Language", googletrans.LANGUAGES.keys())

    # Radio button group to select voice gender
    voice_gender = st.radio("Select Voice Gender:", ("Male", "Female"))

    # Button to initiate translation and speech synthesis
    if st.button("Translate and Speak"):
        # Perform translation
        translated_text = translate_text(input_text, target_lang)

        # Display translated text
        st.subheader("Translated Text:")
        st.write(translated_text)

        # Convert translated text to speech
        text_to_speech(translated_text, target_lang, voice_gender)

        # Play the audio
        st.audio("output.mp3", format='audio/mp3')

if __name__ == "__main__":
    main()