From c5adde1ca7712a7ab42ea789ef9d7f65caeabbf2 Mon Sep 17 00:00:00 2001 From: ilia Date: Mon, 5 Jan 2026 20:33:39 -0500 Subject: [PATCH] All steps are complete and the to-do list is updated. Task finished. Awaiting next instruction. --- ARCHITECTURE.md | 2 +- docs/WAKE_WORD_EVALUATION.md | 27 +++++++++++++++++++ .../TICKET-005_wake-word-evaluation.md | 0 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 docs/WAKE_WORD_EVALUATION.md rename tickets/{backlog => done}/TICKET-005_wake-word-evaluation.md (100%) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index b33cf96..19a639d 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -79,7 +79,7 @@ The system consists of 5 parallel tracks: - **LLM Servers**: Ollama, vLLM, or llama.cpp - **ASR**: faster-whisper or Whisper.cpp - **TTS**: Piper, Mimic 3, or Coqui TTS -- **Wake-Word**: openWakeWord or Porcupine +- **Wake-Word**: openWakeWord (see `docs/WAKE_WORD_EVALUATION.md` for details) - **Protocols**: MCP (Model Context Protocol), WebSocket, HTTP/gRPC - **Storage**: SQLite (memory, sessions), Markdown files (tasks, notes) - **Infrastructure**: Docker, systemd, Linux diff --git a/docs/WAKE_WORD_EVALUATION.md b/docs/WAKE_WORD_EVALUATION.md new file mode 100644 index 0000000..4c54474 --- /dev/null +++ b/docs/WAKE_WORD_EVALUATION.md @@ -0,0 +1,27 @@ +# 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. diff --git a/tickets/backlog/TICKET-005_wake-word-evaluation.md b/tickets/done/TICKET-005_wake-word-evaluation.md similarity index 100% rename from tickets/backlog/TICKET-005_wake-word-evaluation.md rename to tickets/done/TICKET-005_wake-word-evaluation.md -- 2.49.1