Zurück zu Learnings

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

  1. 01

    Bereiten Sie Ihren Mac vor

    Machen Sie sich vor der Installation mit den Komponenten vertraut und prüfen Sie, was Sie benötigen.

  2. 02

    Richten Sie die Containerlaufzeit ein

    Wählen Sie Colima oder Docker Desktop und bestätigen Sie, dass Docker bereit ist.

  3. 03

    Lokale Sprachausgabe ausführen

    Starten Sie Kokoro und wählen Sie eine Stimme für Text-to-Speech.

  4. 04

    Führen Sie ein lokales Sprachmodell aus

    Machen Sie einen lokalen Chat-Endpunkt mit LM Studio oder Ollama verfügbar.

  5. 05

    NautPin installieren

    Erstellen Sie die Diktier-App und erteilen Sie die erforderlichen Berechtigungen.

  6. 06

    Verbinden und testen Sie den Sprachworkflow

    Vernetzen Sie Transkription, lokale Textverarbeitung und Sprachausgabe miteinander.

  7. 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.

Lazy-Installation · ~1 Min

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.sh

Registrieren 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       # unmute

Alternativ können Sie die im Repository enthaltenen Slash-Befehle /voice und /voice-off verwenden.