
Lokale Sprach-KI/7-Guides
Der lokale Sprach-KI-Build
Verbinden Sie Diktat, ein lokales Sprachmodell und Sprachausgabe auf Ihrem Mac, von der Installation bis zu einem funktionierenden Sprach-Workflow.
Was Sie bauen werden
Ihre Stimme, verarbeitet auf Ihrem Mac.
Verwenden Sie NautPin zum Diktieren, LM Studio oder Ollama zur Textverarbeitung und Kokoro zur Sprachausgabe. Installieren Sie die Teile, verbinden Sie ihre lokalen Endpunkte und testen Sie das Ergebnis.
- Stapel
- NautPin · Kokoro · LM Studio oder Ollama
- Hardware
- Mac mit Apple Silicon · macOS 14+ · etwa 10 GB freier Speicher
- Sie benötigen
- Homebrew, eine Container-Laufzeitumgebung und Xcode für den Quell-Build
- Format
- Schriftliche Lektionen, Befehle und Kontrollpunkte
7 Lektionen, der Reihe nach
- 01
Bereiten Sie Ihren Mac vor
Machen Sie sich vor der Installation mit den Komponenten vertraut und prüfen Sie, was Sie benötigen.
- 02
Richten Sie die Containerlaufzeit ein
Wählen Sie Colima oder Docker Desktop und bestätigen Sie, dass Docker bereit ist.
- 03
Lokale Sprachausgabe ausführen
Starten Sie Kokoro und wählen Sie eine Stimme für Text-to-Speech.
- 04
Führen Sie ein lokales Sprachmodell aus
Machen Sie einen lokalen Chat-Endpunkt mit LM Studio oder Ollama verfügbar.
- 05
NautPin installieren
Erstellen Sie die Diktier-App und erteilen Sie die erforderlichen Berechtigungen.
- 06
Verbinden und testen Sie den Sprachworkflow
Vernetzen Sie Transkription, lokale Textverarbeitung und Sprachausgabe miteinander.
- 07
Sorgen Sie dafür, dass der Stapel funktioniert
Verbindungsprobleme diagnostizieren und nach einem Neustart wiederherstellen.
Optional: Lassen Sie Ihren Codierungsagenten bei der Einrichtung helfen
Verwenden Sie diese Eingabeaufforderung mit einem Agenten, der auf Ihrem Mac funktionieren kann. Überprüfen Sie die vorgeschlagenen Massnahmen, bevor etwas installiert oder geändert wird.
Geben Sie es Ihrem Agenten
Wenn Sie Claude Code, Cursor, Codex oder eine andere Agent-CLI verwenden, fügen Sie die Eingabeaufforderung unten ein. Es durchläuft dieselben sechs Phasen wie der manuelle Leitfaden, fordert Sie vor jeder einzelnen Phase zur Bestätigung auf und sagt Ihnen, wofür Sie die Erlaubnis erteilen müssen. Befolgen Sie die obigen Lektionen, wenn Sie die manuelle Einrichtung bevorzugen.
In Ihren Agenten einfügen
You are installing the 48nauts Local Voice Stack on macOS Apple Silicon.
# Goal
A complete local voice stack on this machine:
- Kokoro TTS (Docker, port 8880)
- A local LLM via LM Studio or Ollama (OpenAI-compatible API on localhost)
- NautPin dictation app in /Applications
- All services talking over 127.0.0.1; nothing on the network
# Prerequisites — confirm with me before starting
- macOS 14+ on Apple Silicon (M1 or newer)
- Homebrew installed (https://brew.sh)
- ~10 GB free disk space
- I will grant microphone + accessibility permissions when prompted
# Execution rules
- Execute ONE phase, then summarize what changed and ASK before the next phase
- If a command fails, diagnose before retrying; do not loop on errors
- Never bypass macOS permission prompts — pause and let me click through
- Don't commit anything to my git unless I explicitly ask
# Phase 1 — Docker via Colima (free, lightweight)
brew install colima docker docker-compose just
colima start --cpu 2 --memory 4
docker info # verify daemon responsive
# Phase 2 — Kokoro TTS container
docker run -d --name kokoro --restart unless-stopped \
-p 127.0.0.1:8880:8880 \
ghcr.io/remsky/kokoro-fastapi-cpu:latest
curl -s http://127.0.0.1:8880/v1/audio/voices | jq '.voices | length'
# should return 60+
# Phase 3 — Local LLM
Ask me whether to install LM Studio (GUI) or Ollama (CLI).
- LM Studio:
Open https://lmstudio.ai, drag to /Applications
Walk me through downloading a compatible instruction-tuned model
In Developer tab, load the model + start API server on :1234
Verify: curl http://127.0.0.1:1234/v1/models
- Ollama:
brew install ollama
brew services start ollama
ollama pull gemma3:4b
Verify: curl http://127.0.0.1:11434/v1/models
# Phase 4 — NautPin
git clone https://github.com/48Nauts-Operator/NautPin.git ~/Code/NautPin
cd ~/Code/NautPin
just build
cp -R DerivedData/Build/Products/Debug/NautPin.app /Applications/
open /Applications/NautPin.app
Tell me to grant Microphone + Accessibility permissions in
System Settings → Privacy & Security, then continue.
# Phase 5 — Configure NautPin (walk me through; cannot script)
Open NautPin → Settings:
- Speech: Parakeet TDT 0.6B v3 (European multilingual)
- AI Enhancement → Providers → add Custom (OpenAI-compatible):
Base URL → http://127.0.0.1:1234/v1 (LM Studio)
OR http://127.0.0.1:11434/v1 (Ollama)
API key → any string ("local" works)
Default model → the model ID from phase 3
- AI Enhancement → Assignments: set Transcription + Note Enhancement to this provider
- Voice Output:
Kokoro server URL → http://127.0.0.1:8880
Default voice → bf_emma
Read Selected Text hotkey → ⌘⇧S (or my preference)
# Phase 6 — Smoke test
Tell me to focus a text field, press the dictation hotkey, speak a sentence,
press again. Confirm cleaned text appears at my cursor.
Then highlight text and press the Read hotkey. Confirm Emma reads it aloud.
# Done
Print a one-line summary of what was installed and where, plus the
"uninstall to roll back" commands. Link me back to
https://48nauts.com/learnings/articles/local-voice-stack for context.Der Prompt ist bewusst vorsichtig. Er hält zwischen den Phasen an und fragt nach. Für einen vollständig autonomen Lauf können Sie in Claude Code --dangerously-skip-permissions ergänzen und den Agenten anweisen, die Bestätigungen zu überspringen. Für den ersten Durchlauf empfehlen wir das nicht.
Optionale Erweiterung: gesprochene Antworten eines Codierungsagenten
Diese Erweiterung braucht die separate Datei speak.sh, auf die der ursprüngliche Beitrag verweist. Sie ist nicht Teil dieser Serie. Die sieben Hauptlektionen funktionieren ohne sie.
Wenn Sie Claude Code im Terminal verwenden und Sprachantworten wünschen, setzen Sie unseren Stop-Hook ein.
Erstellen Sie ~/.claude/hooks/speak.sh mit dem Inhalt von speak.sh. Der separate Quellcode des Hooks ist hier nicht enthalten.
Machen Sie es ausführbar:
bash
chmod +x ~/.claude/hooks/speak.shRegistrieren Sie den Hook in ~/.claude/settings.json:
~/.claude/settings.json
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "/Users/YOU/.claude/hooks/speak.sh" }
]
}
]
}
}Nachdem Sie die Hook-Quelle erhalten und konfiguriert haben, starten Sie Ihre Coding-Agent-Sitzung neu und stellen Sie sicher, dass eine kurze Antwort gesprochen wird.
Vorübergehend stummschalten ohne Deinstallation:
bash
touch ~/.claude/voice-off # mute
rm ~/.claude/voice-off # unmuteAlternativ können Sie die im Repository enthaltenen Slash-Befehle /voice und /voice-off verwenden.