Transcribe meeting audio and generate structured notes using OpenAI APIs
Project description
smart-transcriber
Transcribe meeting audio and generate structured notes using OpenAI APIs.
Install
pip install smart-transcriber
Quick Start
export OPENAI_API_KEY="sk-..."
transcribe meeting.mp3
This produces meeting.md with a summary, decisions, action items, speaker-labeled transcript, and more.
Requirements
- Python 3.11+
- OpenAI API key — set
OPENAI_API_KEYenvironment variable - ffmpeg — required for audio files larger than 25 MB (auto-detected)
Install ffmpeg: https://ffmpeg.org/download.html
Usage
transcribe <audio_file> [options]
Examples
# Basic transcription with summary
transcribe meeting.mp3
# Specify output path
transcribe meeting.mp3 --out notes.md --json-out notes.json
# Outline style instead of report
transcribe meeting.wav --style outline
# Use a different analysis model
transcribe meeting.m4a --analysis-model gpt-5-mini
# Transcription only (no summary/analysis)
transcribe meeting.mp3 --no-analysis
# Re-analyze a saved transcript
transcribe --analysis-only --transcript-input raw.json --out notes.md
# Render wall-clock timestamps
transcribe meeting.mp3 --start-time 09:30
# Provide hints for better results
transcribe meeting.mp3 --num-speakers 4 --prompt "Acme Corp, Project Phoenix"
Options
| Option | Default | Description |
|---|---|---|
audio_file |
— | Path to audio file (extension auto-detected) |
--out |
<audio_stem>.md |
Markdown output path |
--json-out |
— | JSON output (analysis + transcript) |
--transcript-json |
— | Save raw transcription JSON |
--transcribe-model |
whisper-1 |
Transcription model |
--analysis-model |
gpt-5.2 |
Analysis/summary model |
--language |
en |
Language hint for transcription |
--num-speakers |
— | Speaker count hint |
--prompt |
— | Transcription prompt (names, jargon) |
--style |
report |
Output style: report or outline |
--include-metadata |
off | Show metadata in outline style |
--disclaimer |
— | Disclaimer text at top of notes |
--no-analysis |
off | Skip analysis, transcribe only |
--analysis-only |
off | Skip transcription, analyze saved JSON |
--transcript-input |
— | JSON input for --analysis-only |
--chunk-seconds |
600 |
Chunk length for large files |
--merge-gap-seconds |
2 |
Max gap to merge same-speaker segments |
--max-merge-seconds |
45 |
Max duration per merged line |
--max-merge-words |
80 |
Max words per merged line |
--start-time |
— | Render wall-clock timestamps (HH:MM or HH:MM:SS) |
How It Works
The tool makes two OpenAI API calls per file:
- Transcription — audio → text with timestamps (Whisper API)
- Analysis — text → structured summary, speaker labels, decisions, action items (Chat API)
For large files (>25 MB), audio is automatically split into chunks using ffmpeg, transcribed separately, and merged.
Performance
Expect processing time to scale with audio duration. For faster results:
# Use a smaller analysis model
transcribe meeting.mp3 --analysis-model gpt-5-mini
# Skip analysis entirely
transcribe meeting.mp3 --no-analysis
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smart_transcriber-0.1.0.tar.gz.
File metadata
- Download URL: smart_transcriber-0.1.0.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b87fc5598ea595f15dd3460c06d84fb094a13573a9cc43d38e4646bcfc29c95
|
|
| MD5 |
e3a955a0a99d0ab04ed6e916c147ca9b
|
|
| BLAKE2b-256 |
b6f859c1a343fc99554b52ab020bc9ab5cb2199eb5ab1d943f34e52a5b7d096e
|
File details
Details for the file smart_transcriber-0.1.0-py3-none-any.whl.
File metadata
- Download URL: smart_transcriber-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4fad287e9f6a3b34e6c54c7f2430d7276b5fead12b22c674380052e227d5025
|
|
| MD5 |
eb36b117e9ea8d5347b3e8a3c84c5499
|
|
| BLAKE2b-256 |
6a2241ccf6d206245a7a7173ddb5a9e334ed97372467898f7d499fb701940724
|