atlas/docs/WAKE_WORD_EVALUATION.md

2.6 KiB

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.