Skip to main content

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_KEY environment 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:

  1. Transcription — audio → text with timestamps (Whisper API)
  2. 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

MPL 2.0

Metadata

Release files for smart-transcriber 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smart-transcriber 0.2.0
File Size Uploaded
smart_transcriber-0.2.0.tar.gz 161.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smart-transcriber 0.2.0
File Interpreter ABI Platform
smart_transcriber-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 181.5 kB

Release files / smart_transcriber-0.2.0.tar.gz

Download URL smart_transcriber-0.2.0.tar.gz
Size 161.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f574b5da65ba7042ba7f77f7a595171477034a7eb429e653c39c0ba69ef7686c
BLAKE2b-256 checksum
How to use checksums
e01d8d66d43cf456454cbc182fa9672de7d6ed3b76767f18947769ee72f1e7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / smart_transcriber-0.2.0-py3-none-any.whl

Download URL smart_transcriber-0.2.0-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32d9a4365647dc419e0dbd60c583217d5760bdf3ee1e0e30f9cbc9fe7180a576
BLAKE2b-256 checksum
How to use checksums
fe3170d3024a62056a2dc52877cac3865f357074fd180f5a5f1f7c7ad0d5846f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page