For questions and feedback about the SDK, contact us. Before reaching out, please review the FAQ and the documentation for the relevant platform.
How to Report a Bug
When reporting a bug, please provide the following information:
- OS name and version (e.g. Android 14, iOS 17.4)
- Device name and model (e.g. iPhone 15, Pixel 8)
- KeenASR SDK version
- What was being attempted and what happened
- Full log output as a text file, with the SDK log level set to debug
Report a bug via email and attach log file(s).
SDK Logging
The SDK logs extensively at different levels, providing detailed information about initialization, audio capture, recognition processing, and internal state. These logs are a valuable resource for understanding SDK behavior and diagnosing issues during development.
The log level is configurable. Setting it to debug can reveal additional information that helps resolve issues. It is best to set the log level before initializing the SDK so that detailed logging is available during initialization. The log level can also be changed at any time after initialization.
[KIOSRecognizer setLogLevel:KIOSRecognizerLogLevelDebug];
KASRRecognizer.setLogLevel(KASRRecognizer.KASRRecognizerLogLevel.KASRRecognizerLogLevelDebug);
KeenASR.setLogLevel(KeenASR.LogLevel.DEBUG);
Common Issues
Linker errors on iOS. On iOS, the SDK runs on real devices and Apple Silicon simulators. Linker errors may occur when building for an x86_64 simulator target. Make sure the build target is set to a real device or an arm64 simulator.
Decoding graph not updating. If recognition results do not reflect changes to the phrase list, the decoding graph may not have been recreated. The SDK caches decoding graphs on the file system, and they must be explicitly recreated when the input changes. See FAQ Q28 for details.
Using Dashboard for Debugging
During development and testing, the Dashboard can provide valuable insight into what is happening on the device. It allows listening to recorded audio, reviewing recognition results, and inspecting the recognizer configuration for each session. This can help identify issues that are difficult to reproduce or diagnose from logs alone.
