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

Releases: spokestack/spokestack-android

v7.0.1

05 Aug 21:45
f0b1308
Compare
Choose a tag to compare

This is a patch release created because some files from 7.0.0 failed to deploy to JCenter. No code has changed.

v7.0.0

29 Jul 19:13
d0f5d39
Compare
Choose a tag to compare

Breaking changes

Calling start() on a running SpeechPipeline no longer throws an exception. This should only be an issue for clients that were relying on the error, which is inadvisable.

Features

  • Expose Spokestack NLU slot types
    Not all NLUs parse slots into types, but Spokestack's NLU does, and those types need to be exposed to other libraries that wrap spokestack-android (such as react-native-spokestack).
  • Propagate partial ASR results to client
    ASR providers that offer the ability to receive partial results (all current providers do) now send those results to speech listeners via the new PARTIAL_RECOGNIZE event. The text of the result is available as the SpeechContext's transcript.

Fixes

  • Re-authorize Spokestack ASR socket
    For two back-to-back utterances submitted to the Spokestack ASR, the first frame of the second request was resulting in an error due to a missing handshake.
  • Workaround for Android ASR timeouts
    Android's built-in SpeechRecognizer has been returning NO_MATCH errors more than it used to, notably in cases where it used to send SPEECH_TIMEOUT. In response, we've temporarily remapped NO_MATCH to fire a timeout event to speech listeners instead of an error.

v6.0.0

24 Jul 20:49
d8c6c5e
Compare
Choose a tag to compare

Note The only reason this is a major release is the new annotations (described below). No breaking changes to actual library features are expected

Features

  • Spokestack cloud-based ASR provider
    Spokestack credentials can now be used to access a cloud-based ASR independent from Google and Microsoft. Pipeline profiles that use this new component are also included.
  • Annotation updates for IDE convenience
    Parameters for speech recognition, NLU, and TTS events have been annotated with @NonNull to enable cleaner client code. The downside is that the compiler/Android Studio will now throw errors for any Kotlin event listener methods marked as overrides that mark these parameters as optional.

Fixes

  • Remove preference for offline Android ASR
    The Android ASR now throws an error if the caller indicates that the offline model should be used. This flag has been removed from Spokestack's usage of the on-device Android ASR as a temporary fix.

v5.6.0

15 Jun 20:46
a2aef9b
Compare
Choose a tag to compare

Features

  • Allow TTS playback to be stopped
    The TTSManager.stopPlayback() method will stop playback of any currently playing synthesis result and clear any queued results. This is useful if you want to allow the user to interrupt system speech and not have queued speech resume playback when the ASR request ends.

Fixes

  • Microphone sharing for Android ASR (#53)
    This addresses an issue with Spokestack sharing the microphone with platform-supplied SpeechRecognizer instances. AndroidSpeechRecognizer and associated pipeline profiles now have much broader device compatibility.

  • Allow i_* tag series to be parsed as slots
    NLU results were previously dependent on the model returning strictly valid IOB tag sequences. This has been relaxed to allow either a b_ or i_ tag to mark the beginning of a slot.

v5.5.0

10 Jun 17:31
e41d855
Compare
Choose a tag to compare

Features

  • new TTS event for playback completion
    The PLAYBACK_COMPLETE notifies listeners when the media player has finished playing TTS prompts so that ASR can be reactivated if desired.

Fixes

  • (NLU) If a slot value recognized in an utterance is not valid according to the model metadata, a Slot with a null value will be returned in order to avoid failing the entire classification with an exception.

v5.4.0

01 Jun 20:11
48fff09
Compare
Choose a tag to compare

Features

Slot output changes:

  • Slots declared by an intent but not tagged by the model are returned to the caller in the output with a null value
  • Slots not declared by an intent but tagged by the model do not cause an error and are not returned to the caller

Fixes

Removed references to a deprecated configuration parameter for the NLU model.

v5.3.0

30 Apr 22:10
fe7bb2f
Compare
Choose a tag to compare

Features

  • Faster first classification via the NLU model

Fixes

  • TTS errors, both GraphQL and HTTP, are now surfaced to the client as ERROR events; these were previously being swallowed by the library.

v5.2.0

22 Apr 19:15
fc85db7
Compare
Choose a tag to compare

Features

  • Return unknown slots as raw values
    • If the NLU model tags a slot not associated with the predicted intent, that slot's value will be returned as a String in the NLUResult's slot map instead of causing an error.
  • Support new slot features
    • Newer models include intent-level implicit slots and a capture_name field that changes the slot's return name; these are now supported by the client library.

Fixes

  • Allow slot tags to be discontinuous
    • Separate spans of "b_slot_name" tags will now be concatenated instead of dropping all tokens but the last one
  • Trim punctuation for slot value extraction
    • Slots recognized at the end of an input string that contains punctuation will no longer cause an error. As a consequence, both leading and trailing punctuation are removed from the slot value before parsing, so such punctuation is invalid in training data for the slot values.

v5.1.0

16 Mar 17:41
b7cd048
Compare
Choose a tag to compare

Features

  • On-device NLU via TensorFlow Lite and BERT-based custom models

Fixes

  • Declare a minSdkVersion and targetSdkVersion in the manifest to avoid requesting suspicious-looking permissions by default

v5.0.0

24 Jan 19:00
37decf1
Compare
Choose a tag to compare

Breaking changes

  • Turn activation timeout into a component
    • This removes the activation timeout for wakeword activation and changes the names of the properties used to control it

Features

  • Azure Speech Service ASR
  • Speech Markdown support in TTS
  • SpeechPipeline.Builder profiles

Fixes

  • Set default vad-fall-delay to 500ms
  • Simple ProGuard rules to avoid Spokestack classes being removed by the tool.