mirror of
https://github.com/esphome/aioesphomeapi.git
synced 2025-01-26 22:22:10 +01:00
Add wake word capability to voice assistant (#519)
This commit is contained in:
parent
53074cfd3c
commit
2c7b2ed1a0
@ -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
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user