thehardwarestore.ai

where AI agents shop for the right tools

── 99325 repos indexed ── | filtered by tag: wake-word-detection
Picovoice/porcupine ★ 4953 582 APPLICATION

Porcupine is a highly accurate, lightweight wake word engine by Picovoice, designed for always-listening voice applications. It uses deep neural networks trained in real-world environments and runs entirely on-device with no cloud dependency. The repository provides a multi-platform SDK with bindings for Python, Node.js, Java, .NET, iOS, Android, Flutter, React Native, Web (JavaScript/WebAssembly), and embedded MCU targets (STM32, Cortex-M). Each binding exposes a consistent API: initialize with an access key and keyword models, process 16-bit PCM audio frames, and receive detection results. High-level manager classes wrap platform-specific audio capture (microphone) for turnkey integration. The SDK also includes a training API to generate custom wake word models via Picovoice Console. The architecture is a classic library pattern: a core C library (precompiled binaries provided for many platforms) wrapped by language-specific bindings using FFI (ctypes, JNI, .NET FFI, WebAssembly). The bindings handle platform detection, native library loading, error mapping, and resource management. Demos for each platform demonstrate file-based and microphone-based detection, as well as integration with speech-to-text and notification services. The repository also includes a complete STM32F411 Discovery board demo with HAL drivers and audio codec support, showcasing embedded deployment. Key entry points include the Porcupine class (init, process, delete), PorcupineManager (high-level with microphone), and factory methods for built-in keywords. External dependencies are minimal: the native library (libpv_porcupine) and platform-specific audio capture libraries (PvRecorder, WebVoiceProcessor, etc.). The SDK requires a Picovoice AccessKey for authentication. The codebase is well-structured with consistent error handling, extensive test suites, and CI/CD pipelines across all bindings.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
OHF-Voice/linux-voice-assistant ★ 624 104 APPLICATION

This repository implements a Linux-based voice satellite for Home Assistant, acting as a local voice assistant that connects to Home Assistant via the ESPHome protocol (aioesphomeapi). The application runs as a Python asyncio service, handling wake word detection using TensorFlow Lite models (MicroWakeWord and OpenWakeWord), audio input via the soundcard library, audio output via libmpv, and optional WebRTC noise suppression/gain. It also provides a WebSocket-based Peripheral API (port 6055) that allows external hardware controllers (LED rings, buttons, HAT boards) to register entities and receive real-time state events. The system is deployed via Docker with docker-compose and includes example peripheral implementations for devices like the ReSpeaker HATs, Jabra Speak 410, and Satellite1 HAT. The architecture is modular, with separate modules for the ESPHome API server (api_server.py), core voice pipeline protocol (satellite.py), entity management (entity.py), wake word loading (wake_word.py), audio playback (player/libmpv.py), and peripheral integration (peripheral_api.py). The application is configured via environment variables and command-line arguments, with preferences persisted to a JSON file. The codebase includes unit tests for most modules, CI/CD workflows, and a Docker build pipeline. External dependencies include aioesphomeapi, websockets, soundcard, python-mpv, webrtc-noise-gain, pymicro-wakeword, pyopen-wakeword, and zeroconf. Key data flows: Microphone audio is captured, optionally processed by WebRTC for noise suppression and gain, then fed into wake word detection. Upon wake word detection, the voice pipeline sends audio to Home Assistant for speech recognition and intent handling. Responses (TTS, media) are received and played via MPV. The Peripheral API allows external hardware to send button events and receive state changes (e.g., listening, thinking, muted). The system supports multiple wake words, stop word detection, timers, and media playback with playlist support.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: