Release 0.91; April 17, 2019

  • Bug Fix Fix for big core detection; as of release 0.9 the decoding thread might have ran on a little core on some CPUs.

  • Bug Fix Fix for a crash when the getRecordingsDirectory method is called.

Release 0.9; March 6, 2019

  • Feature The SDK now supports always on listening with trigger phrase detection (e.g. “Hey computer”). This functionality is currently implemented using the ASR engine, which allows use of this feature without custom training for the trigger phrase. In other words, we are not using an independent small model for the wake-word, which would wake up the larger model when the wake-word is detected. The downside of the current trigger phrase approach is that this feature is not meant to be used for 24x7 listening because of battery usage and overheating. Up to two hours of always-on listening can be supported in the current trigger phrase implementation.

  • Feature The KASRRecognizer class now supports a method, getDecodingGraphName(), for querying the decoding graph name currently in use.

  • Bug Fix Fix for properly detecting big CPU cores. A number of mobile SoC uses big.little architecture, with some of the CPU cores (“little” ones) being less capable of heavy processing. The SDK tries to detects big CPU cores to make sure that the decoding thread runs on one of the big cores. We fixed a bug that in previous releases could have resulted in the decoding thread running on a little core instead of the big core, because big cores were not properly detected.

  • Bug Fix Fix for several scenarios where the SDK would crash if incomplete resources (e.g., ASR Bundle or decoding graph) were passed to it, or if the prepareForListeningWithCustomDecodingGraphWithName() method was called while the recognizer is listening.

  • Enhancement Cleaned up log levels for the KeenASR logger.

  • Enhancement Support for handling acronyms when passing a list of phrases to methods that build the decoding graph.

Release 0.82; Dec 26, 2018

  • Feature Lattice rescoring support for large vocabulary recognition.
  • Bug Fix Fix for a problem (a potential crash) that occurs occasionally when StopListening is explicitly called, i.e., when VAD-based end-pointing is not used.

Release 0.81; Jun 18, 2018

  • Enhancement Support for new ASR Bundles (keenB2)

Release 0.8; May 28, 2018

  • Enhancement The SDK will now load shared libraries, so developers don’t need to do it in their Java app.

  • Enhancement Further enhancements and optimizations for handling decoding speed on various CPU chipsets on Android devices in order to minimize chances of buffer overflows (decoding running slower then real-time for extended period of time). We are also releasing a more compact ASR Bundle that has a smaller disk/memory footprint and lower CPU utilization. One of the changes requires the app to declare the use of wake locks, by adding the following line to the AndroidManifest.xml file: <uses-permission android:name="android.permission.WAKE_LOCK" />.

  • Bug Fix getDecodingGraphCreationDate was always returning null.

  • Bug Fix Gracefully handle scenarios when the microphone cannot be initialized; if the SDK cannot initialize the audio stack it will gracefully handle the error and return the null shared instance.

  • Bug Fix JNI crash due to local table reference overflow; this bug was occurring in rare situations when there is a large number of words (more than ~250) in the recognized response.

Release 0.7.2; Apr 19, 2018

  • Feature Add experimental support for echo cancellation.
  • Enhancement Utilize multiple CPU cores for computation if available.
  • Feature Provide JSON version of the ASR result.

Release 0.7.1; Jan 31, 2018

  • Bug Fix SDK fails to initialize while loading the configuration file.

Release 0.7; Jan 23, 2018

  • Bug Fix Audio buffer overflows could occur on older devices when the default ASR Bundle (librispeech-nnet2-en-us) is used for decoding; this would result in unreliable recognition performance and corrupt audio files (when file recording is enabled). Added monitoring and logging to facilitate detection of this issue. For the time being simpler ASR Bundles, available upon request circumvent this problem on most devices released during the past 2-3 years. Future releases will provide additional optimizations.

  • Bug Fix SDK initialization fails when using the initWithASRBundleAtPath method. You would typically use this method when downloading an ASR Bundle from the internet rather than bundling it initially with your app.

  • Enhancement Added more robust checking for whether or not the decoding graph exists.

Release 0.6; Nov 4, 2017

  • Bug Fix Crash would occur during SDK initialization on the armeabi-v7a architecture.

Release 0.5; Oct 19, 2017

  • Feature KASRRecognizer methods for speaker adaptation are now available.
  • Bug Fix NPE would occur on partial or final result callbacks if the null lister was passed to the AddListener method.

Release 0.4; Oct 10, 2017

  • Bug Fix The startListening method would not work on second call (on Android 7.0)
  • Feature Added support for saving audio files on the device file system.
  • Feature Added support for arm64 abi.
  • Enhancement Minor optimizations in library size.

Release 0.3; Oct 2, 2017

  • Added basic functionality for live speech recognition. Only arm7v-abi abi is supported in this release.