Denk-Notizbuch · Für Nerds · Roger Basler de Roca

Die Nerd-Anleitung

So läuft das Denk-Notizbuch vollautomatisch: Ein Mac nimmt einen Stream oder ein Meeting auf, transkribiert lokal, legt die Texte in Dropbox ab, und geplante Aufgaben in Claude ziehen daraus Merker, News und einen Notion-Sync. Der Mensch entscheidet am Ende, was bleibt.

← Zurück zum Starter

Bevor du aufnimmst

Nimm nur auf, was du aufnehmen darfst: eigene Meetings mit Einverständnis aller Beteiligten oder Streams, bei denen der Veranstalter zustimmt. Viele Events bieten ohnehin Aufzeichnungen oder Transkripte an, frag zuerst dort. Deine Zugangsdaten gibst du nie an eine KI weiter. Du loggst dich selbst im Browser ein.

Die Architektur

  1. 1Stream im Browser
  2. 2Ton über BlackHole
  3. 3Aufnahme mit ffmpeg
  4. 4Transkription lokal mit whisper.cpp
  5. 5Textdatei in Dropbox
  6. 6Claude: Merker, Notizbuch, Notion

Das Audio bleibt auf deinem Rechner. In die Cloud gehen nur die Texte.

Was du brauchst

1 · Werkzeuge installieren

Homebrew installieren (fragt einmal nach dem Mac-Passwort):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Auf Apple-Silicon-Macs danach die zwei Zeilen ausführen, die Homebrew am Ende anzeigt. Dann die Werkzeuge:

brew install ffmpeg whisper-cpp && brew install --cask blackhole-2ch

Danach den Mac einmal neu starten.

2 · Ton umleiten

  1. 1Programm Audio-MIDI-Setup öffnen
  2. 2Unten links auf + klicken und Gerät mit mehreren Ausgängen erstellen
  3. 3Haken bei deinen Lautsprechern oder Kopfhörern und bei BlackHole 2ch setzen
  4. 4Systemeinstellungen, Ton, Ausgabe: dieses neue Gerät wählen

So hörst du den Stream weiter, und gleichzeitig kommt der Ton bei der Aufnahme an.

3 · Sprachmodell laden

small ist ein guter Kompromiss für ältere Macs, auf Apple Silicon geht auch large-v3-turbo.

mkdir -p ~/whisper-models && curl -L -o ~/whisper-models/ggml-small.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin

4 · Das Aufnahme-Skript

Speichere das Skript in deinen Transkript-Ordner. Es nimmt in 10-Minuten-Stücken auf, transkribiert jedes Stück, überspringt Stille und hält den Mac wach.

#!/bin/bash
# Stream-Recorder fuer das Denk-Notizbuch
# Nimmt Ton in 10-Minuten-Stuecken auf und transkribiert sie lokal mit whisper.cpp.
# Die Transkripte landen im Dropbox-Ordner und werden von einer geplanten Aufgabe in Claude abgeholt.
# Start:  bash stream_recorder.sh        Stopp:  Ctrl+C

set -u
if [ -z "${OUT:-}" ]; then                              # Zielordner (Dropbox) automatisch finden
  DB=$(ls -d "$HOME/Library/CloudStorage/Dropbox"* 2>/dev/null | head -1); [ -z "$DB" ] && DB="$HOME/Dropbox"
  OUT="$DB/Denk-Notizbuch-Transkripte"
fi
WORK="${WORK:-$HOME/Denk-Notizbuch-Aufnahme}"        # Audio bleibt lokal, geht nicht in die Cloud
DEVICE="${DEVICE:-BlackHole 2ch}"                     # Audio-Eingang, der den Stream-Ton empfaengt
MODEL="${MODEL:-$HOME/whisper-models/ggml-small.bin}"
LANG_CODE="${LANG_CODE:-de}"
SEGMENT="${SEGMENT:-600}"                             # Sekunden pro Stueck

mkdir -p "$OUT" "$WORK/chunks" "$WORK/done"
command -v ffmpeg >/dev/null || { echo "ffmpeg fehlt: brew install ffmpeg"; exit 1; }
command -v whisper-cli >/dev/null || { echo "whisper-cli fehlt: brew install whisper-cpp"; exit 1; }
[ -f "$MODEL" ] || { echo "Modell fehlt: $MODEL"; exit 1; }

echo "Aufnahme von '$DEVICE' in Stuecken zu $SEGMENT s. Transkripte nach: $OUT"
caffeinate -dimsu -w $$ &

( while true; do
    ffmpeg -hide_banner -loglevel error -f avfoundation -i ":$DEVICE" -ac 1 -ar 16000 \
      -f segment -segment_time "$SEGMENT" -reset_timestamps 1 -strftime 1 \
      "$WORK/chunks/%Y-%m-%d_%H-%M-%S.wav"
    echo "$(date '+%H:%M:%S') Aufnahme unterbrochen, starte neu in 5 s"; sleep 5
  done ) &
REC=$!
trap 'echo; echo "Stoppe ..."; kill $REC 2>/dev/null; pkill -P $REC 2>/dev/null; exit 0' INT TERM

