Update audio_processor.py
Browse files- audio_processor.py +13 -7
audio_processor.py
CHANGED
@@ -19,18 +19,24 @@ def transcribe_audio(audio_file):
|
|
19 |
def text_to_speech(text, target_lang):
|
20 |
try:
|
21 |
if not text:
|
22 |
-
st.error("No text to convert.")
|
23 |
return None
|
24 |
-
lang_map = {
|
25 |
-
|
|
|
|
|
26 |
lang_code = lang_map.get(target_lang, "en")
|
27 |
-
st.write(f"
|
28 |
tts = gTTS(text=text[:200], lang=lang_code, slow=False) # Limit to 200 chars
|
29 |
audio_buffer = io.BytesIO()
|
30 |
tts.write_to_fp(audio_buffer)
|
31 |
audio_buffer.seek(0)
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
34 |
except Exception as e:
|
35 |
-
st.error(f"Audio failed: {str(e)}")
|
36 |
return None
|
|
|
19 |
def text_to_speech(text, target_lang):
|
20 |
try:
|
21 |
if not text:
|
22 |
+
st.error("No text to convert to audio.")
|
23 |
return None
|
24 |
+
lang_map = {
|
25 |
+
"English": "en", "French": "fr", "Spanish": "es", "German": "de",
|
26 |
+
"Hindi": "hi", "Chinese": "zh-cn", "Arabic": "ar", "Russian": "ru", "Japanese": "ja"
|
27 |
+
}
|
28 |
lang_code = lang_map.get(target_lang, "en")
|
29 |
+
st.write(f"Generating audio for {lang_code}")
|
30 |
tts = gTTS(text=text[:200], lang=lang_code, slow=False) # Limit to 200 chars
|
31 |
audio_buffer = io.BytesIO()
|
32 |
tts.write_to_fp(audio_buffer)
|
33 |
audio_buffer.seek(0)
|
34 |
+
if audio_buffer.getbuffer().nbytes > 0:
|
35 |
+
st.success(f"Audio generated for {target_lang}")
|
36 |
+
return audio_buffer
|
37 |
+
else:
|
38 |
+
st.error("Audio buffer empty.")
|
39 |
+
return None
|
40 |
except Exception as e:
|
41 |
+
st.error(f"Audio failed: {str(e)}. Ensure target language is supported (e.g., English, French).")
|
42 |
return None
|