Skip to main content

CLI audio transcription via Groq Whisper with optional speaker diarization

Project description

transcribe-all

transcribe-all banner

Python Groq pyannote License Release PyPI npm

Cloud-first transcription CLI with optional speaker diarization. Built for fast hackathon delivery: simple install, practical output, and clear timestamps.

Why this project

  • Fast transcription via Groq Whisper models
  • Speaker segmentation via pyannote (optional)
  • Clean sentence blocks with timestamp formatting
  • Handles large files by splitting and merging automatically
  • Works from terminal with one command

Pipeline diagram

Quick start

git clone https://github.com/syrex1013/Transcribe.git
cd Transcribe
chmod +x install.sh transcribe
./install.sh

Transcribe:

transcribe recording.mp3 en

Easy install (copy/paste)

Compatibility

OS Compatible
macOS
Ubuntu/Debian
Other Linux distros
Windows
WSL (Ubuntu/Debian)

Install options

Homebrew (macOS / Linux)

brew tap syrex1013/transcribe-all https://github.com/syrex1013/Transcribe
brew install transcribe-all

apt-get (Debian / Ubuntu)

echo "deb [trusted=yes] https://syrex1013.github.io/Transcribe/apt ./" \
  | sudo tee /etc/apt/sources.list.d/transcribe-all.list
sudo apt-get update
sudo apt-get install -y transcribe-all

pip (all platforms)

pip install transcribe-all

Optional diarization extras:

pip install "transcribe-all[diarize]"

npm (all platforms — no Python required)

npm install -g transcribe-all

The npm package downloads the correct pre-built native binary for your OS/arch during installation. No Python or pip needed.

Pre-built binaries (manual download)

Grab the right binary for your platform from the latest GitHub Release:

Platform Binary
Linux x86-64 transcribe-linux-x64
macOS Intel transcribe-darwin-x64
macOS Apple Silicon transcribe-darwin-arm64
Windows x86-64 transcribe-windows-x64.exe
# Linux / macOS example
chmod +x transcribe-linux-x64
sudo mv transcribe-linux-x64 /usr/local/bin/transcribe
transcribe --help

Verify any install method:

transcribe --help

Full install details and troubleshooting: INSTALLATION.md

Usage

# basic
transcribe input.mp3 en

# expected speaker count
transcribe interview.mp3 en --speakers 2

# disable diarization
transcribe lecture.mp3 en --no-diarize

# local whisper.cpp mode
transcribe input.mp3 en --local

Configuration

The tool reads tokens from environment variables and from:

~/.config/transcribe/config

Required:

  • GROQ_API_KEY

Optional:

  • HF_TOKEN for pyannote speaker diarization
  • WHISPER_MODEL_PATH for --local mode (path to ggml-large-v3.bin)

Use .env.example as reference.

Example output

-- Speaker 1 ----------------------------------------
[00:00]  Welcome to the demo recording.
[00:04]  Today we will test HTTP interception in Burp.

-- Speaker 2 ----------------------------------------
[01:32]  Open the Proxy tab and enable intercept.
[01:38]  Now inspect headers and session cookies.

Project layout

.
├── transcribe              # CLI entrypoint (bash wrapper)
├── transcribe_groq.py      # Core transcription + diarization pipeline
├── npm/                    # npm package (binary distribution)
├── Formula/                # Homebrew formula
├── scripts/                # Debian packaging scripts
├── install.sh              # Installer for dependencies and shell setup
├── INSTALLATION.md         # Detailed install and PATH guide
├── .env.example            # Environment variable template
├── CHANGELOG.md
├── RELEASE_CHECKLIST.md
└── assets/
    ├── hero-banner.svg
    └── pipeline-diagram.svg

Release pipeline

Every v* tag triggers a fully automated release:

Step What happens
Binaries PyInstaller builds for Linux, macOS (Intel + Apple Silicon), and Windows
GitHub Release All binaries attached automatically
PyPI Wheel + sdist published via OIDC trusted publishing
APT repo .deb package rebuilt and pushed to GitHub Pages
Homebrew Formula URL and SHA256 patched and committed automatically
npm Binary-wrapper package published to the npm registry

Installation guide

The installer is designed to:

  • Install required dependencies: ffmpeg, ffprobe, Python packages from requirements.txt
  • Install transcribe globally in /usr/local/bin when possible
  • Fallback to user-local install in ~/.local/bin when system install is unavailable
  • Update shell profile so transcribe is available everywhere
  • Persist token config in ~/.config/transcribe/config

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transcribe_all-0.4.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transcribe_all-0.4.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file transcribe_all-0.4.0.tar.gz.

File metadata

  • Download URL: transcribe_all-0.4.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transcribe_all-0.4.0.tar.gz
Algorithm Hash digest
SHA256 76d81b7b36a579d515ffc7396ce07e5ddf07ae42125bdfc693ea5203ed97891a
MD5 ca567c2189a1586df87a51e6a3fac3c4
BLAKE2b-256 3fe71d7a4f85eb2976606a71418e94e50a40ef1110de4c7053e25eba0294ce18

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcribe_all-0.4.0.tar.gz:

Publisher: publish-pypi.yml on syrex1013/Transcribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file transcribe_all-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: transcribe_all-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transcribe_all-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b988ed99861dfe4ae4169c6acc4aa3a7ba379e64b54477b4c986b7f184430fbb
MD5 f4f17d87ddd68ff76f3f0250fea14e91
BLAKE2b-256 5fdac52564251b079cd126b57ac69a2d0537d2b9aaf8739b297c6f1f7009d266

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcribe_all-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on syrex1013/Transcribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page