Commit ·
b713cda
1
Parent(s): e2a702a
Fix: Move _is_streaming_audio init to early in __init__ before entity setup
Browse files
reachy_mini_ha_voice/satellite.py
CHANGED
|
@@ -67,6 +67,15 @@ class VoiceSatelliteProtocol(APIServer):
|
|
| 67 |
self.state.satellite = self
|
| 68 |
self.camera_server = camera_server
|
| 69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
# Initialize Reachy controller
|
| 71 |
self.reachy_controller = ReachyController(state.reachy_mini)
|
| 72 |
|
|
@@ -106,13 +115,6 @@ class VoiceSatelliteProtocol(APIServer):
|
|
| 106 |
# Find and store references to DOA entities
|
| 107 |
self._entity_registry.find_entity_references(self.state.entities)
|
| 108 |
|
| 109 |
-
self._is_streaming_audio = False
|
| 110 |
-
self._tts_url: Optional[str] = None
|
| 111 |
-
self._tts_played = False
|
| 112 |
-
self._continue_conversation = False
|
| 113 |
-
self._timer_finished = False
|
| 114 |
-
self._external_wake_words: Dict[str, VoiceAssistantExternalWakeWord] = {}
|
| 115 |
-
|
| 116 |
def handle_voice_event(
|
| 117 |
self, event_type: VoiceAssistantEventType, data: Dict[str, str]
|
| 118 |
) -> None:
|
|
|
|
| 67 |
self.state.satellite = self
|
| 68 |
self.camera_server = camera_server
|
| 69 |
|
| 70 |
+
# Initialize streaming state early (before entity setup)
|
| 71 |
+
# This is needed because audio processing thread checks this attribute
|
| 72 |
+
self._is_streaming_audio = False
|
| 73 |
+
self._tts_url: Optional[str] = None
|
| 74 |
+
self._tts_played = False
|
| 75 |
+
self._continue_conversation = False
|
| 76 |
+
self._timer_finished = False
|
| 77 |
+
self._external_wake_words: Dict[str, VoiceAssistantExternalWakeWord] = {}
|
| 78 |
+
|
| 79 |
# Initialize Reachy controller
|
| 80 |
self.reachy_controller = ReachyController(state.reachy_mini)
|
| 81 |
|
|
|
|
| 115 |
# Find and store references to DOA entities
|
| 116 |
self._entity_registry.find_entity_references(self.state.entities)
|
| 117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
def handle_voice_event(
|
| 119 |
self, event_type: VoiceAssistantEventType, data: Dict[str, str]
|
| 120 |
) -> None:
|
reachy_mini_ha_voice/voice_assistant.py
CHANGED
|
@@ -478,10 +478,6 @@ class VoiceAssistantService:
|
|
| 478 |
if self._state is None or self._state.satellite is None:
|
| 479 |
time.sleep(0.1)
|
| 480 |
return False
|
| 481 |
-
# Check if satellite is fully initialized
|
| 482 |
-
if not hasattr(self._state.satellite, '_is_streaming_audio'):
|
| 483 |
-
time.sleep(0.1)
|
| 484 |
-
return False
|
| 485 |
return True
|
| 486 |
|
| 487 |
def _update_wake_words_list(self, ctx: AudioProcessingContext) -> None:
|
|
|
|
| 478 |
if self._state is None or self._state.satellite is None:
|
| 479 |
time.sleep(0.1)
|
| 480 |
return False
|
|
|
|
|
|
|
|
|
|
|
|
|
| 481 |
return True
|
| 482 |
|
| 483 |
def _update_wake_words_list(self, ctx: AudioProcessingContext) -> None:
|