# Wake-Word Engine Evaluation This document outlines the evaluation of wake-word engines for the Atlas project, as described in TICKET-005. ## Comparison Matrix | Feature | openWakeWord | Porcupine (Picovoice) | | ------------------------------ | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | **Licensing** | Apache 2.0 (Free for commercial use) | Commercial license required for most use cases, with a limited free tier. | | **Custom Wake-Word** | Yes, supports training custom wake-words. | Yes, via the Picovoice Console, but limited in the free tier. | | **Hardware Compatibility** | Runs on Linux, Raspberry Pi, etc. Models might be large for MCUs. | Wide platform support, including constrained hardware and microcontrollers. | | **Performance/Resource Usage** | Good performance, can run on a single core of a Raspberry Pi 3. | Highly optimized for low-resource environments. | | **Accuracy** | Good accuracy, but some users report mixed results. | Generally considered very accurate and reliable. | | **Language Support** | Primarily English. | Supports multiple languages. | ## Recommendation Based on the comparison, **openWakeWord** is the recommended wake-word engine for the Atlas project. **Rationale:** - **Licensing:** The Apache 2.0 license allows for free commercial use, which is a significant advantage for the project. - **Custom Wake-Word:** The ability to train a custom "Hey Atlas" wake-word is a key requirement, and openWakeWord provides this capability without the restrictions of a commercial license. - **Hardware:** The target hardware (Linux box/Pi/NUC) is more than capable of running openWakeWord. - **Performance:** While Porcupine may have a slight edge in performance on very constrained devices, openWakeWord's performance is sufficient for our needs. The main risk with openWakeWord is the potential for lower accuracy compared to a commercial solution like Porcupine. However, given the open-source nature of the project, we can fine-tune the model and contribute improvements if needed. This aligns well with the project's overall philosophy.