Skip to content
This repository was archived by the owner on May 6, 2022. It is now read-only.

v11.0.0

Choose a tag to compare

@space-pope space-pope released this 17 Dec 19:02
· 63 commits to master since this release
43d40ce

Breaking changes

  • Spokestack.start() and stop() control all modules; pause() and resume() handle the speech pipeline

    The NLU module has been brought to parity with the other modules in that its services implement AutoCloseable and can release their internal resources (e.g., TensorFlow Lite interpreters). This, in turn, adjusted the higher-level Spokestack API: start and stop now manage resources for all registered modules (ASR, NLU, TTS). To temporarily suspend passive listening (so, for example, the app cannot receive a false positive wakeword activation during a TTS prompt), call pause; to resume, call resume. Spokestack calls pause and resume automatically in response to TTS events so you don't have to remember to do so.

  • TTS module no longer responds to lifecycle events

    Lifecycle responsiveness has been removed from the TTS module, as Spokestack is expected to be a long-lived component that survives Activity transitions. This allows TTS audio to continue playing even as the app transitions between Activitys but changes the builder API for the TTS module and Spokestack itself.

Features

  • Allow access to the current NLU service

    To match the other modules, NLUManager now provides access to its underlying NLUService via getNlu().

Fixes

  • Tighten task submission in TTS player

    Tasks submitted to the media player thread have been consolidated to avoid a potential race condition when attempting to play two TTS prompts in quick succession.

  • Timeout event when no keyword is recognized

    In order to match other speech recognizers, KeywordRecognizer has been adjusted to send a TIMEOUT event when no keyword is recognized after its activation limit.