eva 2.0#36
Open
TrajectoryL wants to merge 1 commit into
Open
Conversation
…skFSM, WS/WebRTC parity) This commit introduces a major upgrade to the Python SDK, establishing parity between WebSocket and WebRTC (LiveKit) transports, alongside immediate architectural and bug fixes. Key Features & Enhancements: - feat: Added `eva_ws_client.py` for lightweight WebSocket transport. - feat: Introduced `TaskFSM` for client-side task state coordination and edge-command routing. - feat: Integrated VOSK-based background `WakeWordRunner` for hands-free activation. - refactor: Extracted common audio buffer, state machine, and RTVI logic into `shared.py`. - fix: Corrected audio channel output truncation in stereo scenarios. - fix: Eliminated thread-safety deadlocks by releasing FSM locks prior to invoking external callbacks. - perf: Improved wake word detection to zero-latency using `threading.Event` instead of sleep polling. - refactor: Decoupled `livekit` making it a truly optional dependency for WS-only deployments. - refactor: Exposed `auto_switch_confidence_threshold` as a configurable initialization parameter.
chenbin11200
requested changes
Jun 2, 2026
| 云端作为中央大脑,拥有充足的算力,它持续接收音视频流并统筹复杂的业务逻辑: | ||
| 1. **全局 VAD 与 ASR:** 判断用户何时说话结束,并将音频转为文本。 | ||
| 2. **意图理解与业务流转:** 执行复杂的工作流并响应用户请求。 | ||
| 3. **任务调度大权:** 云端是状态流转的最终决策者。它评估边端发来的切换建议,只有当云端根据上下文下发了 `TaskSwitchResult (approved=True)` 时,边端才会真正切入新的交互任务。 |
| self.mic_index = self._find_device_index(mic_index, input=True) | ||
| self.spk_index = self._find_device_index(spk_index, input=False) | ||
| # Resolve audio device indices using shared function | ||
| self.mic_index = find_audio_device_index(self.pa, mic_index, is_input=True) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit introduces a major upgrade to the Python SDK, establishing parity between WebSocket and WebRTC (LiveKit) transports, alongside immediate architectural and bug fixes.
Key Features & Enhancements:
eva_ws_client.pyfor lightweight WebSocket transport.TaskFSMfor client-side task state coordination and edge-command routing.WakeWordRunnerfor hands-free activation.shared.py.threading.Eventinstead of sleep polling.livekitmaking it a truly optional dependency for WS-only deployments.auto_switch_confidence_thresholdas a configurable initialization parameter.