Saiyaswanth007 commited on
Commit
a3ec320
·
1 Parent(s): 91b17d7

Check point 4

Browse files
Files changed (1) hide show
  1. app.py +18 -4
app.py CHANGED
@@ -10,12 +10,13 @@ import torchaudio
10
  from scipy.spatial.distance import cosine
11
  from RealtimeSTT import AudioToTextRecorder
12
  from fastapi import FastAPI, APIRouter
13
- from fastrtc import Stream, AsyncStreamHandler, WebRTC
14
  import json
15
  import asyncio
16
  import uvicorn
17
  from queue import Queue
18
  import logging
 
19
 
20
  # Set up logging
21
  logging.basicConfig(level=logging.INFO)
@@ -705,8 +706,7 @@ def initialize_system():
705
  stream = Stream(
706
  handler=handler,
707
  modality="audio",
708
- mode="send-receive",
709
- stream_name="audio_stream" # Match the stream_name in WebRTC component
710
  )
711
 
712
  # Mount the stream to the FastAPI app
@@ -780,7 +780,6 @@ def create_interface():
780
  # Replace standard Audio with WebRTC component
781
  audio_component = WebRTC(
782
  label="Audio Input",
783
- stream_name="audio_stream",
784
  modality="audio",
785
  mode="send-receive"
786
  )
@@ -912,6 +911,21 @@ def create_interface():
912
  # Auto-refresh status every 2 seconds
913
  status_timer = gr.Timer(2)
914
  status_timer.tick(refresh_status, outputs=[status_output])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
915
 
916
  return interface
917
 
 
10
  from scipy.spatial.distance import cosine
11
  from RealtimeSTT import AudioToTextRecorder
12
  from fastapi import FastAPI, APIRouter
13
+ from fastrtc import Stream, AsyncStreamHandler
14
  import json
15
  import asyncio
16
  import uvicorn
17
  from queue import Queue
18
  import logging
19
+ from gradio_webrtc import WebRTC
20
 
21
  # Set up logging
22
  logging.basicConfig(level=logging.INFO)
 
706
  stream = Stream(
707
  handler=handler,
708
  modality="audio",
709
+ mode="send-receive"
 
710
  )
711
 
712
  # Mount the stream to the FastAPI app
 
780
  # Replace standard Audio with WebRTC component
781
  audio_component = WebRTC(
782
  label="Audio Input",
 
783
  modality="audio",
784
  mode="send-receive"
785
  )
 
911
  # Auto-refresh status every 2 seconds
912
  status_timer = gr.Timer(2)
913
  status_timer.tick(refresh_status, outputs=[status_output])
914
+
915
+ # Connect the WebRTC component to our processing function
916
+ def process_webrtc_audio(audio_data):
917
+ if audio_data is not None and diarization_system.is_running:
918
+ try:
919
+ # Feed audio to our diarization system
920
+ diarization_system.feed_audio(audio_data)
921
+ except Exception as e:
922
+ logger.error(f"Error processing WebRTC audio: {e}")
923
+ return get_conversation()
924
+
925
+ audio_component.stream(
926
+ fn=process_webrtc_audio,
927
+ outputs=[conversation_output]
928
+ )
929
 
930
  return interface
931