Transcribe therapy session recordings to formatted text. Converts audio to clean, speaker-labeled transcripts (Me/Therapist format) with grammar correction and English translation...
Part of the mindwork suite. Converts therapy session recordings into clean, formatted transcripts.
OPENAI_API_KEY environment variable setmindwork-transcribe Docker image built (see Setup)Build the transcription Docker image from the plugin's transcribe directory:
# Find the mindwork plugin location and build the image
docker build -t mindwork-transcribe ~/src/mindwork/transcribe
Or if installed as a plugin, find the plugin path first:
# The transcribe tool is in the 'transcribe/' directory of this plugin
docker build -t mindwork-transcribe /path/to/mindwork/transcribe
Transcribe, format as conversation, and translate to English:
docker run --rm \
-e OPENAI_API_KEY \
-v $(pwd):/data \
mindwork-transcribe /data/session.m4a --format-conversation --output /data/transcript.txt
Just transcribe without formatting or translation:
docker run --rm \
-e OPENAI_API_KEY \
-v $(pwd):/data \
mindwork-transcribe /data/session.m4a --output /data/transcript.txt
For automatic speaker detection (alternative to --format-conversation):
docker run --rm \
-e OPENAI_API_KEY \
-v $(pwd):/data \
mindwork-transcribe /data/session.m4a --diarize --output /data/transcript.txt
Split a large file into chunks for later processing:
docker run --rm \
-v $(pwd):/data \
mindwork-transcribe /data/session.m4a --no-transcribe --keep-chunks
Resume from previously created chunks:
docker run --rm \
-e OPENAI_API_KEY \
-v $(pwd):/data \
mindwork-transcribe /data/chunks/ --format-conversation --output /data/transcript.txt
| Option | Description |
|---|---|
--output FILE |
Save transcript to file (default: stdout) |
--format-conversation |
Format as Me/Therapist dialogue + translate to English |
--diarize |
Auto-detect speakers (uses gpt-4o-transcribe-diarize) |
--no-transcribe |
Only chunk, skip transcription |
--keep-chunks |
Preserve chunk files after processing |
--model MODEL |
whisper-1 (default, fast) or gpt-4o-transcribe (better accuracy) |
mp3, mp4, m4a, wav, webm, ogg, flac
If a mindwork.yaml config file exists, use it to determine output paths:
vault: ~/Therapy
sources:
recordings:
paths: [recordings/]
outputs:
transcriptions: transcriptions/
Config locations (checked in order):
./mindwork.yaml (current directory)~/.config/mindwork/config.yaml~/.mindwork.yamlDefault behavior (no config):
--output pathWith config:
{vault}/{outputs.transcriptions}/{date}-{filename}.md~/Therapy/transcriptions/2024-01-15-session-001.mdSee config/mindwork.example.yaml for full configuration options.
With --format-conversation, output looks like:
**Me:** I've been feeling anxious about work lately. The deadlines keep piling up.
**Therapist:** That sounds overwhelming. Can you tell me more about what specifically triggers that anxiety?
**Me:** It's mostly when I have multiple projects due at the same time...
OpenAI Whisper API: ~$0.006/minute of audio GPT-4o for formatting/translation: ~$0.01-0.02 per session (varies by length)
A typical 50-minute session costs approximately $0.30-0.50 total.
"Docker image not found" Build the image from the plugin's transcribe directory:
docker build -t mindwork-transcribe /path/to/mindwork/transcribe
"OPENAI_API_KEY not set"
export OPENAI_API_KEY="sk-..."
"File not found" Ensure you're in the directory containing your audio file, or use absolute paths.
Transcription quality issues
Try --model gpt-4o-transcribe for better accuracy (same price as whisper-1).