Transcribe any audio or video via OpenAI STT. Supports diarisation and cleaned rendering.
Project description
otranscribe
otranscribe is a tiny command line interface for turning any audio or video into text. It primarily wraps the OpenAI speech-to-text API, but also includes two offline backends so you can avoid network calls and API costs entirely. The CLI handles all of the boilerplate: it extracts audio from arbitrary input, normalises it, runs the transcription on your chosen engine and optionally renders a cleaned transcript with timestamps and speaker labels.
Quick start
pip install otranscribe
export OPENAI_API_KEY="sk-..."
otranscribe -i audio.mp3
See INSTALLATION.md for detailed setup including offline engines.
Features
- Any input format – as long as
ffmpegcan read it, it can be transcribed. - Diarisation support – by default it uses the
gpt-4o-transcribe-diarizemodel and requestsdiarized_jsonoutput so that speakers are labelled. When you don't need diarisation or want to avoid API costs, you can select the local Whisper engine. - Clean rendering – remove filler words, collapse whitespace and insert timestamps every N seconds and on speaker change.
- Raw output – choose
--render rawto write the exact response from the engine (JSON, text, SRT, VTT, etc.). - Choice of engine – use the OpenAI API (
--engine openai) for high-quality diarised transcripts or choose one of the offline backends when you want to work without an internet connection:- Local Whisper (
--engine local) – runs the reference openai-whisper model on your machine. This backend produces accurate transcriptions but can be relatively slow on CPU and does not assign speaker labels. - faster-whisper (
--engine faster) – uses the faster-whisper reimplementation based on CTranslate2. It is up to four times faster than the original open source Whisper implementation and uses less memory, with optional quantisation and GPU acceleration for even greater speed. Since diarisation is not available locally, the engine assigns all words to a single speaker (Speaker 0).
- Local Whisper (
- Minimal dependencies – uses
requestsinstead of the heavyopenaiclient when talking to the API. The local engine only imports Whisper if you choose--engine local. The faster engine pulls in thefaster-whisperpackage only when selected.
Documentation
- INSTALLATION.md – Install, uninstall, and development setup (including pre-commit hooks and code style)
- USAGE.md – How to use
otranscribe, examples, and common workflows - TROUBLESHOOTING.md – Common errors, diagnostics, and solutions
Contributing
Contributions are welcome. Please open issues or pull requests on the project repository. See INSTALLATION.md for development environment setup.
License
Released under the terms of the MIT license. See LICENSE for details.
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 otranscribe-0.1.0.tar.gz.
File metadata
- Download URL: otranscribe-0.1.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a805f501922ff1504390dc52d0c0e866612dd54e8733c9929a9acdebadfb3b99
|
|
| MD5 |
4c61815d2e370286cb441b35ccfee2c2
|
|
| BLAKE2b-256 |
a66f947400270b7ccb6d5801887b71abff2d88ea83bce6af3c1ab08b8633482d
|
Provenance
The following attestation bundles were made for otranscribe-0.1.0.tar.gz:
Publisher:
publish.yml on ineslino/otranscribe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
otranscribe-0.1.0.tar.gz -
Subject digest:
a805f501922ff1504390dc52d0c0e866612dd54e8733c9929a9acdebadfb3b99 - Sigstore transparency entry: 964122810
- Sigstore integration time:
-
Permalink:
ineslino/otranscribe@f3793843709ddbd46cb25b5e2450cc1d20e6387b -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/ineslino
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f3793843709ddbd46cb25b5e2450cc1d20e6387b -
Trigger Event:
push
-
Statement type:
File details
Details for the file otranscribe-0.1.0-py3-none-any.whl.
File metadata
- Download URL: otranscribe-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.9 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 |
023832574d36be2d2d77448d92f55fed31575a13fcef46207453bff5f8698159
|
|
| MD5 |
3b643cb16bf531fa06ccb2464e1b6898
|
|
| BLAKE2b-256 |
fb64615447556279837f077233367b9cd331666c71214ebf0711c46cbe77fe24
|
Provenance
The following attestation bundles were made for otranscribe-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ineslino/otranscribe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
otranscribe-0.1.0-py3-none-any.whl -
Subject digest:
023832574d36be2d2d77448d92f55fed31575a13fcef46207453bff5f8698159 - Sigstore transparency entry: 964122856
- Sigstore integration time:
-
Permalink:
ineslino/otranscribe@f3793843709ddbd46cb25b5e2450cc1d20e6387b -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/ineslino
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f3793843709ddbd46cb25b5e2450cc1d20e6387b -
Trigger Event:
push
-
Statement type: