Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 1.8.0

- Add is_final to Transcript, indicate if text is final stt result
- Add sendPartials to Transcribe, indicate if requestor supports partial results

## 1.7.0

- Add `language` to `transcript`
Expand Down
12 changes: 10 additions & 2 deletions wyoming/asr.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ class Transcript(Eventable):
language: str | None = None
"""Language of the text."""

is_final: Optional[bool] = False

@staticmethod
def is_type(event_type: str) -> bool:
return event_type == _TRANSCRIPT_TYPE
Expand All @@ -31,13 +33,14 @@ def event(self) -> Event:
data: Dict[str, Any] = {"text": self.text}
if self.language is not None:
data["language"] = self.language
data["is_final"]=self.is_final

return Event(type=_TRANSCRIPT_TYPE, data=data)

@staticmethod
def from_event(event: Event) -> "Transcript":
assert event.data is not None
return Transcript(text=event.data["text"], language=event.data.get("language"))
return Transcript(text=event.data["text"], language=event.data.get("language"), is_final=event.data.get("is_final"))


@dataclass
Expand All @@ -56,6 +59,9 @@ class Transcribe(Eventable):
context: Optional[Dict[str, Any]] = None
"""Context from previous interactions."""

sendPartials: Optional[bool] = False;
"""indicate if the receiver should send partial results if possible"""

@staticmethod
def is_type(event_type: str) -> bool:
return event_type == _TRANSCRIBE_TYPE
Expand All @@ -68,9 +74,11 @@ def event(self) -> Event:
if self.language is not None:
data["language"] = self.language

data["sendPartials"] = self.sendPartials

return Event(type=_TRANSCRIBE_TYPE, data=data)

@staticmethod
def from_event(event: Event) -> "Transcribe":
data = event.data or {}
return Transcribe(name=data.get("name"), language=data.get("language"))
return Transcribe(name=data.get("name"), language=data.get("language"), sendPartials=data.get("sendPartials"))