PuristanLabs1 commited on
Commit
6337d27
·
verified ·
1 Parent(s): 6a8ec4e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -6
app.py CHANGED
@@ -21,6 +21,7 @@ from PIL import Image
21
  import io
22
  from gliner import GLiNER
23
  import tempfile
 
24
 
25
  nltk.download("punkt")
26
  nltk.download("punkt_tab")
@@ -219,13 +220,23 @@ def generate_audio_kokoro(text, lang, selected_voice):
219
  audio_data_list = [audio for _, _, audio in generator]
220
  full_audio = np.concatenate(audio_data_list)
221
 
222
- # Save to a temporary file
223
- with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as temp_file:
224
- sf.write(temp_file, full_audio, 24000, format='wav')
225
- temp_file_path = temp_file.name
 
 
 
 
 
 
226
 
227
- print("Audio generated successfully.")
228
- return temp_file_path
 
 
 
 
229
 
230
  ### 5️⃣ Chunk-Based Summarization
231
  def split_text_with_optimized_overlap(text, max_tokens=1024, overlap_tokens=25):
 
21
  import io
22
  from gliner import GLiNER
23
  import tempfile
24
+ from pydub import AudioSegment
25
 
26
  nltk.download("punkt")
27
  nltk.download("punkt_tab")
 
220
  audio_data_list = [audio for _, _, audio in generator]
221
  full_audio = np.concatenate(audio_data_list)
222
 
223
+ # Save as WAV (Temporary Step for Conversion)
224
+ temp_wav_file = f"temp_audio_{lang}.wav"
225
+ sf.write(temp_wav_file, full_audio, 24000)
226
+
227
+ # Convert WAV to MP3
228
+ output_file = f"audio_{lang}.mp3"
229
+ AudioSegment.from_wav(temp_wav_file).export(output_file, format="mp3", bitrate="192k")
230
+
231
+ # Clean up the temporary WAV file
232
+ os.remove(temp_wav_file)
233
 
234
+ # Confirm file is saved successfully
235
+ if not os.path.exists(output_file):
236
+ raise FileNotFoundError(f"Audio file '{output_file}' was not created successfully.")
237
+
238
+ # Return MP3 file path for Gradio Audio Box (with timestamp for cache bypass)
239
+ return f"{output_file}?{int(time.time())}"
240
 
241
  ### 5️⃣ Chunk-Based Summarization
242
  def split_text_with_optimized_overlap(text, max_tokens=1024, overlap_tokens=25):