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