I’m happy to share that OpenEars, RapidEars, Rejecto, SaveThatWave and NeatSpeech have all been updated to version 1.65 with many fixes for stability during long-term listening and a couple of new features:
• Fixes for 100% of known/reported issues that can cause hangs or rare crashes over long listening periods with OpenEars and RapidEars.
• Fixes for rare cases in which listening can lose the ability to distinguish between speech and non-speech or even hang as a result of a rapid change in background noise levels; fix affects both OpenEars and RapidEars.
• Any exceptions during the listening loop should now lead to a graceful exit from the loop without undocumented behavior.
• Addition of PocketsphinxController methods to prompt users to give mic permission before starting recognition and to check mic permission, and a “permission declined” callback in OpenEarsEventsObserver for your UI design.
• Addition of PocketsphinxController methods to check whether the listening loop has been entered and to check whether listening is currently suspended.
• Addition of a method to SaveThatWave that can save a complete WAV of a single listening session for debug and testing purposes.
• NeatSpeech and Rejecto do not have material changes but they both have some internal updates to match API changes in OpenEars, so they should also be updated.
• A fix for a FliteController setting that could sometimes affect app acceptance if the developer didn’t make use of FliteController’s noAudioSessionOverrides property. Now, regardless of whether noAudioSessionOverrides is set or not, developers should not ever encounter any issues with app acceptance (assuming the app makes some kind of textual or visual indication that it does speech recognition and uses the mic – Apple will still quite reasonably reject an app which does “stealth recognition” while giving no visual or textual indication to the user that speech is being listened to).
All of the fixes improving stability and performance during listening required some major refactoring of the OpenEars and RapidEars listening loops, so although this version had an unusually long testing period before shipping for that reason, please don’t hesitate to let me know about any unexpected behavior you encounter since it can be challenging to replicate every possible way the framework is implemented in testing.
If you are a licensed user, there will be licensed 1.65 versions waiting for you at the licensee site. If you noticed these updates early and downloaded OpenEars/SaveThatWave before February 5th, please download them again since they were shipped with a mistake which is fixed in the currently-downloadable version.
I’m happy to have been able to spend a fair amount of time doing nothing but tightening the bolts on the framework and I hope this is reflected in your users’ satisfaction with your apps. Thanks for using OpenEars!