Skip to content

Commit 87ff05c

Browse files
committed
Add wake Detect
1 parent fe44635 commit 87ff05c

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

wyoming/wake.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
"""Wake word detection"""
22
from dataclasses import dataclass
3-
from typing import Optional
3+
from typing import List, Optional
44

55
from .event import Event, Eventable
66

77
DOMAIN = "wake"
88
_DETECTION_TYPE = "detection"
9+
_DETECT_TYPE = "detect"
910
_NOT_DETECTED_TYPE = "not-detected"
1011

1112

@@ -30,10 +31,31 @@ def event(self) -> Event:
3031

3132
@staticmethod
3233
def from_event(event: Event) -> "Detection":
33-
assert event.data is not None
34-
return Detection(
35-
name=event.data.get("name"), timestamp=event.data.get("timestamp")
36-
)
34+
data = event.data or {}
35+
return Detection(name=data.get("name"), timestamp=data.get("timestamp"))
36+
37+
38+
@dataclass
39+
class Detect(Eventable):
40+
"""Wake word detection request.
41+
42+
Followed by AudioStart, AudioChunk+, AudioStop
43+
"""
44+
45+
names: Optional[List[str]] = None
46+
"""Names of models to detect (None = any)."""
47+
48+
@staticmethod
49+
def is_type(event_type: str) -> bool:
50+
return event_type == _DETECT_TYPE
51+
52+
def event(self) -> Event:
53+
return Event(type=_DETECT_TYPE, data={"names": self.names})
54+
55+
@staticmethod
56+
def from_event(event: Event) -> "Detect":
57+
data = event.data or {}
58+
return Detect(names=data.get("names"))
3759

3860

3961
@dataclass

wyoming_setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name="wyoming",
9-
version="1.1.0",
9+
version="1.2.0",
1010
description="Protocol for Rhasspy Voice Assistant",
1111
url="http://github.com/rhasspy/rhasspy3",
1212
author="Michael Hansen",

0 commit comments

Comments
 (0)