Zum Hauptinhalt springen
PromptQuorumFür Menschen gemacht. Strukturiert für KI.
Startseite/Lokale LLMs Pro
Voice, Speech & Multimodal

Vollständig offline Sprachassistenten bauen 2026: Whisper + LLM + Piper (Schritt für Schritt)

·14 Min. LesezeitVon · Gründer von PromptQuorum · Entdeckungsplattform für Open-Weight- und Open-Source-KI

Ein vollständig offline arbeitender Sprachassistent benötigt 2026 drei Komponenten: whisper.cpp für die Spracherkennung, ein lokales LLM via Ollama für die Verarbeitung und Piper TTS für die Sprachausgabe. Die drei Komponenten werden durch einen Python-Orchestrator verbunden, der Audioeingaben abhört, transkribiert, an das LLM weitergibt und die Antwort in Sprache umwandelt. Auf einem Desktop mit RTX 3060 12 GB GPU beträgt die End-to-End-Latenz typischerweise 1–2 Sekunden mit Llama 3.1 8B und Whisper small. Auf einem Mac Mini M5 (24 GB) liegt sie typischerweise bei 1–1,5 Sekunden. Auf einem Raspberry Pi 5 (8 GB) beträgt sie etwa 5–8 Sekunden mit Phi-4-mini 3,8B – nutzbar für Anfragen, nicht für Konversation. Ein Wake-Word-Detektor (OpenWakeWord oder Porcupine) macht den Assistenten dauerhaft empfangsbereit, ohne Whisper ununterbrochen auszuführen.

Wichtigste Erkenntnisse

  • Der Stack für den offline Sprachassistenten lautet: whisper.cpp → Ollama LLM → Piper TTS, orchestriert durch ein Python-Skript. whisper.cpp, Ollama und Piper sind Open-Source-Software und arbeiten nach der Installation offline; die LLM-Gewichte unterliegen ihrer eigenen Lizenz (z. B. Llama-3.1-Community-Lizenz, MIT bei Phi-4).
  • End-to-End-Latenz auf Desktop-GPU (RTX 3060 12 GB): typischerweise 1–2 Sekunden. Eine Latenz in diesem Bereich wirkt bei der Sprachinteraktion in der Regel natürlich; einen Vergleich mit Alexa oder Google Assistant hat PromptQuorum nicht gemessen. Whisper small und Llama 3.1 8B liefern dieses Ergebnis.
  • Raspberry Pi 5 (8 GB) ist eine nutzbare, aber langsame Plattform. Mit Phi-4-mini 3,8B und Whisper base beträgt die Latenz typischerweise etwa 5–8 Sekunden. Geeignet für Anfragen ohne Bildschirm, nicht für konversationelle Interaktion.
  • Mac Mini M5 (24 GB Unified Memory) ist ein guter Kompromiss aus Qualität und Lautlosigkeit. Lautlos im Leerlauf, leistungsstark genug für Llama 3.1 8B mit ~50 Token/Sek. und Whisper large-v3 mit 10-fachem Echtzeittempo via Metal. Latenz 1–1,5 Sekunden.
  • Wake-Word hinzufügen, um Whisper nicht dauerhaft auszuführen. OpenWakeWord (Code Apache 2.0, vorab trainierte Modelle CC BY-NC-SA 4.0 nicht-kommerziell, benutzerdefinierte Wake-Words) ist eine verbreitete Open-Source-Option; vor kommerzieller Nutzung die Lizenz prüfen. Porcupine (Picovoice) bietet eine kostenlose Stufe für den privaten Gebrauch mit vorgefertigten Wake-Words wie „Hey Jarvis".
  • Whisper-Halluzination bei Stille ist der häufigste Pipeline-Fehler. Whisper transkribiert Stille als Füllwörter oder Zitate aus Trainingsdaten. Einen Mindestenergieschwellenwert für Audio festlegen, bevor es an Whisper weitergegeben wird – und --no-speech-threshold 0.6 in whisper.cpp konfigurieren.
  • Die Inferenz läuft lokal; dieser Stack sendet standardmäßig weder Audio noch Text an einen Cloud-Dienst. Ollama kann dennoch nach Updates suchen, Porcupine (falls genutzt) prüft seinen Schlüssel online, und Modelle werden bei der Einrichtung heruntergeladen, sofern Sie ausgehenden Datenverkehr nicht blockieren. Nach dem Aufbau mit Wireshark überprüfen. Durch die lokale Verarbeitung entfallen auf der Inferenzebene die Weitergabe an Dritte und die Frage nach einem Auftragsverarbeiter; ob Ihr Betrieb DSGVO-konform ist, hängt weiterhin von Rechtsgrundlage, technischen und organisatorischen Maßnahmen und Zweck ab. Keine Rechtsberatung.

Ein vollständig offline arbeitender Sprachassistent kombiniert 2026 drei Komponenten: whisper.cpp für die Spracherkennung, ein lokales LLM (Llama 3.1 8B, Phi-4 oder Ministral 3 8B via Ollama) für die Verarbeitung und Piper TTS für die Sprachausgabe. Die End-to-End-Latenz auf einem Desktop-GPU-Setup beträgt typischerweise 1–2 Sekunden. Auf dem Mac Mini M5 liegt sie typischerweise unter 1,5 Sekunden. Auf dem Raspberry Pi 5 beträgt sie etwa 5–8 Sekunden – nutzbar für Anfragen ohne Bildschirm, nicht für natürliche Konversation. Dieser Leitfaden führt durch jeden Schritt mit Hardware-Tabellen, Python-Orchestrator-Code, Wake-Word-Setup und Latenzoptimierungsmaßnahmen.

Vollständig offline Sprachassistenten bauen 2026: Whisper + LLM + Piper (Schritt für Schritt)

Kurzfakten

  • STT-Schicht: whisper.cpp (beste Wahl für Apple Silicon und Embedded-Hardware), faster-whisper (beste Wahl für NVIDIA-GPU-Python-Pipelines).
  • LLM-Schicht: Ollama mit Llama 3.1 8B (empfohlen), Phi-4 (kleiner, gute Qualität) oder Ministral 3 8B (vergleichbare Qualität zu Llama 3.1 8B).
  • TTS-Schicht: Piper (schnell, nur CPU, Echtzeit auf Pi), Coqui TTS (bessere Qualität, benötigt GPU).
  • Wake-Word-Optionen: OpenWakeWord (Code Apache 2.0, Modelle nicht-kommerziell, vollständig offline), Porcupine (kostenlose Stufe, 1 benutzerdefiniertes Wake-Word).
  • Mindesthardware: Raspberry Pi 5 mit 8 GB RAM (ca. 90 €) für 5–8 Sekunden Latenz.
  • Empfohlene Hardware: Mac Mini M5 24 GB (ca. 600 €) oder Desktop mit RTX 3060 12 GB (ca. 750 €) für 1–2 Sekunden Latenz.
  • Sprachen: Whisper unterstützt 99 Sprachen. Piper unterstützt 20+ Sprachpakete. Die LLM-Performance variiert je nach Sprache.

Warum einen lokalen Sprachassistenten bauen?

Alexa, Siri und Google Assistant leiten die meisten Sprachanfragen über Cloud-Server (aktuelle Datenschutzhinweise des jeweiligen Anbieters prüfen). Ein lokaler Sprachassistent verarbeitet alles auf der eigenen Hardware.

  • Datenschutz: Standardmäßig verlässt kein Audio das eigene Netzwerk. Kein Wake-Word-Audio in der Cloud gespeichert. Keine Gesprächshistorie auf Servern Dritter. Kritisch für Beschäftigte im Gesundheitswesen, Anwälte, Journalisten und alle mit vertraulicher Arbeit.
  • Kosten: Kein Abonnement. Google One kostet ca. 1,99–9,99 €/Monat. Ein lokaler Assistent ist eine einmalige Hardwareinvestition.
  • Anpassbarkeit: Wake-Word, Persönlichkeit, System-Prompt und Funktionen selbst wählen. Eigene Befehle hinzufügen, lokale Hausautomationssysteme verbinden, lokale APIs integrieren.
  • Offline-Betrieb: Funktioniert ohne Internet. Stromausfall (mit USV) + Internetausfall: Der lokale Assistent funktioniert weiterhin. Nützlich für Hütten, abgelegene Standorte und Notfallvorbereitung.
  • Was Sie aufgeben: Websuche, Smart-Home-Integration mit proprietären Clouds, Kalendersynchronisierung mit Cloud-Diensten und die jahrelange RLHF-Optimierung, die Alexa/Siri bei Randfällen geschmeidig macht.
  • Smart-Home-Integration: Verbinden Sie Ihren lokalen Sprachassistenten direkt mit Home Assistant, um Lichter, Thermostate und Sensoren per Sprache zu steuern — die Inferenz läuft offline. Siehe lokaler Sprachassistent für Smart Home → für die vollständige Piper + Whisper + Home-Assistant-Installationsanleitung.

Die Drei-Schichten-Architektur

Der offline Sprachassistent besteht aus drei unabhängigen Schichten, die durch einen Python-Orchestrator verbunden werden.

📍 In einem Satz

Mikrofon → whisper.cpp (STT) → Ollama LLM → Piper TTS → Lautsprecher: drei unabhängige Komponenten, verbunden durch einen ~50-Zeilen-Python-Orchestrator.

💬 In einfachen Worten

Stellen Sie es sich wie eine Telefonvermittlung vor: Sie sprechen, Whisper schreibt es auf, das LLM denkt sich eine Antwort aus und schreibt sie auf, Piper liest sie vor. Jeder Schritt ist ein eigenständiges Programm; Python übergibt den Text zwischen ihnen.

  • Schicht 1 — STT (Spracherkennung): whisper.cpp oder faster-whisper. Konvertiert Mikrofon-Audio in Text. Läuft offline, ohne Netzwerkzugriff.
  • Schicht 2 — LLM (Verarbeitung): Ollama mit Llama 3.1 8B, Phi-4 oder Ministral 3 8B. Nimmt den transkribierten Text + Gesprächshistorie + System-Prompt entgegen und generiert eine Antwort. Läuft offline, ohne Netzwerkzugriff.
  • Schicht 3 — TTS (Text-to-Speech): Piper oder Coqui TTS. Konvertiert den LLM-Antworttext in Audio und gibt es über den Lautsprecher aus. Läuft offline, ohne Netzwerkzugriff.
  • Orchestrator: Ein Python-Skript, das die drei Komponenten verbindet: Audio vom Mikrofon aufnehmen → an STT übergeben → Transkript an LLM übergeben → Antwort an TTS übergeben → Audio abspielen.
  • Optionales Wake-Word: Ein leichtgewichtiger Dauerdetektor (OpenWakeWord, Porcupine), der die vollständige Pipeline nur auslöst, wenn die Wake-Phrase erkannt wird. Ohne ihn läuft whisper.cpp kontinuierlich – mit höherem CPU-Verbrauch und mehr Fehlauslösungen.
Offline-Sprachassistent-Pipeline: whisper.cpp für Spracherkennung, Ollama mit Llama 3.1 8B für die Verarbeitung und Piper TTS für die Sprachausgabe, verbunden durch einen Python-Orchestrator mit optionalem OpenWakeWord- oder Porcupine-Wake-Word-Gate.
Offline-Sprachassistent-Pipeline: whisper.cpp für Spracherkennung, Ollama mit Llama 3.1 8B für die Verarbeitung und Piper TTS für die Sprachausgabe, verbunden durch einen Python-Orchestrator mit optionalem OpenWakeWord- oder Porcupine-Wake-Word-Gate.

Hardwareanforderungen

Vier Hardware-Konfigurationen, geordnet nach Latenz und Kosten. Alle unterstützen den vollständigen Whisper + LLM + Piper Stack. Die Werte sind typische bzw. Richtwerte je Hardware-Klasse und wurden nicht von PromptQuorum gemessen.

Konfiguration
STT-Modell
LLM-Modell
TTS
Gesamtkosten
End-to-End-Latenz
Raspberry Pi 5 (8 GB)Whisper base (CPU)Phi-4-mini 3,8B Q4Piper (CPU)ca. 90 €5–8 Sek.
Mini-PC (16 GB RAM)Whisper small (CPU)Llama 3.1 8B Q4 (CPU)Piper (CPU)ca. 270 €3–5 Sek.
Desktop (RTX 3060 12 GB)Whisper large-v3 (GPU)Llama 3.1 8B Q4 (GPU)Piper oder Coqui (CPU/GPU)ca. 750 €1–2 Sek.
Mac Mini M5 (24 GB)Whisper large-v3 (Metal)Llama 3.1 8B (Metal)Piper (CPU)ca. 600 €1–1,5 Sek.

💡Tipp: Der Mac Mini M5 ist der kosteneffizienteste Weg zu einer Latenz unter 2 Sekunden. Er ist im Leerlauf lautlos, führt Whisper Metal und Ollama gleichzeitig auf Unified Memory aus und erfordert kein NVIDIA-Treibermanagement.

Schritt 1: Spracherkennung einrichten

whisper.cpp für Apple Silicon und Embedded-Hardware installieren; faster-whisper für NVIDIA-GPU-Setups installieren.

  • whisper.cpp installieren: git clone https://github.com/ggerganov/whisper.cpp && cd whisper.cpp && make -j4
  • Modell herunterladen: bash ./models/download-ggml-model.sh small (small = 3,4 % WER, gutes Gleichgewicht zwischen Geschwindigkeit und Genauigkeit)
  • Transkription testen: ./main -m models/ggml-small.bin -f test.wav – sollte genauen Text ausgeben.
  • Metal auf Mac aktivieren: make -j4 WHISPER_COREML=1 dann bash models/generate-coreml-model.sh small
  • Whisper-Modellauswahl: base für Raspberry Pi (1 GB RAM, geringe Latenz), small für den besten Kompromiss (2 GB RAM, 3,4 % WER), large-v3 für höchste Genauigkeit (10 GB VRAM/RAM).
  • Stille-Unterdrückung konfigurieren: Flags --no-speech-threshold 0.6 --suppress-blank hinzufügen, um zu vermeiden, dass Stille als halluzinierter Text transkribiert wird.
  • Mit 10-Sekunden-Aufnahme testen: Einen Testsatz einsprechen und prüfen, ob Whisper ihn korrekt transkribiert. Sowohl unter Lärmbedingungen als auch bei leiser Sprache testen.

Schritt 2: Lokales LLM einrichten

Ollama installieren und das LLM-Modell herunterladen. Einen System-Prompt für das Verhalten eines Sprachassistenten konfigurieren – kürzere Antworten, kein Markdown, angemessene Persönlichkeit.

  • Ollama installieren: Von ollama.com herunterladen. Verfügbar für macOS, Linux und Windows. Installation in unter 2 Minuten.
  • Modell herunterladen: ollama pull llama3.1:8b (empfohlen) oder ollama pull phi4 (leichter, gut für Systeme mit 16 GB RAM).
  • Testen: ollama run llama3.1:8b "What is the capital of France?" – prüfen, ob die Antwort korrekt und schnell ist.
  • System-Prompt für Sprache: Einen kurzen, direktiven System-Prompt verwenden: „You are a helpful voice assistant. Keep responses concise — 1–3 sentences maximum. Never use bullet points, markdown, or formatting. Speak naturally as if in conversation."
  • Temperatur: Temperatur auf 0,3–0,5 setzen für vorhersehbarere, sachlichere Antworten. Niedrigere Temperatur reduziert Halluzinationen bei Sprachantworten.
  • Maximale Token-Anzahl: Antwortlänge mit --num-predict 150 begrenzen – lange Antworten benötigen mehr TTS-Zeit und wirken bei Sprachinteraktion unnatürlich.

Schritt 3: Text-to-Speech einrichten

Piper für alle Hardware-Konfigurationen installieren. Läuft in Echtzeit auf CPU einschließlich Raspberry Pi, verfügt über 20+ Sprachpakete und benötigt keine GPU.

  • Piper installieren: pip install piper-tts
  • Stimme herunterladen: piper --download-dir voices --update-voices --voice en_US-lessac-medium (oder eine beliebige Stimme von der Piper-Stimmen-Seite auf Hugging Face).
  • Testen: echo "Hello, how can I help you today?" | piper --model voices/en_US-lessac-medium.onnx --output-raw | aplay -r 22050 -f S16_LE -c 1
  • Audio-Ausgabe: Piper gibt rohes PCM oder WAV aus. Mit aplay (Linux), afplay (Mac) weiterleiten oder die Python-Bibliothek sounddevice für plattformübergreifende Wiedergabe verwenden.
  • Alternative (bessere Qualität): Coqui VITS-Backend – pip install TTS installieren, tts --model_name tts_models/en/vctk/vits verwenden. Benötigt ~2 GB VRAM; 2–3× langsamer als Piper, aber merklich natürlicher.
  • Stimmauswahl: Für Sprachassistenten eine Stimme mittlerer Qualität statt hoher wählen – mittlere Stimmen sind schneller und der Unterschied über einen Lautsprecher kaum wahrnehmbar.

Schritt 4: Pipeline verbinden

Ein Python-Orchestrator verbindet STT → LLM → TTS. Das Skript nimmt Audio vom Mikrofon auf, transkribiert es mit Whisper, sendet das Transkript an Ollama, konvertiert die Antwort mit Piper in Sprache und spielt sie ab.

python
#!/usr/bin/env python3
"""Minimal offline voice assistant: Whisper STT + Ollama LLM + Piper TTS."""

import subprocess
import tempfile
import sounddevice as sd
import soundfile as sf
import numpy as np
import requests
import json

SAMPLE_RATE = 16000
RECORD_SECONDS = 5
OLLAMA_URL = "http://localhost:11434/api/generate"
WHISPER_BIN = "./whisper.cpp/main"
WHISPER_MODEL = "./whisper.cpp/models/ggml-small.bin"
PIPER_BIN = "piper"
PIPER_VOICE = "voices/en_US-lessac-medium.onnx"
SYSTEM_PROMPT = (
    "You are a helpful voice assistant. Keep responses to 1-3 sentences. "
    "Never use markdown, bullet points, or formatting. Speak naturally."
)

conversation_history = []

def record_audio(seconds: int = RECORD_SECONDS) -> np.ndarray:
    print("Listening...")
    audio = sd.rec(int(seconds * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=1, dtype="int16")
    sd.wait()
    return audio

def transcribe(audio: np.ndarray) -> str:
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        sf.write(f.name, audio, SAMPLE_RATE)
        result = subprocess.run(
            [WHISPER_BIN, "-m", WHISPER_MODEL, "-f", f.name, "--no-timestamps", "--no-prints"],
            capture_output=True, text=True
        )
    return result.stdout.strip()

def ask_llm(text: str) -> str:
    conversation_history.append({"role": "user", "content": text})
    response = requests.post(OLLAMA_URL, json={
        "model": "llama3.1:8b",
        "system": SYSTEM_PROMPT,
        "messages": conversation_history,
        "stream": False,
    })
    reply = response.json()["message"]["content"]
    conversation_history.append({"role": "assistant", "content": reply})
    return reply

def speak(text: str) -> None:
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        subprocess.run(
            [PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f.name],
            input=text.encode("utf-8"), check=True
        )
        data, sr = sf.read(f.name)
        sd.play(data, sr)
        sd.wait()

def main():
    print("Voice assistant ready. Press Ctrl+C to stop.")
    while True:
        audio = record_audio()
        transcript = transcribe(audio)
        if not transcript or len(transcript) < 3:
            continue
        print(f"You: {transcript}")
        response = ask_llm(transcript)
        print(f"Assistant: {response}")
        speak(response)

if __name__ == "__main__":
    main()

📌Hinweis: Dies ist eine minimale Pipeline zur Verdeutlichung – sie nimmt Audio mit fester Dauer auf. Für den produktiven Einsatz VAD (Voice Activity Detection) verwenden, um bis zum Ende der Sprache aufzunehmen statt einer festen Dauer. faster-whisper enthält Silero VAD; für whisper.cpp den --stream-Modus verwenden oder WebRTC VAD mit der Python-Bibliothek webrtcvad implementieren.

Schritt 5: Wake-Word-Erkennung

Ein Wake-Word-Detektor führt ein leichtgewichtiges Modell dauerhaft aus und löst die vollständige Pipeline nur aus, wenn er die gewählte Phrase erkennt. Ohne ihn läuft Whisper kontinuierlich – mit höherem CPU-/GPU-Verbrauch und mehr Fehlauslösungen durch Hintergrundgeräusche.

  • OpenWakeWord (Code: Apache 2.0; vorab trainierte Modelle: CC BY-NC-SA 4.0, nicht-kommerziell): Die vorab trainierten Modelle sind nur für die nicht-kommerzielle Nutzung lizenziert; vor kommerzieller Nutzung die Lizenz im OpenWakeWord-Repository prüfen. Der Code ist Open-Source, läuft auf CPU, unterstützt benutzerdefinierte Wake-Words durch Fine-Tuning auf eigene Phrasen. Installation: pip install openwakeword. Läuft auf Raspberry Pi. Beste Wahl für vollständig lokale Setups (Modelllizenz vor kommerzieller Nutzung prüfen).
  • Porcupine (Picovoice): Proprietär, aber mit kostenloser Stufe für den privaten Gebrauch. Vorgefertigte Wake-Words umfassen „Alexa", „Hey Siri", „Ok Google" und benutzerdefinierte Optionen wie „Hey Jarvis". Sehr genaue Erkennung mit geringer Fehlauslösungsrate. Installation: pip install pvporcupine.
  • Integrationsmuster: OpenWakeWord/Porcupine in einer Schleife ausführen. Bei erkanntem Wake-Word einen „Ding"-Ton abspielen (Nutzer-Feedback), dann die Whisper + LLM + TTS-Pipeline für eine Anfrage auslösen. Nach der TTS-Wiedergabe zur Wake-Word-Erkennung zurückkehren.
  • Dauerbetrieb: Die Wake-Word-Erkennung verbraucht ~2–5 % CPU auf dem Raspberry Pi 5 – vernachlässigbar. Der Assistent kann 24/7 mit minimalem Stromverbrauch laufen.
  • Benutzerdefinierte Wake-Words (OpenWakeWord): 500 positive und 500 negative Audiobeispiele der eigenen Wake-Phrase per TTS generieren, dann OpenWakeWord in unter 30 Minuten auf CPU feinabstimmen. Genauigkeit vergleichbar mit Porcupine für geläufige englische Wörter.

Latenzoptimierung

Das Ziel von 1–2 Sekunden ist auf Desktop-Hardware mit den richtigen Einstellungen erreichbar. Die Latenz verteilt sich auf die drei Schichten:

📍 In einem Satz

STT fügt 0,2–0,5 Sek. hinzu, LLM-First-Token-Latenz 0,5–1,5 Sek., TTS 0,1–0,3 Sek. – insgesamt 1–2 Sekunden auf einem Desktop-GPU.

💬 In einfachen Worten

Das LLM ist der größte Engpass. Die effektivste Optimierung besteht darin, TTS-Ausgabe zu streamen, während das LLM Token generiert – der Nutzer hört die Antwort, bevor das LLM fertig geschrieben hat.

  • STT-Optimierung (~0,2–0,5 Sek.): Whisper small statt large-v3 verwenden. VAD einsetzen, um Stille vor der Übergabe an Whisper abzuschneiden – kürzeres Audio = schnellere Transkription.
  • LLM-Optimierung (~0,5–1,5 Sek. First Token): Modell beim Start vorladen (Ollama erledigt dies automatisch). Q4_K_M-Quantisierung für das beste Geschwindigkeits-Qualitäts-Verhältnis verwenden. --num-predict 100–150 setzen, um die Antwortlänge zu begrenzen.
  • LLM → TTS streamen: LLM-Ausgabe Token für Token streamen. TTS bei jedem vollständigen Satz starten (Satzende durch Punkt/Fragezeichen erkannt). Dies reduziert die wahrgenommene Latenz um 0,3–0,7 Sekunden – der Nutzer hört den Anfang der Antwort, während das LLM noch das Ende generiert.
  • TTS-Optimierung (~0,1–0,3 Sek.): Piper generiert das erste Audio in 50 ms. Piper beim Start vorinitialisieren. --output-raw verwenden, um Audio beim Generieren zu streamen, statt auf eine vollständige Datei zu warten.
  • Modelle im Speicher halten: Ollama hält Modelle automatisch im VRAM warm. whisper.cpp im Stream-Modus bleibt im Speicher. Modelle zwischen Anfragen nicht neu laden.
  • Latenz-Ziele nach Hardware: Pi 5: 5–8 Sek. (akzeptabel für nicht-konversationelle Nutzung). Mini-PC CPU: 3–5 Sek. (grenzwertig konversationell). Desktop-GPU: 1–2 Sek. (natürlich). Mac M5: 1–1,5 Sek. (ausgezeichnet).
End-to-End-Latenz des Sprachassistenten nach Hardware-Stufe: Raspberry Pi 5 (8 GB) mit 5–8 Sek., Mini-PC (16 GB RAM) mit 3–5 Sek., Desktop mit RTX 3060 12 GB mit 1–2 Sek. und Mac Mini M5 (24 GB) mit 1–1,5 Sek. – der niedrigste Wert dieser Stufen.
End-to-End-Latenz des Sprachassistenten nach Hardware-Stufe: Raspberry Pi 5 (8 GB) mit 5–8 Sek., Mini-PC (16 GB RAM) mit 3–5 Sek., Desktop mit RTX 3060 12 GB mit 1–2 Sek. und Mac Mini M5 (24 GB) mit 1–1,5 Sek. – der niedrigste Wert dieser Stufen.

Datenschutz und Sicherheit

Bei einem korrekt aufgebauten lokalen Sprachassistenten läuft die Inferenz auf der eigenen Hardware, und standardmäßig werden weder Audio noch Text an einen Cloud-Dienst gesendet. Alle Verarbeitung – Audio-Aufnahme, Spracherkennung, LLM-Inferenz und TTS – läuft vollständig auf der eigenen Hardware.

  • Mit Wireshark überprüfen: Wireshark auf dem Netzwerkinterface während eines Gesprächs mit dem Assistenten ausführen. Es sollten keine Audiodaten oder Transkripte den Rechner verlassen; Update-Prüfungen und Schlüsselvalidierung können weiterhin auftauchen, sofern sie nicht blockiert werden. Unerwarteter Datenverkehr weist auf eine Fehlkonfiguration hin – prüfen, ob Ollamas externe API bei öffentlicher IP-Adresse deaktiviert ist.
  • Kein Audio gespeichert: Weder whisper.cpp noch faster-whisper schreiben standardmäßig Audiodateien – sie verarbeiten im Arbeitsspeicher. Der Python-Orchestrator in diesem Leitfaden schreibt eine temporäre WAV-Datei für whisper.cpp, die nach der Transkription gelöscht wird.
  • Keine Gesprächshistorie gespeichert: Die Gesprächshistorie im Beispielskript liegt nur im Arbeitsspeicher und wird beim Neustart zurückgesetzt. Für persistente Historie eine explizite Speicherung mit lokaler Datenbank und Verschlüsselung im Ruhezustand implementieren.
  • DSGVO-Konformität: Da die Inferenz lokal läuft, braucht ein rein interner lokaler Sprachassistent für die Inferenzebene möglicherweise keinen Auftragsverarbeitungsvertrag nach Art. 28 DSGVO; das hängt von Ihrem Setup ab und ist keine Rechtsberatung. Ob Ihr Betrieb DSGVO-konform ist, hängt weiterhin von Rechtsgrundlage, technischen und organisatorischen Maßnahmen und Zweck ab. Bei Zweifeln den Datenschutzbeauftragten fragen.
  • Netzwerkisolierung: Für maximalen Datenschutz eine Firewall-Regel hinzufügen, die ausgehenden Datenverkehr vom Assistenten-Prozess blockiert. Ollama und whisper.cpp funktionieren normal – sie benötigen nach dem Modell-Download keinen Netzwerkzugriff.

Häufige Fragen

Kann ich einen lokalen Sprachassistenten für die Smart-Home-Steuerung verwenden?

Ja, wenn das Smart-Home-System über eine lokale API verfügt. Home Assistant (HASS) bietet hervorragende lokale Integration – die HASS REST API kann nach der LLM-Interpretation des Befehls aus dem Orchestrator aufgerufen werden. Das LLM fungiert als Intent-Parser: „Wohnzimmerlicht einschalten" → strukturiertes JSON → HASS API-Aufruf. Proprietäre Smart-Home-Systeme (Ring, Nest, Philips Hue Cloud) ohne lokale API-Unterstützung lassen sich ohne Internet nicht lokal integrieren.

Wie viele Sprachen unterstützt der lokale Sprachassistent?

Whisper unterstützt 99 Sprachen für die Spracherkennung. Piper unterstützt 20+ Sprachpakete für TTS. Die Sprachunterstützung des LLMs hängt vom Modell ab – Llama 3.1 8B verarbeitet Englisch, Französisch, Deutsch, Spanisch, Italienisch und Portugiesisch gut. Für vollständige Mehrsprachigkeit in weniger verbreiteten Sprachen ein speziell für diese Sprachen trainiertes Modell wählen.

Was ist die Mindesthardware für eine Latenz unter 2 Sekunden?

Ein Mac Mini M5 (24 GB, ca. 600 €) oder ein Desktop mit NVIDIA RTX 3060 12 GB (GPU ca. 330 €, Gesamtsystem ca. 750 €) erreichen beide 1–2 Sekunden Latenz. Die Schlüsselanforderungen sind: 8+ GB GPU-VRAM für Llama 3.1 8B mit Q4, plus Metal- oder CUDA-Beschleunigung für Whisper. Ein 16 GB RAM CPU-only Setup (Mini-PC, ca. 270 €) erreicht 3–5 Sekunden – nutzbar, aber unterhalb der Schwelle für „fühlt sich natürlich an".

Funktioniert die Whisper + LLM + Piper Pipeline unter Windows?

Ja. whisper.cpp verfügt über Windows-Build-Anleitungen mit cmake und Visual Studio. Ollama läuft nativ unter Windows 10/11 mit NVIDIA-GPU-Unterstützung. Piper hat Windows-Binärdateien. Der Python-Orchestrator läuft unter Windows mit sounddevice für die Audio-Aufnahme. Die Hauptkomplexität unter Windows ist der Build von whisper.cpp aus dem Quellcode – alternativ faster-whisper (pip install, kein Build erforderlich) unter Windows mit NVIDIA-GPU verwenden.

Wie füge ich dem lokalen Sprachassistenten Websuche hinzu?

Websuche kann durch Integration eines lokalen Suchwerkzeugs in den Orchestrator hinzugefügt werden. Möglichkeiten: (1) DuckDuckGo API (kostenlos, kein Account erforderlich) für allgemeine Anfragen – Ergebnis parsen und in den LLM-Prompt einbetten. (2) Lokalen News-RSS-Feed für aktuelle Ereignisse verwenden. (3) Lokales RAG-System (AnythingLLM, PrivateGPT) mit eigener Dokumentensammlung für domänenspezifische Suche. Dies erhöht die Latenz um 0,5–2 Sekunden je nach Suchmethode.

Muss ich bei der Verwendung eines lokalen Sprachassistenten die DSGVO beachten?

Bei rein internem Gebrauch auf eigener Hardware ohne Weitergabe an Dritte entfällt auf der Inferenzebene die Weitergabe personenbezogener Daten an Dritte; je nach Setup kann ein Auftragsverarbeitungsvertrag nach Art. 28 DSGVO dafür entbehrlich sein. Ob Ihr Betrieb DSGVO-konform ist, hängt dennoch von Rechtsgrundlage, technischen und organisatorischen Maßnahmen und Zweck ab. Wird der Assistent für Dritte betrieben (z. B. im Unternehmen für Mitarbeitende), gelten die Informationspflichten nach Art. 13/14. Dies ist keine Rechtsberatung; bei Zweifeln den Datenschutzbeauftragten fragen.

Quellen

← Zurück zu Lokale LLMs Pro

MCP