while true; do
  FILES=( $(ls -1 "$WORK/chunks/"*.wav 2>/dev/null | sort) )
  N=${#FILES[@]}
  if [ "$N" -gt 1 ]; then
    for ((i=0; i<N-1; i++)); do
      F="${FILES[$i]}"; B=$(basename "$F" .wav); DAY=${B%%_*}
      mkdir -p "$OUT/$DAY"
      whisper-cli -m "$MODEL" -l "$LANG_CODE" -nt -otxt -of "$WORK/done/$B" -f "$F" >/dev/null 2>&1
      if [ -s "$WORK/done/$B.txt" ] && [ "$(wc -w < "$WORK/done/$B.txt")" -gt 15 ]; then
        { echo "Mitschnitt $B (automatisch transkribiert, nicht geprueft)"; echo; cat "$WORK/done/$B.txt"; } > "$OUT/$DAY/$B.txt"
        echo "$(date '+%H:%M:%S') transkribiert: $B ($(wc -w < "$WORK/done/$B.txt") Woerter)"
      else
        echo "$(date '+%H:%M:%S') Stille oder zu kurz, uebersprungen: $B"
      fi
      mv "$F" "$WORK/done/"
    done
  fi
  sleep 20
done

Kurztest mit einem beliebigen Video, Stücke zu 60 Sekunden:

SEGMENT=60 bash stream_recorder.sh

Nach etwa zwei Minuten erscheint "transkribiert" und eine Textdatei liegt im Ordner. Mit Ctrl+C stoppen. Für den Dauerbetrieb ohne SEGMENT starten und das Terminal offen lassen.

5 · Claude übernimmt

Drei geplante Aufgaben in Claude machen aus Rohtext Arbeit. Du legst sie an, indem du Claude die folgenden Aufträge gibst und dazu sagst: "Lege das als geplante Aufgabe an, stündlich von 8 bis 20 Uhr" (oder täglich um 6:30 für die News).

Transkripte einspeisen

stündlich

Lies im Dropbox-Ordner /Denk-Notizbuch-Transkripte alle neuen .txt-Dateien, die du noch nicht verarbeitet hast. Fasse zusammenhängende Stücke zu Blöcken von höchstens 60 Minuten zusammen. Ziehe pro Block alle Merker heraus: Erkenntnis, Aufgabe (in unter 30 Minuten umsetzbar), offene Frage, gezeigter KI-Agent (mit Stufe 1 liest, 2 entwirft, 3 handelt nach Freigabe, 4 handelt autonom). Lege jeden Block als Eingang und die Merker in meinem Denk-Notizbuch ab. Merke dir, welche Dateien verarbeitet sind. Nichts erfinden, keine wörtlichen Zitate aus Rohtranskripten.

News am Morgen

täglich 6:30

Recherchiere 6 aktuelle Meldungen der letzten 72 Stunden zu meinen Themen: [deine Themen]. Jede Meldung mit echter URL, Quelle und einem Satz Zusammenfassung. Ersetze damit die News in meinem Denk-Notizbuch.

Notion-Sync

stündlich

Lies mein Denk-Notizbuch und ersetze den Inhalt meiner Notion-Seite [Seitenname] durch: Vordenken (News), Mitdenken (nur die behaltenen Merker pro Vortrag oder Meeting, gestrichene mit Grund separat), Nachdenken (die drei Gedanken). Nichts umformulieren, nur übertragen.

Stream morgens starten (optional)

täglich 8:50 · braucht die Chrome-Erweiterung und den verbundenen Mac

Öffne auf meinem Mac im Chrome die Stream-Seite [URL]. Ich bin dort eingeloggt; erscheint eine Login-Seite, brich ab und melde es. Starte die Wiedergabe mit Ton, warte falls nötig bis zum Programmstart. Lass den Tab offen. Prüfe danach, ob im Transkript-Ordner neue Dateien ankommen, und melde mir in drei Sätzen, ob alles läuft.

6 · Die Checkliste vor dem Wochenende

Wenn etwas hakt

Stille oder zu kurz
Der Ton kommt nicht bei BlackHole an. Ausgabe und Stumm-Schaltung des Tabs prüfen.
Gerät nicht gefunden
ffmpeg -f avfoundation -list_devices true -i "" dann starten mit DEVICE="Name" bash stream_recorder.sh
Mac zu langsam
Kleineres Modell ggml-base.bin laden und mit MODEL=~/whisper-models/ggml-base.bin starten.
Mac schläft ein
Deckel offen lassen, Netzteil, Energiesparen aus. Zugeklappt hilft auch caffeinate nicht.
Falsche Namen im Text
Rohtranskripte sind nicht geprüft. Deshalb Zitate nur nach eigener Kontrolle.

Warum der Aufwand?

Weil die Maschine hier genau das tut, was sie gut kann: mitschreiben, sortieren, vorschlagen. Und weil du genau das behältst, was nur du kannst: entscheiden, was davon wichtig ist.

Nicht alles, was automatisierbar ist, muss entmenschlicht werden. Du entscheidest.