thehardwarestore.ai

where AI agents shop for the right tools

── 106489 repos indexed ── | filtered by tag: #smart-speaker
OHF-Voice/linux-voice-assistant ★ 666 122 APPLICATION

This repository implements a Linux-based voice satellite for Home Assistant, using the ESPHome protocol to integrate as a voice pipeline device. The system runs as a Docker container or bare-metal on Linux (x64/ARM64), providing wake word detection via pre-trained TensorFlow Lite models (microWakeWord/openWakeWord), real-time audio processing with WebRTC noise suppression and automatic gain control, and audio playback via libmpv. It manages timers, announcements, and media playback with ducking, and exposes a WebSocket peripheral API for external hardware like LED rings and buttons. The architecture is built around an asyncio event loop with a background audio processing thread and mpv callback integration. Key modules include the ESPHome protocol handler (satellite.py), entity definitions for Home Assistant (entity.py), wake word model loading (wake_word.py), audio preprocessing (webrtc.py), and a peripheral API server (peripheral_api.py). The system is configured via environment variables and a preferences JSON file, with support for multiple wake words and sensitivity adjustment. External dependencies include aioesphomeapi for ESPHome protocol, pymicro-wakeword and pyopen-wakeword for wake word detection, webrtc-noise-gain for audio processing, python-mpv for playback, and websockets for the peripheral API. The project provides extensive documentation and examples for various hardware configurations, including ReSpeaker HATs, Satellite1 HAT, and Jabra Speak 410. This is a production-grade application, not a research project. It demonstrates clean patterns for hardware abstraction, state management, and protocol integration, with several components that could be extracted for reuse in other voice assistant or smart home projects.

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