Update app.py
Browse files
app.py
CHANGED
@@ -44,22 +44,24 @@ def main():
|
|
44 |
|
45 |
if user_text and (st.session_state.get("last_text", "") != user_text or st.button("Translate", key="translate_btn")):
|
46 |
st.session_state.last_text = user_text
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
|
|
63 |
|
64 |
# Output Section
|
65 |
with col_output:
|
@@ -81,7 +83,7 @@ def main():
|
|
81 |
audio = audio_processor.text_to_speech(st.session_state.translated_text, target_lang)
|
82 |
if audio and audio.getbuffer().nbytes > 0:
|
83 |
st.audio(audio, format="audio/mp3", start_time=0)
|
84 |
-
st.success("Audio playing.")
|
85 |
else:
|
86 |
audio_fallback = audio_processor.text_to_speech(st.session_state.translated_text, "English")
|
87 |
if audio_fallback and audio_fallback.getbuffer().nbytes > 0:
|
|
|
44 |
|
45 |
if user_text and (st.session_state.get("last_text", "") != user_text or st.button("Translate", key="translate_btn")):
|
46 |
st.session_state.last_text = user_text
|
47 |
+
spinner = st.empty() # Create spinner placeholder
|
48 |
+
spinner.info("Translating...") # Show spinner
|
49 |
+
start_time = time.time()
|
50 |
+
try:
|
51 |
+
# Use English as buffer for translation
|
52 |
+
if source_lang != "English" and target_lang != "English":
|
53 |
+
temp_translation = translation.translate(user_text, source_lang, "English")
|
54 |
+
translated_text = translation.translate(temp_translation, "English", target_lang)
|
55 |
+
else:
|
56 |
+
translated_text = translation.translate(user_text, source_lang, target_lang)
|
57 |
+
st.session_state.translated_text = translated_text
|
58 |
+
st.session_state.translation_time = time.time() - start_time
|
59 |
+
except Exception as e:
|
60 |
+
st.session_state.translated_text = user_text
|
61 |
+
st.session_state.translation_time = time.time() - start_time
|
62 |
+
st.warning(f"Translation error: {str(e)}. Using input as fallback.")
|
63 |
+
finally:
|
64 |
+
spinner.empty()
|
65 |
|
66 |
# Output Section
|
67 |
with col_output:
|
|
|
83 |
audio = audio_processor.text_to_speech(st.session_state.translated_text, target_lang)
|
84 |
if audio and audio.getbuffer().nbytes > 0:
|
85 |
st.audio(audio, format="audio/mp3", start_time=0)
|
86 |
+
st.success("Audio playing.")
|
87 |
else:
|
88 |
audio_fallback = audio_processor.text_to_speech(st.session_state.translated_text, "English")
|
89 |
if audio_fallback and audio_fallback.getbuffer().nbytes > 0:
|