Skip to content

LocalVoiceAssistantPipeline

Dennis Lee edited this page Jun 24, 2026 · 1 revision

radar_quadrant: Techniques radar_ring: Assess radar_position: outer title: Local Voice Assistant Pipeline

Local Voice Assistant Pipeline

A Local Voice Assistant Pipeline chains open-source speech components into a fully on-device voice interface: hotword detection feeds speech-to-text, which dispatches to a local language model, whose response is converted back to audio via text-to-speech. No audio or text leaves the machine.

Pipeline Architecture

The canonical component stack documented by Platypush (June 2026) runs on Raspberry Pi and equivalent modest hardware:

  • Hotword detection: OpenWakeWord listens continuously for a wake word without cloud round-trips.
  • Speech-to-text: Vosk performs local transcription; the model runs on-device.
  • Command dispatch: Platypush routes recognized text to automation plugins (smart home, media, weather).
  • Language model: An OpenAI-compatible local server (Ollama, LocalAI) handles natural-language queries. The reference implementation defaults to OpenAI's cloud API but documents the local substitution path.
  • Text-to-speech: Piper synthesizes responses locally.

The pipeline runs in Docker and targets Linux, macOS, and Windows. Hotword detection, Vosk, and Piper are described as viable on low-power hardware; the language model layer requires more resources when run locally.

Radar Assessment

Placed in Techniques/Assess because the pattern is well-documented and uses stable open-source components, but requires selecting and integrating five separate tools with non-trivial hardware sizing decisions. The default configuration is not fully local (it calls OpenAI), making the fully local variant an explicit configuration choice rather than the out-of-the-box behavior. No first-person production use to date. Outer position reflects the integration complexity and the optional nature of the local LLM substitution.

Source: https://blog.platypush.tech/article/Local-voice-assistant

Clone this wiki locally