-
Notifications
You must be signed in to change notification settings - Fork 0
Home
MMM-Assistant is a modular, offline-first voice assistant framework for MagicMirror².
It acts as the central orchestrator that connects hotword detection, speech recognition, local LLMs, and text-to-speech into a single assistant pipeline.
The project is designed with privacy, extensibility, and Raspberry Pi compatibility in mind.
- Run fully locally (no cloud dependency)
- Keep components loosely coupled
- Allow easy swapping of ASR, LLM, and TTS engines
- Integrate cleanly with MagicMirror’s module system
- Serve as an alternative base to cloud assistants
MMM-Assistant follows a pipeline-based architecture:
Hotword Detector
↓
Speech-to-Text (ASR)
↓
MMM-Assistant (Core Orchestrator)
↓
LLM (Local)
↓
Text-to-Speech (TTS)
↓
Audio Output
MMM-Assistant itself does not perform detection, transcription, or synthesis.
It coordinates these stages using MagicMirror notifications.
- Receive transcribed user input
- Maintain short-term conversational context
- Forward prompts to a local LLM
- Receive and store assistant responses
- Trigger TTS playback
- Act as the single “brain” of the assistant
MMM-Assistant relies on MagicMirror notification events.
Typical flow:
- Hotword module signals listening state
- ASR module sends final transcript
- MMM-Assistant sends prompt to LLM backend
- LLM response is returned
- MMM-Assistant forwards text to TTS module
This approach keeps modules independent and replaceable.
- Local LLM via HTTP (e.g. Ollama)
- Notification-based TTS triggering
- Context-aware responses
- Streaming ASR + LLM responses
- Intent detection layer
- MQTT / Home Assistant integration
- Audio cues (listening, thinking, speaking)
- Wake-word state management
MMM-Assistant uses standard MagicMirror configuration.
Example:
{
module: "MMM-Assistant",
position: "top_left",
config: {
// Experimental – subject to change
}
}Configuration options will expand as the module stabilizes.
- Version: 0.0.1
- Status: Experimental
- Breaking changes expected
- Not production-ready
This release focuses on validating the architecture.
- Keep modules loosely coupled
- Prefer notifications over direct imports
- Avoid cloud-only dependencies
- Ensure Raspberry Pi compatibility
Pull requests and architectural discussions are welcome.
MIT