Voice Memo Transcriber
Overview
This skill automatically transcribes voice memo files into plain text using OpenAI's Whisper (open-source, local processing). It handles multiple audio/video formats, generates both plain text and timestamped SRT files, and provides a summary of the content.
All processing happens locally - no data is sent to cloud services. Voice memos may contain sensitive information, so privacy is maintained throughout.
When to Apply
Use this skill when:
- User provides a voice memo file path and asks to "transcribe" it
- User says "create a transcript" from an audio/video file
- User wants to convert a voice recording to text
- User needs both plain text and timestamped SRT output from audio
- User mentions formats like .m4a, .mp3, .mov, .mp4, .wav, or QuickTime files
Do NOT use this skill for:
- Real-time transcription of ongoing audio
- Speaker diarization (identifying different speakers)
- Translation to other languages
- Editing or cleaning up existing transcripts
Inputs
Required:
file_path: Absolute path to voice memo file
- Supported formats: .m4a, .mp3, .mov, .mp4, .wav, .aac, .flac, .ogg, .webm
- File must exist and contain audio
Optional:
output_dir: Directory for output files
- Default: Same directory as source file
- Must be writable
whisper_model: Whisper model size (affects accuracy and speed)
- Default: "base"
- Options: tiny, base, small, medium, large
- Larger models = better accuracy but slower processing
Outputs
Generated files (in output directory):
[filename].txt - Plain text transcript with no timestamps
[filename].srt - Subtitle file with timestamps (HH:MM:SS,mmm format)
[filename].mp3 - Audio file (if conversion from another format was needed)
Displayed to user:
- Processing progress updates
- Summary of transcript content (1-3 sentences generated by Claude)
- File paths for all generated outputs
- Total processing time
Instructions for Claude
Step 1: Validate Input
- Check that file_path exists using Read or Bash tool
- Verify file has audio/video extension
- If output_dir specified, verify it exists and is writable
- If whisper_model specified, verify it's one of: tiny, base, small, medium, large
Step 2: Check and Install Dependencies
Run these checks in sequence:
Check ffmpeg:
which ffmpeg
If not found, provide installation instructions:
Check pipx:
which pipx
If not found, install:
brew install pipx
pipx ensurepath
Check openai-whisper:
pipx list | grep openai-whisper
If not found, install:
pipx install openai-whisper
Step 3: Prepare Audio File
Determine output directory:
- If user specified output_dir, use it
- Otherwise, extract directory from file_path
Check if file is already MP3:
- If yes, skip conversion
- If no, convert using ffmpeg:
ffmpeg -i "[input_file]" -vn -ar 16000 -ac 1 -b:a 96k "[output_dir]/[basename].mp3"
Flags explained:
-vn: No video (audio only)
-ar 16000: 16kHz sample rate (Whisper's native rate)
-ac 1: Mono audio
-b:a 96k: 96kbps bitrate (good quality, small size)
Step 4: Transcribe with Whisper
Run Whisper transcription:
whisper "[audio_file]" \
--model [whisper_model] \
--output_dir "[output_dir]" \
--output_format txt \
--output_format srt \
--language English
This generates both .txt and .srt files automatically.
Important notes:
- First run will download the model (base model ~140MB)
- Transcription time varies: ~1-5 minutes for 10-minute audio with base model
- Provide progress updates to user while processing
Step 5: Read and Summarize Transcript
- Use Read tool to read the generated .txt file
- Generate a concise 1-3 sentence summary of the content
- Focus on main topics, key points, or action items if present
Step 6: Report Results
Display to user:
✓ Transcription complete!
Files generated:
- Transcript: [path]/[filename].txt
- Subtitles: [path]/[filename].srt
- Audio: [path]/[filename].mp3 (if converted)
Summary:
[Your 1-3 sentence summary here]
Processing time: [X] seconds
Error Handling
File not found:
- Message: "Error: Could not find file at [path]. Please check the path and try again."
Unsupported format:
- Message: "Error: File format not supported. Supported formats: .m4a, .mp3, .mov, .mp4, .wav, .aac, .flac, .ogg, .webm"
Missing dependencies:
- Provide clear installation instructions for the missing tool
- Ask user to install and re-run the skill
Corrupted audio:
- Message: "Error: Could not process audio file. The file may be corrupted or empty."
Insufficient disk space:
- Message: "Error: Insufficient disk space. Transcription requires approximately [size] of free space."
Examples
See resources/EXAMPLES.md for complete examples.
Testing Checklist
See resources/CHECKLIST.md for validation steps.
Security and Privacy
Local Processing:
- All transcription happens on the user's machine
- No data sent to external servers or APIs
- Whisper models cached locally after first download
Sensitive Content:
- Voice memos may contain personal, medical, or business-sensitive information
- All files remain local and private
- Consider adding output directories to .gitignore
File Handling:
- Never commit voice files or transcripts to version control
- Respect user's specified output directory
- Clean up temporary files if conversion was needed (optional - ask user)
Dependencies:
- ffmpeg, pipx, and openai-whisper are all open-source tools
- Models are downloaded from HuggingFace's official repository
- No telemetry or tracking in any dependency
1---2name: voice-memo-transcriber3description: Transcribe voice memos to text using Whisper. Use when user provides audio/video files (.m4a, .mp3, .mov, etc.) and asks to transcribe them into text and SRT format with timestamps.4---56# Voice Memo Transcriber78## Overview910This skill automatically transcribes voice memo files into plain text using OpenAI's Whisper (open-source, local processing). It handles multiple audio/video formats, generates both plain text and timestamped SRT files, and provides a summary of the content.1112All processing happens locally - no data is sent to cloud services. Voice memos may contain sensitive information, so privacy is maintained throughout.1314## When to Apply1516Use this skill when:17- User provides a voice memo file path and asks to "transcribe" it18- User says "create a transcript" from an audio/video file19- User wants to convert a voice recording to text20- User needs both plain text and timestamped SRT output from audio21- User mentions formats like .m4a, .mp3, .mov, .mp4, .wav, or QuickTime files2223Do NOT use this skill for:24- Real-time transcription of ongoing audio25- Speaker diarization (identifying different speakers)26- Translation to other languages27- Editing or cleaning up existing transcripts2829## Inputs3031**Required:**32- `file_path`: Absolute path to voice memo file33 - Supported formats: .m4a, .mp3, .mov, .mp4, .wav, .aac, .flac, .ogg, .webm34 - File must exist and contain audio3536**Optional:**37- `output_dir`: Directory for output files38 - Default: Same directory as source file39 - Must be writable40- `whisper_model`: Whisper model size (affects accuracy and speed)41 - Default: "base"42 - Options: tiny, base, small, medium, large43 - Larger models = better accuracy but slower processing4445## Outputs4647Generated files (in output directory):481. `[filename].txt` - Plain text transcript with no timestamps492. `[filename].srt` - Subtitle file with timestamps (HH:MM:SS,mmm format)503. `[filename].mp3` - Audio file (if conversion from another format was needed)5152Displayed to user:53- Processing progress updates54- Summary of transcript content (1-3 sentences generated by Claude)55- File paths for all generated outputs56- Total processing time5758## Instructions for Claude5960### Step 1: Validate Input61- Check that file_path exists using Read or Bash tool62- Verify file has audio/video extension63- If output_dir specified, verify it exists and is writable64- If whisper_model specified, verify it's one of: tiny, base, small, medium, large6566### Step 2: Check and Install Dependencies67Run these checks in sequence:6869**Check ffmpeg:**70```bash71which ffmpeg72```73If not found, provide installation instructions:74- macOS: `brew install ffmpeg`75- Linux: `sudo apt-get install ffmpeg` or `sudo yum install ffmpeg`76- Windows: Download from https://ffmpeg.org/download.html7778**Check pipx:**79```bash80which pipx81```82If not found, install:83```bash84brew install pipx85pipx ensurepath86```8788**Check openai-whisper:**89```bash90pipx list | grep openai-whisper91```92If not found, install:93```bash94pipx install openai-whisper95```9697### Step 3: Prepare Audio File98Determine output directory:99- If user specified output_dir, use it100- Otherwise, extract directory from file_path101102Check if file is already MP3:103- If yes, skip conversion104- If no, convert using ffmpeg:105106```bash107ffmpeg -i "[input_file]" -vn -ar 16000 -ac 1 -b:a 96k "[output_dir]/[basename].mp3"108```109110Flags explained:111- `-vn`: No video (audio only)112- `-ar 16000`: 16kHz sample rate (Whisper's native rate)113- `-ac 1`: Mono audio114- `-b:a 96k`: 96kbps bitrate (good quality, small size)115116### Step 4: Transcribe with Whisper117Run Whisper transcription:118119```bash120whisper "[audio_file]" \121 --model [whisper_model] \122 --output_dir "[output_dir]" \123 --output_format txt \124 --output_format srt \125 --language English126```127128This generates both .txt and .srt files automatically.129130**Important notes:**131- First run will download the model (base model ~140MB)132- Transcription time varies: ~1-5 minutes for 10-minute audio with base model133- Provide progress updates to user while processing134135### Step 5: Read and Summarize Transcript136- Use Read tool to read the generated .txt file137- Generate a concise 1-3 sentence summary of the content138- Focus on main topics, key points, or action items if present139140### Step 6: Report Results141Display to user:142```143✓ Transcription complete!144145Files generated:146- Transcript: [path]/[filename].txt147- Subtitles: [path]/[filename].srt148- Audio: [path]/[filename].mp3 (if converted)149150Summary:151[Your 1-3 sentence summary here]152153Processing time: [X] seconds154```155156## Error Handling157158**File not found:**159- Message: "Error: Could not find file at [path]. Please check the path and try again."160161**Unsupported format:**162- Message: "Error: File format not supported. Supported formats: .m4a, .mp3, .mov, .mp4, .wav, .aac, .flac, .ogg, .webm"163164**Missing dependencies:**165- Provide clear installation instructions for the missing tool166- Ask user to install and re-run the skill167168**Corrupted audio:**169- Message: "Error: Could not process audio file. The file may be corrupted or empty."170171**Insufficient disk space:**172- Message: "Error: Insufficient disk space. Transcription requires approximately [size] of free space."173174## Examples175176See `resources/EXAMPLES.md` for complete examples.177178## Testing Checklist179180See `resources/CHECKLIST.md` for validation steps.181182## Security and Privacy183184**Local Processing:**185- All transcription happens on the user's machine186- No data sent to external servers or APIs187- Whisper models cached locally after first download188189**Sensitive Content:**190- Voice memos may contain personal, medical, or business-sensitive information191- All files remain local and private192- Consider adding output directories to .gitignore193194**File Handling:**195- Never commit voice files or transcripts to version control196- Respect user's specified output directory197- Clean up temporary files if conversion was needed (optional - ask user)198199**Dependencies:**200- ffmpeg, pipx, and openai-whisper are all open-source tools201- Models are downloaded from HuggingFace's official repository202- No telemetry or tracking in any dependency