Update audio_processor.py
Browse files- audio_processor.py +7 -34
audio_processor.py
CHANGED
@@ -1,43 +1,16 @@
|
|
1 |
-
import streamlit as st
|
2 |
-
import speech_recognition as sr
|
3 |
from gtts import gTTS
|
4 |
import io
|
5 |
-
import time
|
6 |
|
7 |
-
def
|
8 |
-
recognizer = sr.Recognizer()
|
9 |
-
try:
|
10 |
-
with open("temp_audio.wav", "wb") as f:
|
11 |
-
f.write(audio_file.read())
|
12 |
-
with sr.AudioFile("temp_audio.wav") as source:
|
13 |
-
audio = recognizer.record(source)
|
14 |
-
text = recognizer.recognize_google(audio)
|
15 |
-
return text
|
16 |
-
except Exception as e:
|
17 |
-
st.error(f"Transcription failed: {str(e)}")
|
18 |
-
return ""
|
19 |
-
|
20 |
-
def text_to_speech(text, target_lang, max_retries=2):
|
21 |
try:
|
22 |
if not text:
|
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 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
audio_buffer.seek(0)
|
35 |
-
if audio_buffer.getbuffer().nbytes > 0:
|
36 |
-
return audio_buffer
|
37 |
-
time.sleep(2 ** attempt)
|
38 |
-
except Exception:
|
39 |
-
if attempt == max_retries - 1:
|
40 |
-
return None
|
41 |
-
return None
|
42 |
except Exception:
|
43 |
return None
|
|
|
|
|
|
|
1 |
from gtts import gTTS
|
2 |
import io
|
|
|
3 |
|
4 |
+
def text_to_speech(text, target_lang):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
try:
|
6 |
if not text:
|
7 |
return None
|
8 |
+
lang_map = {"en": "en", "fr": "fr", "es": "es", "de": "de", "hi": "hi", "zh": "zh-cn", "ar": "ar", "ru": "ru", "ja": "ja"}
|
|
|
|
|
|
|
9 |
lang_code = lang_map.get(target_lang, "en")
|
10 |
+
tts = gTTS(text=text[:200], lang=lang_code)
|
11 |
+
audio_buffer = io.BytesIO()
|
12 |
+
tts.write_to_fp(audio_buffer)
|
13 |
+
audio_buffer.seek(0)
|
14 |
+
return audio_buffer if audio_buffer.getbuffer().nbytes > 0 else None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
except Exception:
|
16 |
return None
|