ojas121 commited on
Commit
07c72d2
·
verified ·
1 Parent(s): 2c3f247

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pyttsx3
3
+
4
+ # Initialize TTS engine
5
+ engine = pyttsx3.init()
6
+
7
+ # Configure available voices
8
+ voices = engine.getProperty('voices')
9
+
10
+ # Streamlit App Title
11
+ st.title("Text-to-Speech Application")
12
+ st.markdown("""
13
+ A text-to-speech application supporting multiple languages and voices.
14
+ Customize the speech synthesis settings as per your preferences!
15
+ """)
16
+
17
+ # User Input for Text
18
+ text = st.text_area("Enter the text you want to convert to speech:", placeholder="Type something here...")
19
+
20
+ # Language and Voice Selection
21
+ language = st.selectbox(
22
+ "Select a Language:",
23
+ options=["English (US)", "English (UK)", "Hindi", "French", "Spanish"]
24
+ )
25
+
26
+ voice_gender = st.radio(
27
+ "Select Voice Gender:",
28
+ options=["Male", "Female"]
29
+ )
30
+
31
+ # Customize Voice Rate and Volume
32
+ rate = st.slider("Adjust Speech Rate:", min_value=100, max_value=300, value=200, step=10)
33
+ volume = st.slider("Adjust Volume:", min_value=0.0, max_value=1.0, value=1.0, step=0.1)
34
+
35
+ # Generate Speech
36
+ if st.button("Convert to Speech"):
37
+ if text.strip():
38
+ # Set language and voice properties
39
+ if language == "English (US)":
40
+ selected_voice = voices[0] # Adjust based on your system's available voices
41
+ elif language == "English (UK)":
42
+ selected_voice = voices[1]
43
+ elif language == "Hindi":
44
+ selected_voice = voices[2] # Requires Hindi TTS setup in OS
45
+ elif language == "French":
46
+ selected_voice = voices[3]
47
+ elif language == "Spanish":
48
+ selected_voice = voices[4]
49
+ else:
50
+ selected_voice = voices[0]
51
+
52
+ # Set voice
53
+ engine.setProperty('voice', selected_voice.id)
54
+
55
+ # Set gender
56
+ if voice_gender == "Female":
57
+ for v in voices:
58
+ if "female" in v.name.lower():
59
+ engine.setProperty('voice', v.id)
60
+ break
61
+
62
+ # Set rate and volume
63
+ engine.setProperty('rate', rate)
64
+ engine.setProperty('volume', volume)
65
+
66
+ # Convert to speech
67
+ engine.save_to_file(text, 'output.mp3')
68
+ engine.runAndWait()
69
+ st.audio('output.mp3', format="audio/mp3", start_time=0)
70
+ else:
71
+ st.warning("Please enter some text to convert to speech!")