Spaces:
Paused
Paused
Peter Michael Gits Claude commited on
Commit Β·
08815de
1
Parent(s): 5be66b9
fix: Improve fallback handling and prevent TTS errors v0.5.4
Browse files- Shortened WebSocket timeout to 5s for faster fallback
- Fixed fallback message to be TTS-friendly instead of technical details
- Ensured HTTP fallback is properly attempted before final fallback
- Better error messages to distinguish WebSocket vs HTTP failures
- Prevents "STT fallback: Large audio file" from being sent to TTS
π€ Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- version.py +2 -2
- webrtc/server/websocket_handler.py +6 -11
version.py
CHANGED
|
@@ -2,8 +2,8 @@
|
|
| 2 |
Version information for ChatCal Voice-Enabled AI Assistant
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
__version__ = "0.5.
|
| 6 |
-
__build_date__ = "2025-08-20T17:
|
| 7 |
__description__ = "Voice-Enabled ChatCal AI Assistant with Hugging Face deployment"
|
| 8 |
|
| 9 |
def get_version_info():
|
|
|
|
| 2 |
Version information for ChatCal Voice-Enabled AI Assistant
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
__version__ = "0.5.4"
|
| 6 |
+
__build_date__ = "2025-08-20T17:40:00"
|
| 7 |
__description__ = "Voice-Enabled ChatCal AI Assistant with Hugging Face deployment"
|
| 8 |
|
| 9 |
def get_version_info():
|
webrtc/server/websocket_handler.py
CHANGED
|
@@ -126,10 +126,10 @@ class WebRTCHandler:
|
|
| 126 |
try:
|
| 127 |
logger.info(f"π Connecting to STT service for client {client_id}: {self.stt_websocket_url}")
|
| 128 |
|
| 129 |
-
# Connect to STT WebSocket service with timeout
|
| 130 |
stt_ws = await asyncio.wait_for(
|
| 131 |
websockets.connect(self.stt_websocket_url),
|
| 132 |
-
timeout=
|
| 133 |
)
|
| 134 |
self.stt_connections[client_id] = stt_ws
|
| 135 |
|
|
@@ -373,17 +373,12 @@ class WebRTCHandler:
|
|
| 373 |
http_transcription = await self.try_http_stt_fallback(audio_file_path)
|
| 374 |
if http_transcription:
|
| 375 |
logger.info(f"β
HTTP STT transcription (fallback): {http_transcription}")
|
| 376 |
-
return http_transcription
|
| 377 |
else:
|
| 378 |
-
logger.
|
| 379 |
|
| 380 |
-
# Final fallback
|
| 381 |
-
|
| 382 |
-
return f"STT fallback: Large audio file ({file_size} bytes, {sample_rate}Hz)"
|
| 383 |
-
elif file_size > 2000:
|
| 384 |
-
return f"STT fallback: Medium audio file ({file_size} bytes)"
|
| 385 |
-
else:
|
| 386 |
-
return f"STT fallback: Small audio file ({file_size} bytes)"
|
| 387 |
|
| 388 |
finally:
|
| 389 |
# Cleanup temporary connection
|
|
|
|
| 126 |
try:
|
| 127 |
logger.info(f"π Connecting to STT service for client {client_id}: {self.stt_websocket_url}")
|
| 128 |
|
| 129 |
+
# Connect to STT WebSocket service with shorter timeout
|
| 130 |
stt_ws = await asyncio.wait_for(
|
| 131 |
websockets.connect(self.stt_websocket_url),
|
| 132 |
+
timeout=5.0
|
| 133 |
)
|
| 134 |
self.stt_connections[client_id] = stt_ws
|
| 135 |
|
|
|
|
| 373 |
http_transcription = await self.try_http_stt_fallback(audio_file_path)
|
| 374 |
if http_transcription:
|
| 375 |
logger.info(f"β
HTTP STT transcription (fallback): {http_transcription}")
|
| 376 |
+
return f"[HTTP] {http_transcription}"
|
| 377 |
else:
|
| 378 |
+
logger.error("β Both WebSocket and HTTP STT failed - using minimal fallback")
|
| 379 |
|
| 380 |
+
# Final fallback - but make it more realistic for TTS
|
| 381 |
+
return "I'm having trouble processing that audio. Could you please try again?"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 382 |
|
| 383 |
finally:
|
| 384 |
# Cleanup temporary connection
|