Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -3,6 +3,7 @@ import openai
|
|
3 |
from kokoro import KPipeline
|
4 |
import soundfile as sf
|
5 |
import io
|
|
|
6 |
|
7 |
# Streamlit App UI Setup
|
8 |
st.title("Text-to-Speech Translator with Kokoro")
|
@@ -115,21 +116,29 @@ def translate_to_english(api_key, text, lang_code):
|
|
115 |
# Generate Audio function
|
116 |
def generate_audio(text, lang_code, voice, speed):
|
117 |
generator = pipeline(text, voice=voice, speed=speed, split_pattern=r'\n+')
|
|
|
118 |
for i, (gs, ps, audio) in enumerate(generator):
|
119 |
audio_data = audio
|
120 |
-
#
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
|
|
126 |
|
127 |
# Generate and display the audio file
|
128 |
if st.button('Generate Audio'):
|
129 |
|
130 |
-
#
|
131 |
-
st.
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
# Display Audio player for the original language
|
135 |
st.audio(audio_buffer, format='audio/wav')
|
@@ -160,4 +169,4 @@ if st.button('Generate Audio'):
|
|
160 |
data=translated_audio_buffer,
|
161 |
file_name="generated_speech_translated.wav",
|
162 |
mime="audio/wav"
|
163 |
-
)
|
|
|
3 |
from kokoro import KPipeline
|
4 |
import soundfile as sf
|
5 |
import io
|
6 |
+
import time
|
7 |
|
8 |
# Streamlit App UI Setup
|
9 |
st.title("Text-to-Speech Translator with Kokoro")
|
|
|
116 |
# Generate Audio function
|
117 |
def generate_audio(text, lang_code, voice, speed):
|
118 |
generator = pipeline(text, voice=voice, speed=speed, split_pattern=r'\n+')
|
119 |
+
audio_data = None
|
120 |
for i, (gs, ps, audio) in enumerate(generator):
|
121 |
audio_data = audio
|
122 |
+
time.sleep(1) # Simulate processing delay for the spinner (this can be removed or adjusted)
|
123 |
+
# Save audio to in-memory buffer
|
124 |
+
buffer = io.BytesIO()
|
125 |
+
# Explicitly specify format as WAV
|
126 |
+
sf.write(buffer, audio_data, 24000, format='WAV') # Add 'format="WAV"'
|
127 |
+
buffer.seek(0)
|
128 |
+
return buffer
|
129 |
|
130 |
# Generate and display the audio file
|
131 |
if st.button('Generate Audio'):
|
132 |
|
133 |
+
# Show the spinner with percentage count
|
134 |
+
with st.spinner("Generating audio... 0%"):
|
135 |
+
for i in range(1, 101, 10):
|
136 |
+
time.sleep(0.5) # Simulate work being done, you can adjust timing here
|
137 |
+
st.spinner(f"Generating audio... {i}%")
|
138 |
+
|
139 |
+
# Generate audio for the original text after the spinner
|
140 |
+
st.write("Generating speech for the original text...")
|
141 |
+
audio_buffer = generate_audio(input_text, lang_code, voice, speed)
|
142 |
|
143 |
# Display Audio player for the original language
|
144 |
st.audio(audio_buffer, format='audio/wav')
|
|
|
169 |
data=translated_audio_buffer,
|
170 |
file_name="generated_speech_translated.wav",
|
171 |
mime="audio/wav"
|
172 |
+
)
|