Saiyaswanth007 commited on
Commit
4562675
·
1 Parent(s): 8df75a7

Check point 4

Browse files
Files changed (1) hide show
  1. app.py +9 -25
app.py CHANGED
@@ -651,8 +651,7 @@ def start_recording():
651
  """Start recording and transcription"""
652
  try:
653
  result = diarization_system.start_recording()
654
- # Connect WebRTC to server stream
655
- audio_webrtc.stream_url = "/stream" # This is your FastRTC endpoint
656
  return result
657
  except Exception as e:
658
  return f"❌ Failed to start recording: {str(e)}"
@@ -706,7 +705,7 @@ def create_interface():
706
  # Add WebRTC component for audio streaming
707
  audio_webrtc = WebRTC(
708
  label="Audio Input",
709
- streaming=True,
710
  rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]}
711
  )
712
 
@@ -783,8 +782,7 @@ def create_interface():
783
 
784
  def on_start():
785
  result = start_recording()
786
- # Connect WebRTC to server stream
787
- audio_webrtc.stream_url = "/stream" # This is your FastRTC endpoint
788
  return result, gr.update(interactive=False), gr.update(interactive=True)
789
 
790
  def on_stop():
@@ -840,19 +838,17 @@ def create_interface():
840
  status_timer = gr.Timer(2)
841
  status_timer.tick(refresh_status, outputs=[status_output])
842
 
843
- # After creating the WebRTC component:
844
- audio_webrtc.stream(
845
- fn=process_webrtc_audio,
846
- inputs=[audio_webrtc],
847
- outputs=[conversation_output]
848
- )
849
-
850
  return interface
851
 
852
 
853
  # FastAPI setup for FastRTC integration
854
  app = FastAPI()
855
 
 
 
 
 
 
856
  @app.get("/")
857
  async def root():
858
  return {"message": "Real-time Speaker Diarization API"}
@@ -894,12 +890,6 @@ async def api_update_settings(threshold: float, max_speakers: int):
894
  result = update_settings(threshold, max_speakers)
895
  return {"result": result}
896
 
897
- # FastRTC Stream setup
898
- if audio_handler:
899
- stream = Stream(handler=audio_handler)
900
- app.include_router(stream.router, prefix="/stream")
901
-
902
-
903
  # Main execution
904
  if __name__ == "__main__":
905
  import argparse
@@ -959,10 +949,4 @@ if __name__ == "__main__":
959
  api_thread.start()
960
 
961
  # Start Gradio in main thread
962
- run_gradio()
963
-
964
- def process_webrtc_audio(frames):
965
- # Process frames and send them to your diarization system
966
- for frame in frames:
967
- diarization_system.process_audio_chunk(frame)
968
- return get_conversation()
 
651
  """Start recording and transcription"""
652
  try:
653
  result = diarization_system.start_recording()
654
+ # FastRTC connection is handled through the mounted stream
 
655
  return result
656
  except Exception as e:
657
  return f"❌ Failed to start recording: {str(e)}"
 
705
  # Add WebRTC component for audio streaming
706
  audio_webrtc = WebRTC(
707
  label="Audio Input",
708
+ source_url="/stream", # Connect to the FastRTC stream endpoint
709
  rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]}
710
  )
711
 
 
782
 
783
  def on_start():
784
  result = start_recording()
785
+ # FastRTC connection is handled through the mounted stream
 
786
  return result, gr.update(interactive=False), gr.update(interactive=True)
787
 
788
  def on_stop():
 
838
  status_timer = gr.Timer(2)
839
  status_timer.tick(refresh_status, outputs=[status_output])
840
 
 
 
 
 
 
 
 
841
  return interface
842
 
843
 
844
  # FastAPI setup for FastRTC integration
845
  app = FastAPI()
846
 
847
+ # Initialize audio handler for FastRTC
848
+ audio_handler = DiarizationHandler(diarization_system)
849
+ stream = Stream(handler=audio_handler, modality="audio", mode="send-receive")
850
+ stream.mount(app) # Mount the Stream to the FastAPI app
851
+
852
  @app.get("/")
853
  async def root():
854
  return {"message": "Real-time Speaker Diarization API"}
 
890
  result = update_settings(threshold, max_speakers)
891
  return {"result": result}
892
 
 
 
 
 
 
 
893
  # Main execution
894
  if __name__ == "__main__":
895
  import argparse
 
949
  api_thread.start()
950
 
951
  # Start Gradio in main thread
952
+ run_gradio()