CLI audio transcription via Groq Whisper with optional speaker diarization
Project description
transcribe-all
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
Quick start
git clone https://github.com/syrex1013/Transcribe.git
cd Transcribe
chmod +x install.sh transcribe
./install.sh
Transcribe:
transcribe recording.mp3 en
Package manager installs
Homebrew
brew tap syrex1013/transcribe-all https://github.com/syrex1013/Transcribe
brew install transcribe-all
APT (apt-get)
echo "deb [trusted=yes] https://hacklabjournal.me/Transcribe/apt ./" | sudo tee /etc/apt/sources.list.d/transcribe-all.list
sudo apt-get update
sudo apt-get install -y transcribe-all
pip
pip install transcribe-all
Optional diarization extras:
pip install "transcribe-all[diarize]"
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_TOKENfor pyannote speaker diarizationWHISPER_MODEL_PATHfor--localmode (path toggml-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
|- transcribe_groq.py # Core transcription + diarization pipeline
|- 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 notes
Initial release artifacts are prepared:
.gitignorefor Python, secrets, generated transcripts, and mediaLICENSE(MIT)CHANGELOG.mdRELEASE_CHECKLIST.md
Installation guide
The installer is designed to:
- Install required dependencies:
ffmpeg,ffprobe, Python packages fromrequirements.txt - Install
transcribeglobally in/usr/local/binwhen possible - Fallback to user-local install in
~/.local/binwhen system install is unavailable - Update shell profile so
transcribeis available everywhere - Persist token config in
~/.config/transcribe/config
License
MIT. See 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 transcribe_all-0.3.0.tar.gz.
File metadata
- Download URL: transcribe_all-0.3.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e4e719b2b38c1f61071d7c0ce508b499c5031fd5dcc11c305b75de4f54d54cf
|
|
| MD5 |
b8b15c3c4337a83fc98659ca42082a29
|
|
| BLAKE2b-256 |
f11bb2bc214c359ff54dcaf58a28570ae2e86bf1709ef98ddf02e28e82bf6f7c
|
Provenance
The following attestation bundles were made for transcribe_all-0.3.0.tar.gz:
Publisher:
publish-pypi.yml on syrex1013/Transcribe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
transcribe_all-0.3.0.tar.gz -
Subject digest:
4e4e719b2b38c1f61071d7c0ce508b499c5031fd5dcc11c305b75de4f54d54cf - Sigstore transparency entry: 1046590664
- Sigstore integration time:
-
Permalink:
syrex1013/Transcribe@b6936acd194127717d8f3ca062d81345ccbb6b34 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/syrex1013
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b6936acd194127717d8f3ca062d81345ccbb6b34 -
Trigger Event:
push
-
Statement type:
File details
Details for the file transcribe_all-0.3.0-py3-none-any.whl.
File metadata
- Download URL: transcribe_all-0.3.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eb8e910b4034be793316635b6900d31a160a32d2c5de76bb7351adc8f43d325
|
|
| MD5 |
27859696cc8a3346f72fd7d0a96425e2
|
|
| BLAKE2b-256 |
f5c7a1230e37886c7fe344ea8c3a433734a8530f26a380a7964afe1d615857fb
|
Provenance
The following attestation bundles were made for transcribe_all-0.3.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on syrex1013/Transcribe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
transcribe_all-0.3.0-py3-none-any.whl -
Subject digest:
8eb8e910b4034be793316635b6900d31a160a32d2c5de76bb7351adc8f43d325 - Sigstore transparency entry: 1046590692
- Sigstore integration time:
-
Permalink:
syrex1013/Transcribe@b6936acd194127717d8f3ca062d81345ccbb6b34 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/syrex1013
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b6936acd194127717d8f3ca062d81345ccbb6b34 -
Trigger Event:
push
-
Statement type: