Conversation
- Introduced `ServerWwdPcm` message kind for server-side wakeword PCM stream. - Updated WebSocket message protocol to include `MESSAGE_KIND_SERVER_WWD_PCM`. - Implemented `WhisperServerWakeWordDetector` for handling server-side wakeword detection. - Refactored `WsProxy` to manage server-side wakeword PCM messages. - Removed deprecated server-side wakeword detection API endpoint. - Enhanced documentation for new wakeword detection flow and message types.
…display and state machine
…logic in ServerWwdController
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 pull request introduces comprehensive support for server-side wake word detection in the StackChan system. It adds new protocol messages, updates the state machine and display logic to handle a new
ServerWwdstate, and provides environment variable and documentation updates for configuring and using server-side wake word detection with Whisper Server. The changes ensure that StackChan can now stream microphone audio specifically for wake word detection, and both the firmware and server can negotiate and handle this mode.Server-side Wake Word Detection Support
MESSAGE_KIND_SERVER_WWD_PCMfor dedicated PCM uplink streams used in server-side wake word detection (firmware/lib/generated_protobuf/websocket-message.pb.h,docs/websocket_protocols_ja.md). [1] [2] [3]ServerWwdin the state machine, including protocol, display, and documentation updates to handle this state and its transitions (firmware/include/state_machine.hpp,firmware/lib/generated_protobuf/websocket-message.pb.h,firmware/src/display.cpp,AGENTS.md,docs/websocket_protocols_ja.md). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]Firmware Enhancements
Listeningclass to support two session modes (SpeechandWakeWord), with new methods for starting/stopping wake word streaming and correct handling of silence auto-stop logic (firmware/include/listening.hpp,firmware/src/listening.cpp). [1] [2] [3] [4] [5] [6] [7]shouldUseServerWakeWordutility and updated metadata handling to support negotiation of wake word detection capability between server and client (firmware/include/metadata.hpp).Configuration and Documentation Updates
.env.templateand documented their use indocs/server_ja.md. [1] [2] [3] [4] [5]docs/websocket_protocols_ja.md,AGENTS.md). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]These changes collectively enable StackChan to flexibly use either device-side or server-side wake word detection, improving versatility and allowing for more advanced or centralized voice activation scenarios.