Add wake word capability to voice assistant (#519)

This commit is contained in:
Jesse Hills 2023-08-10 16:03:15 +12:00 committed by GitHub
parent 53074cfd3c
commit 2c7b2ed1a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 79 additions and 68 deletions

View File

@ -1445,7 +1445,7 @@ message VoiceAssistantRequest {
bool start = 1; bool start = 1;
string conversation_id = 2; string conversation_id = 2;
bool use_vad = 3; int32 flags = 3;
} }
message VoiceAssistantResponse { message VoiceAssistantResponse {
@ -1467,6 +1467,8 @@ enum VoiceAssistantEvent {
VOICE_ASSISTANT_INTENT_END = 6; VOICE_ASSISTANT_INTENT_END = 6;
VOICE_ASSISTANT_TTS_START = 7; VOICE_ASSISTANT_TTS_START = 7;
VOICE_ASSISTANT_TTS_END = 8; VOICE_ASSISTANT_TTS_END = 8;
VOICE_ASSISTANT_WAKE_WORD_START = 9;
VOICE_ASSISTANT_WAKE_WORD_END = 10;
} }
message VoiceAssistantEventData { message VoiceAssistantEventData {

File diff suppressed because one or more lines are too long

View File

@ -1342,7 +1342,7 @@ class APIClient:
async def subscribe_voice_assistant( async def subscribe_voice_assistant(
self, self,
handle_start: Callable[[str, bool], Coroutine[Any, Any, int | None]], handle_start: Callable[[str, int], Coroutine[Any, Any, int | None]],
handle_stop: Callable[[], Coroutine[Any, Any, None]], handle_stop: Callable[[], Coroutine[Any, Any, None]],
) -> Callable[[], None]: ) -> Callable[[], None]:
"""Subscribes to voice assistant messages from the device. """Subscribes to voice assistant messages from the device.
@ -1371,7 +1371,7 @@ class APIClient:
command = VoiceAssistantCommand.from_pb(msg) command = VoiceAssistantCommand.from_pb(msg)
if command.start: if command.start:
start_task = asyncio.create_task( start_task = asyncio.create_task(
handle_start(command.conversation_id, command.use_vad) handle_start(command.conversation_id, command.flags)
) )
start_task.add_done_callback(_started) start_task.add_done_callback(_started)
# We hold a reference to the start_task in unsub function # We hold a reference to the start_task in unsub function

View File

@ -1063,11 +1063,16 @@ class BluetoothDeviceRequestType(APIIntEnum):
CLEAR_CACHE = 6 CLEAR_CACHE = 6
class VoiceAssistantCommandFlag(enum.IntFlag):
USE_VAD = 1 << 0
USE_WAKE_WORD = 1 << 1
@_frozen_dataclass_decorator @_frozen_dataclass_decorator
class VoiceAssistantCommand(APIModelBase): class VoiceAssistantCommand(APIModelBase):
start: bool = False start: bool = False
conversation_id: str = "" conversation_id: str = ""
use_vad: bool = False flags: int = False
class LogLevel(APIIntEnum): class LogLevel(APIIntEnum):
@ -1091,3 +1096,5 @@ class VoiceAssistantEventType(APIIntEnum):
VOICE_ASSISTANT_INTENT_END = 6 VOICE_ASSISTANT_INTENT_END = 6
VOICE_ASSISTANT_TTS_START = 7 VOICE_ASSISTANT_TTS_START = 7
VOICE_ASSISTANT_TTS_END = 8 VOICE_ASSISTANT_TTS_END = 8
VOICE_ASSISTANT_WAKE_WORD_START = 9
VOICE_ASSISTANT_WAKE_WORD_END = 10