v11.0.0
Breaking changes
-
Spokestack.start()andstop()control all modules;pause()andresume()handle the speech pipelineThe NLU module has been brought to parity with the other modules in that its services implement
AutoCloseableand can release their internal resources (e.g., TensorFlow Lite interpreters). This, in turn, adjusted the higher-levelSpokestackAPI:startandstopnow 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), callpause; to resume, callresume.Spokestackcallspauseandresumeautomatically 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
Activitytransitions. This allows TTS audio to continue playing even as the app transitions betweenActivitys but changes the builder API for the TTS module andSpokestackitself.
Features
-
Allow access to the current NLU service
To match the other modules,
NLUManagernow provides access to its underlyingNLUServiceviagetNlu().
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,
KeywordRecognizerhas been adjusted to send aTIMEOUTevent when no keyword is recognized after its activation limit.