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