Krishna086 commited on
Commit
0611db1
·
verified ·
1 Parent(s): e44647f

Update audio_processor.py

Browse files
Files changed (1) hide show
  1. 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 transcribe_audio(audio_file):
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
- for attempt in range(max_retries):
30
- try:
31
- tts = gTTS(text=text[:200], lang=lang_code, slow=False)
32
- audio_buffer = io.BytesIO()
33
- tts.write_to_fp(audio_buffer)
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