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 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.5.0.tar.gz (20.1 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.5.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: transcribe_all-0.5.0.tar.gz
  • Upload date:
  • Size: 20.1 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.5.0.tar.gz
Algorithm Hash digest
SHA256 a43c5ed1f51d1d5e4b402888e4bf9d3ea21ebc78a430d60c32e7594e6155e430
MD5 b7c0350527247d891e86665acf8f4f21
BLAKE2b-256 8ab905868512e5fd6ec9471e89164f8d807d1cbe95315ccd659bb87a25b1b7d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcribe_all-0.5.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: transcribe_all-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f1af7386670d8383f4ebf6abdbeb713478adfabd7a3f468b5f8505aef737866
MD5 c5a7a3d1b39bc067488afff5c128bdc9
BLAKE2b-256 6b2091d672fedebf225aee74c8beb131976a369ad6d68fc7770c764d8d4e8035

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcribe_all-0.5.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