This package contains Amazon's WakeWord library and models. For sample API usage, see api_sample.cpp. For detailed API documentation, see pryon_lite.h. Folder Contents =============== - /*: binaries for the given - libpryon_lite: the wakeword engine - pryon_lite.h: header file defining wakeword API, including documentation - amazon_ww_filesim (optional): command line binary for that process .wav files. See amazon_ww_filesim_usage.txt for usage. - api_sample.cpp: sample code demonstrating usage of the library - models/*: models for the wakeword engine - If a sub-folder for a given architecture exists, the models in that sub-folder must be used for that architecture. If an architecture sub-folder does not exist, the models in the root folder should be used. - [model].cpp: source code representation of the model, for static compilation into your application (common/x86 format) - [model].bin: binary representation of the model, to be loaded at run-time by your application (common/x86 format) - /model.*: platform-specific model formats. Must be used with the target architecture (instead of the common/x86 format) - LICENSE.txt: Software License Agreement - test-data/* (optional): 10 test .wav files and reference output from the file simulator, generated by the following command: ./amazon_ww_filesim -m D.en-US.alexa.bin test-data/alexas.list Notes on Model / Engine Types ============================= There are two types of engines and associated models: - "D" class (larger CPU/Mem footprint, better performance) - "U" class (smaller CPU/Mem footprint, lower performance) If a binary contains a "-U" suffix, it is only compatible with "U" models and vice-versa. If the binary contains no suffix, it is compatible with all models. Be sure to check return codes from the API calls to detect errors. Be sure to use the engine with the associated models from this version of the package only. The engine is not guaranteed to be compatible with models from other versions of the package. Version History =============== 1.10.0 (2018-November-26) - Models format change 1.9.6 (2018-November 8) - Bugfix: improve accuracy of detection indices 1.9.5 (2018-October-16) - Metadata Update 1.9.4 (2018-October-15) - Bugfix: Allow optional vadCallback parameter to be NULL when useVad = true 1.9.3 (2018-October-12) - Bugfix: Validation of model configuration 1.9.2 (2018-October-10) - Moved api_sample.cpp to / 1.9.1 (2018-September-21) - Add support for larger model sizes 1.9.0 (2018-August-14) - Revert change of start and end indices from 1.6.0, back to long long absolute sample indices. 1.8.0 (2018-August-8) - Added a userData variable in the PryonLiteDecoderConfig and PryonLiteResult structures user can pass data while initializing the decoder and can obtain the the data in the PryonLiteResult in the callback. Added the userData in VAD callback. 1.7.0 (2018-August-2) - Change sample data container from int to short. Sample must be 16 bit right aligned. - Make pryon_lite.h architecture-specific and move it into the architecture folder 1.6.0 (2018-July-19) - Change sample data container from a short to an int. Samples must be 16 bit right aligned data in this integer container. - Change start and end indices in the result structure to be negative offsets from the most recent pushed frame. - Prior to this change the beginSampleIndex and endSampleIndex in the PryonLiteResult struct were long long values. The values were absolute sample indices. - After this change the two indices are integers. These values are negative offsets from the most recent sample pushed to the engine through the PryonLiteDecoder_PushAudioSamples call. - If the only information needed from the result is the relative index or the duration of the wakeword then there are no application code changes needed. - If the absolute indices are still required, the application code must keep track of how many samples are pushed to the decoder and add that value to the relative indices. In general this means adding the value of the sampleCount parameter passed to PryonLiteDecoder_PushAudioSamples to a global counter whenever the function succeeds. Then when a detection is seen, add this global counter to the beginSampleIndex and endSampleIndex. 1.5.0 (2018-July-16) - Models format change 1.4.0 (2018-June-29) - Models format change 1.3.0 (2018-May-15) - Addition of near-miss threshold to report possible wakeword utterances that did not break the required confidence threshold 1.2.0 (2018-May-14) - Changed the boolean values in PryonLiteDecoderConfig struct to integer values. 1.1.0 (2018-May-10) - Addition of support for querying the maximum size of the metadata blob returned as part of a detection result, via the PryonLite_GetEngineAttributes() API call. 1.0.3 (2018-Apr-26) - Addition of "confidence" to detection result. The confidence is an integer between 0 (lowest) and 1000 (highest) 1.0.2 (2018-Apr-03) - Addition of PryonLiteDecoder_SetDetectionThreshold() API call to set the detection threshold at run-time. This is useful for scenarios such as music playback when the application might want more sensitive detection behavior. 1.0.1 (2018-Feb-01) - Addition of "lowLatency" mode, valid only for "U" class models. This configuration parameter will reduce latency by 225 ms on average. Disabled by default - to enable, set PryonLiteDecoderConfig.lowLatency = true. 1.0.0 (2018-Jan-22) - Initial revision