continuous-integration/drone/push Build is passing
Details
- The `Responding` state should be modelled as an extra event/binary flag, not as an assistant state. The assistant may be listening for hotwords even while the `tts` plugin is responding, and we don't want the two states to interfere with each either - neither to build a more complex state machine that also needs to take concurrent states into account. - Stop any responses being rendered upon the `tts` plugin when a new hotword audio is detected. If e.g. I say "Ok Google", I should always be able to trigger the assistant and stop any concurrent audio process. - `SpeechRecognizedEvent` should be emitted even if `cheetah`'s latest audio frame results weren't marked as final, and the speech detection window timed out. Cheetah's `is_final` detection seems to be quite buggy sometimes, and it may not properly detect the end of utterances, especially with non-native accents. The workaround is to flush out whatever text is available (if at least some speech was detected) into a `SpeechRecognizedEvent` upon timeout. |
||
---|---|---|
.. | ||
app | ||
backend | ||
builder | ||
bus | ||
commands | ||
common | ||
config | ||
context | ||
cron | ||
entities | ||
event | ||
exceptions | ||
install | ||
message | ||
migrations | ||
platydock | ||
platyvenv | ||
plugins | ||
procedure | ||
process | ||
runner | ||
schemas | ||
user | ||
utils | ||
__init__.py | ||
__main__.py | ||
cli.py | ||
components.json.gz | ||
logger.py |