Spaces:
Building
Building
Update stt/stt_lifecycle_manager.py
Browse files- stt/stt_lifecycle_manager.py +17 -13
stt/stt_lifecycle_manager.py
CHANGED
@@ -164,26 +164,20 @@ class STTLifecycleManager:
|
|
164 |
"""Handle STT stop request"""
|
165 |
session_id = event.session_id
|
166 |
reason = event.data.get("reason", "unknown")
|
167 |
-
|
168 |
-
"""Send STT stopped signal to client"""
|
169 |
-
await self.send_message(session_id, {
|
170 |
-
"type": "stt_stopped",
|
171 |
-
"message": "STT stopped, please stop sending audio"
|
172 |
-
})
|
173 |
-
|
174 |
log_info(f"π Stopping STT", session_id=session_id, reason=reason)
|
175 |
-
|
176 |
stt_session = self.stt_sessions.get(session_id)
|
177 |
if not stt_session:
|
178 |
log_warning(f"β οΈ No STT session found", session_id=session_id)
|
179 |
return
|
180 |
-
|
181 |
try:
|
182 |
if stt_session.is_streaming:
|
183 |
# Stop streaming
|
184 |
final_result = await stt_session.stt_instance.stop_streaming()
|
185 |
stt_session.is_streaming = False
|
186 |
-
|
187 |
# If we got a final result, publish it
|
188 |
if final_result and final_result.text:
|
189 |
await self.event_bus.publish(Event(
|
@@ -195,12 +189,22 @@ class STTLifecycleManager:
|
|
195 |
"confidence": final_result.confidence
|
196 |
}
|
197 |
))
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
# Don't remove session immediately - might restart
|
200 |
stt_session.update_activity()
|
201 |
-
|
202 |
log_info(f"β
STT stopped", session_id=session_id)
|
203 |
-
|
204 |
except Exception as e:
|
205 |
log_error(
|
206 |
f"β Error stopping STT",
|
|
|
164 |
"""Handle STT stop request"""
|
165 |
session_id = event.session_id
|
166 |
reason = event.data.get("reason", "unknown")
|
167 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
log_info(f"π Stopping STT", session_id=session_id, reason=reason)
|
169 |
+
|
170 |
stt_session = self.stt_sessions.get(session_id)
|
171 |
if not stt_session:
|
172 |
log_warning(f"β οΈ No STT session found", session_id=session_id)
|
173 |
return
|
174 |
+
|
175 |
try:
|
176 |
if stt_session.is_streaming:
|
177 |
# Stop streaming
|
178 |
final_result = await stt_session.stt_instance.stop_streaming()
|
179 |
stt_session.is_streaming = False
|
180 |
+
|
181 |
# If we got a final result, publish it
|
182 |
if final_result and final_result.text:
|
183 |
await self.event_bus.publish(Event(
|
|
|
189 |
"confidence": final_result.confidence
|
190 |
}
|
191 |
))
|
192 |
+
|
193 |
+
# β
FIX: Send stop signal to WebSocket to stop audio streaming
|
194 |
+
await self.event_bus.publish(Event(
|
195 |
+
type=EventType.WEBSOCKET_MESSAGE,
|
196 |
+
session_id=session_id,
|
197 |
+
data={
|
198 |
+
"type": "stt_stopped",
|
199 |
+
"message": "STT stopped, please stop sending audio"
|
200 |
+
}
|
201 |
+
))
|
202 |
+
|
203 |
# Don't remove session immediately - might restart
|
204 |
stt_session.update_activity()
|
205 |
+
|
206 |
log_info(f"β
STT stopped", session_id=session_id)
|
207 |
+
|
208 |
except Exception as e:
|
209 |
log_error(
|
210 |
f"β Error stopping STT",
|