SuperAPI AI Directory

live-recording

Office & productivity

View repository

Updated 10-16 08:07

About this skill

Live Recording

Always-on environmental audio capture. Records continuously, transcribes with whisper-cpp (Metal-accelerated), appends timestamped entries to an org file viewable live in Emacs.

Activation

1. Start tmux capture session

tmux new-session -d -s capture \
  'while true; do bash ~/v/scripts/always-on-capture.sh; echo "[restart] $(date)"; sleep 2; done'

The auto-restart loop ensures crash resilience. The script records 6s WAV chunks via ffmpeg avfoundation device :1, silence-detects via sox RMS (< 0.005), transcribes non-silent chunks with whisper-cli --model ~/v/ggml-base.en.bin, and appends ** [timestamp]\ntext\n entries to ~/v/audio-capture.org.

2. Open in Emacs with live updates

M-x server-start                          ;; required for emacsclient
C-x C-f ~/v/audio-capture.org             ;; open the file
M-x auto-revert-tail-mode                 ;; live tail as entries append

auto-revert-tail-mode (not auto-revert-mode) tails the end of the buffer as new entries arrive, keeping your cursor at the latest transcription.

3. Monitor (optional)

tmux attach -t capture          # watch capture output
tail -f ~/v/audio-capture.org   # terminal tail

Stopping

tmux kill-session -t capture

Configuration (in always-on-capture.sh)

Variable Default Purpose
AUDIO_DEVICE :1 avfoundation device (:0 = screen, :1 = mic)
CHUNK_SECONDS 6 Recording window per chunk
SILENCE_THRESHOLD 0.005 RMS below this = silence (suppressed)
MIN_TEXT_LEN 6 Discard transcriptions shorter than this
MODEL ~/v/ggml-base.en.bin Whisper GGML model path
ORG_FILE ~/v/audio-capture.org Output org file

Troubleshooting

Symptom Cause Fix
All chunks "no audio" Wrong device index ffmpeg -f avfoundation -list_devices true -i "" to find mic
All chunks "silence" Threshold too high Lower SILENCE_THRESHOLD in script (default 0.005)
Emacs not updating No server-start M-x server-start then reopen file
Emacs not tailing Wrong mode Use auto-revert-tail-mode not auto-revert-mode
Script exits immediately set -e + non-fatal error Script uses set -uo pipefail (no -e)

Related Files

  • ~/v/audio-capture.org -- live output file
  • ~/v/scripts/always-on-capture.sh -- capture script
  • ~/v/audio_acset.duckdb -- structured audio database (ACSets schema)
  • ~/v/scripts/audio-capture-org.py -- Python/mlx-whisper alternative