uasername commited on
Commit
4d68d72
·
verified ·
1 Parent(s): f9c1999

Update Gradio_UI.py

Browse files
Files changed (1) hide show
  1. Gradio_UI.py +25 -4
Gradio_UI.py CHANGED
@@ -26,6 +26,15 @@ from smolagents.utils import _is_package_available
26
 
27
  from Code_Functions import speak_text
28
 
 
 
 
 
 
 
 
 
 
29
 
30
  #from jokes import gradio_search_jokes
31
 
@@ -185,11 +194,16 @@ def stream_to_gradio(
185
  content={"path": final_answer.to_string(), "mime_type": "image/png"},
186
  )
187
  elif isinstance(final_answer, AgentAudio):
 
 
 
 
188
  yield gr.ChatMessage(
189
  role="assistant",
190
- content={"path": final_answer.to_string(), "mime_type": "audio/mpeg"},
191
- #content={"data": final_answer.value, "mime_type": "audio/mpeg"},
192
  )
 
 
193
  else:
194
  yield gr.ChatMessage(role="assistant", content=f"**Final answer:** {str(final_answer)}")
195
 
@@ -313,7 +327,14 @@ class GradioUI:
313
  if isinstance(msg.content, dict):
314
  mime = msg.content.get("mime_type", "")
315
  if mime.startswith("audio"):
316
- return msg.content.get("path")
 
 
 
 
 
 
 
317
  return None
318
 
319
  with gr.Blocks(fill_height=True) as demo:
@@ -331,7 +352,7 @@ class GradioUI:
331
  )
332
 
333
  # NEW: Add a dedicated audio player component below the chatbot.
334
- audio_player = gr.Audio(label="Audio Pronunciation", type="filepath")
335
 
336
  if self.file_upload_folder is not None:
337
  upload_file = gr.File(label="Upload a file")
 
26
 
27
  from Code_Functions import speak_text
28
 
29
+ import io
30
+ import librosa
31
+ import numpy as np
32
+
33
+ def mp3_bytes_to_numpy(audio_bytes, sr=None):
34
+ # Load audio from the MP3 bytes; sr=None preserves the original sample rate.
35
+ audio_np, sr = librosa.load(io.BytesIO(audio_bytes), sr=sr)
36
+ return audio_np
37
+
38
 
39
  #from jokes import gradio_search_jokes
40
 
 
194
  content={"path": final_answer.to_string(), "mime_type": "image/png"},
195
  )
196
  elif isinstance(final_answer, AgentAudio):
197
+ # Assuming your AgentAudio object stores the raw MP3 bytes in an attribute called "value"
198
+ audio_bytes = final_answer.value
199
+ # Convert MP3 bytes to a numpy array using our helper function
200
+ audio_np = mp3_bytes_to_numpy(audio_bytes)
201
  yield gr.ChatMessage(
202
  role="assistant",
203
+ content={"data": audio_np, "mime_type": "audio/mpeg"},
 
204
  )
205
+ print("DEBUG AgentAudio attributes:", vars(final_answer))
206
+
207
  else:
208
  yield gr.ChatMessage(role="assistant", content=f"**Final answer:** {str(final_answer)}")
209
 
 
327
  if isinstance(msg.content, dict):
328
  mime = msg.content.get("mime_type", "")
329
  if mime.startswith("audio"):
330
+ # If the audio data is already provided under "data", return it.
331
+ if "data" in msg.content:
332
+ return msg.content["data"]
333
+ # Otherwise, if a file path is provided (fallback), load and convert it.
334
+ elif "path" in msg.content:
335
+ with open(msg.content["path"], "rb") as f:
336
+ audio_bytes = f.read()
337
+ return mp3_bytes_to_numpy(audio_bytes)
338
  return None
339
 
340
  with gr.Blocks(fill_height=True) as demo:
 
352
  )
353
 
354
  # NEW: Add a dedicated audio player component below the chatbot.
355
+ audio_player = gr.Audio(label="Audio Pronunciation", type="numpy")
356
 
357
  if self.file_upload_folder is not None:
358
  upload_file = gr.File(label="Upload a file")