privacy-toolkit/tools/meeting-record/README.md
2025-12-31 19:44:07 -07:00

4 KiB

Meeting Record - Private Voice Recording & Transcription

Local voice recording with live Whisper transcription. All processing happens on your machine - no cloud APIs, no data leaves your computer.

Why This Exists

Most "AI voice recorders" (Plaud Note knockoffs, etc.) are just microphones that send your audio to cloud servers for processing. You're paying for hardware that:

  • Sends your private conversations to unknown servers
  • Requires monthly subscriptions after free tier
  • May store/analyze your data for training or other purposes
  • Stops working if the company shuts down

Meeting Record does the same thing, but locally. Your audio never leaves your machine.

Features

  • Continuous recording - Full audio backup of entire meeting
  • Live transcription - See transcripts as you speak (10-second chunks)
  • Final transcription - High-quality full transcription when you stop
  • 100% local - Uses whisper.cpp, no internet required
  • No subscriptions - Free forever, you own it

Installation

./install.sh

The installer will:

  1. Install system dependencies (ffmpeg, pulseaudio-utils, build tools)
  2. Clone and build whisper.cpp
  3. Download the Whisper model (base.en by default - fast & good)
  4. Install the meeting-record scripts to ~/bin/

Custom Options

# Use different model (tiny, base, small, medium, large)
WHISPER_MODEL=small.en ./install.sh

# Custom install location
WHISPER_CPP_DIR=/opt/whisper.cpp ./install.sh

# Custom bin directory
BIN_DIR=/usr/local/bin ./install.sh

Usage

# Start recording (auto-named with timestamp)
meeting-record

# Named recording
meeting-record "client-call-acme-corp"

# 30-second test to verify setup
meeting-record-test

Press Ctrl+C to stop recording. The script will:

  1. Stop audio capture
  2. Generate a high-quality final transcript
  3. Show you where all files are saved

Output Files

After recording a meeting named "client-call", you'll find:

~/Recordings/meetings/client-call/
├── full-audio.wav              # Complete recording (your backup)
├── live-transcript.txt         # Real-time chunked transcription
├── final-transcript.txt        # High-quality full transcription
├── chunks/
│   ├── chunk-0000.wav
│   ├── chunk-0001.wav
│   └── ...
└── transcripts/
    ├── chunk-0000.txt
    ├── chunk-0001.txt
    └── ...

Requirements

  • Linux (Debian/Ubuntu/Fedora/Arch)
  • PulseAudio or PipeWire (for audio capture)
  • ~500MB disk space for whisper.cpp + model

Model Options

Model Size Speed Quality Best For
tiny.en 75MB Fastest Basic Quick notes
base.en 148MB Fast Good Recommended
small.en 488MB Medium Better Important meetings
medium.en 1.5GB Slow Great Accuracy-critical
large 3GB Slowest Best Maximum accuracy

Change model with: WHISPER_MODEL=small.en ./install.sh

Troubleshooting

"parecord not found"

sudo apt install pulseaudio-utils  # Debian/Ubuntu
sudo dnf install pulseaudio-utils  # Fedora

"No audio being captured"

  • Check your default audio source: pactl list sources
  • Make sure microphone is not muted

"whisper-cli not found"

  • The installer should build this. If it failed, check cmake output
  • You can rebuild: cd ~/opt/whisper.cpp/build && cmake --build .

"meeting-record: command not found"

  • Add ~/bin to PATH: export PATH="$HOME/bin:$PATH"
  • Add this to your ~/.bashrc or ~/.zshrc

Privacy Comparison

Feature Cloud AI Recorders Meeting Record
Audio processing Remote servers Local only
Data storage Their servers Your disk
Internet required Yes No
Monthly fees Usually Never
Works offline No Yes
You control data No Yes

License

MIT - Do whatever you want with it.


Part of the Privacy Toolkit - Tools for digital sovereignty.