siddhartharyaai commited on
Commit
5d6a0d4
·
verified ·
1 Parent(s): 12811af

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +30 -0
utils.py CHANGED
@@ -102,3 +102,33 @@ def transcribe_audio(file_path):
102
  except Exception as e:
103
  logging.error(f"Error transcribing audio: {str(e)}")
104
  return f"Error transcribing audio: {str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  except Exception as e:
103
  logging.error(f"Error transcribing audio: {str(e)}")
104
  return f"Error transcribing audio: {str(e)}"
105
+
106
+ def generate_audio_mp3(text, speaker):
107
+ groq_client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
108
+ response = groq_client.chat.completions.create(
109
+ messages=[{"role": "system", "content": f"Generate a realistic voice for {speaker}: {text}"}],
110
+ model="llama-3.3-70b-versatile",
111
+ max_tokens=512,
112
+ temperature=0.6
113
+ )
114
+
115
+ speech_text = response.choices[0].message.content.strip()
116
+ temp_audio = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
117
+
118
+ try:
119
+ temp_audio.write(speech_text.encode('utf-8'))
120
+ temp_audio.close()
121
+
122
+ audio_test = AudioSegment.from_file(temp_audio.name, format="mp3")
123
+ if len(audio_test) == 0:
124
+ raise ValueError("Generated MP3 file is empty or corrupted.")
125
+
126
+ return temp_audio.name
127
+
128
+ except Exception as e:
129
+ logging.error(f"Failed to generate MP3 file: {str(e)}")
130
+
131
+ silent_audio = AudioSegment.silent(duration=2000)
132
+ fallback_mp3 = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
133
+ silent_audio.export(fallback_mp3.name, format="mp3")
134
+ return fallback_mp3.name