atlas/docs/WAKE_WORD_EVALUATION.md
ilia 3b8b8e7d35 Evaluate and Select Wake-Word Engine (#3)
# Ticket: Evaluate and Select Wake-Word Engine

## Ticket Information

- **ID**: TICKET-005
- **Title**: Evaluate and Select Wake-Word Engine
- **Type**: Research
- **Priority**: High
- **Status**: Backlog
- **Track**: Voice I/O
- **Milestone**: Milestone 1 - Survey & Architecture
- **Created**: 2024-01-XX

## Description

Evaluate wake-word detection options and select one:
- Compare openWakeWord and Porcupine for:
  - Hardware compatibility (Linux box/Pi/NUC)
  - Licensing requirements
  - Ability to train custom "Hey Atlas" wake-word
  - Performance and resource usage
  - False positive/negative characteristics

## Acceptance Criteria

- [ ] Comparison matrix of wake-word options
- [ ] Selected engine documented with rationale
- [ ] Hardware requirements documented
- [ ] Licensing considerations documented
- [ ] Decision recorded in architecture docs

## Technical Details

Options to evaluate:
- openWakeWord (open source, trainable)
- Porcupine (Picovoice, commercial)
- Other open-source alternatives

Considerations:
- Custom wake-word training capability
- Resource usage on target hardware
- Latency requirements
- Integration complexity

## Dependencies

- TICKET-004 (architecture) - helpful but not required
- Hardware availability for testing

## Related Files

- `docs/WAKE_WORD_EVALUATION.md` (to be created)
- `ARCHITECTURE.md`

Reviewed-on: #3
2026-01-05 21:34:40 -05:00

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.