ciyidogan commited on
Commit
2dfdba6
·
verified ·
1 Parent(s): 44a618d

Update websocket_handler.py

Browse files
Files changed (1) hide show
  1. websocket_handler.py +6 -1
websocket_handler.py CHANGED
@@ -153,6 +153,7 @@ class RealtimeSession:
153
  def __init__(self, session: Session):
154
  self.session = session
155
  self.state = ConversationState.IDLE
 
156
 
157
  # Get settings from config
158
  config = ConfigProvider.get().global_config.stt_provider.settings
@@ -252,13 +253,13 @@ class RealtimeSession:
252
  async def cleanup(self):
253
  """Clean up resources"""
254
  try:
 
255
  if self.stt_manager:
256
  await self.stt_manager.stop_streaming()
257
  log_info(f"Cleaned up realtime session", session_id=self.session.session_id)
258
  except Exception as e:
259
  log_warning(f"Cleanup error", error=str(e), session_id=self.session.session_id)
260
 
261
-
262
  # ========================= MAIN HANDLER =========================
263
  async def websocket_endpoint(websocket: WebSocket, session_id: str):
264
  """Main WebSocket endpoint for real-time conversation"""
@@ -442,6 +443,10 @@ async def websocket_endpoint(websocket: WebSocket, session_id: str):
442
  async def handle_audio_chunk(websocket: WebSocket, session: RealtimeSession, message: Dict[str, Any]):
443
  """Handle incoming audio chunk with barge-in support"""
444
  try:
 
 
 
 
445
  audio_data = message.get("data")
446
  if not audio_data:
447
  log_warning(f"⚠️ Empty audio chunk received", session_id=session.session.session_id)
 
153
  def __init__(self, session: Session):
154
  self.session = session
155
  self.state = ConversationState.IDLE
156
+ self.is_websocket_active = True # Yeni flag
157
 
158
  # Get settings from config
159
  config = ConfigProvider.get().global_config.stt_provider.settings
 
253
  async def cleanup(self):
254
  """Clean up resources"""
255
  try:
256
+ self.is_websocket_active = False # WebSocket kapanıyor
257
  if self.stt_manager:
258
  await self.stt_manager.stop_streaming()
259
  log_info(f"Cleaned up realtime session", session_id=self.session.session_id)
260
  except Exception as e:
261
  log_warning(f"Cleanup error", error=str(e), session_id=self.session.session_id)
262
 
 
263
  # ========================= MAIN HANDLER =========================
264
  async def websocket_endpoint(websocket: WebSocket, session_id: str):
265
  """Main WebSocket endpoint for real-time conversation"""
 
443
  async def handle_audio_chunk(websocket: WebSocket, session: RealtimeSession, message: Dict[str, Any]):
444
  """Handle incoming audio chunk with barge-in support"""
445
  try:
446
+ # WebSocket kapandıysa işlem yapma
447
+ if not session.is_websocket_active:
448
+ return
449
+
450
  audio_data = message.get("data")
451
  if not audio_data:
452
  log_warning(f"⚠️ Empty audio chunk received", session_id=session.session.session_id)