Multi-backend whisper app. Blazing fast. Mac-arm optimized. Easy install. Input a local file or url and this service will transcribe it using Whisper AI. Comple
Multi-backend whisper app. Blazing fast. Mac-arm optimized. Easy install. Input a local file or url and this service will transcribe it using Whisper AI. Comple
Over 1200+⭐'s because this program just works! Works great for windows and mac. This whisper front-end app is the only one to generate a speaker.json file which partitions the conversation by who doing the speaking.
One CLI, one router: --device picks the backend (auto-detected if omitted), and every backend runs in its own isolated environment built on first use — no CUDA/torch dependency hell in your python.
…
Supporting open-source transcription innovation since September 2025.
Why 1,000+ companies choose Recall.ai
Your Intel Arc GPU is now a transcription device. --device xpu runs the blazing HF-pipeline path on PyTorch's XPU backend — Arc A-series and B-series discrete cards and recent Iris Xe iGPUs, on Windows and Linux.
transcribe-anything video.mp4 --device xpu
pytorch-triton-xpu name on PyPI is literally quarantined; we don't go anywhere near it).whisperx backend gains the same XPU wiring.Also in 4.1: dependency security refresh across every isolated backend env (yt-dlp 2026.7.4, cryptography 49.0.0, per-env torch updates, and a 36-package dead-weight drop from the insane env).
Thanks to @Mischala for kicking off the XPU support (#127, closes #23).
Three new backends, phoneme-precise word-level timestamps for the fast path, and read-only installs. This is the biggest release since the --device insane debut. If you ran 3.2 and squinted at end-of-audio timestamps, this is the one to upgrade to.
--device insane-flash — guaranteed FlashAttention2 on CUDASame blazing insanely-fast-whisper model path as --device insane, but in a separate isolated environment with pinned FlashAttention2 wheels for Windows x86_64, Linux x86_64, and Linux aarch64 (Python 3.11, torch==2.7.0+cu128, flash-attn==2.8.3). It verifies flash_attn and the compiled CUDA extension before transcription starts and fails early with platform diagnostics when no controlled wheel is available. No more sad-path silent fallbacks.
transcribe-anything video.mp4 --device insane-flash --batch-size 8
--align — phoneme-precise word-level timestamps on --device insane / --device insane-flashThe HF-pipeline timestamp drift on long audio is over. Add --align and the transcript gets a WhisperX wav2vec2 forced-alignment post-pass: every chunk grows a words: [{word, start, end, score}] array and segment timestamps tighten to first/last-word boundaries. out.srt and out.vtt inherit the tightened bounds for free. Reuses the WhisperX iso-env, so no new deps in the insane env. Best-effort by design — unsupported language, env build failure, or runner crash falls back to the original output with a stderr warning, never breaks transcription.
# Phoneme-precise timestamps on the fast path:
transcribe-anything video.mp4 --device insane --align
transcribe-anything video.mp4 --device insane-flash --align
# Force a specific wav2vec2 aligner for languages outside the 41 defaults:
transcribe-anything video.mp4 --device insane --align --align_model facebook/wav2vec2-large-960h-lv60-self
--device whisperx — alignment + diarization + word timing as a first-class backendWhisperX is now bundled as a parallel, additive backend (it does not replace --device insane). Built-in VAD chunking, wav2vec2 forced alignment, and pyannote diarization — all from one CLI. Use it when you want word-level timestamps and per-speaker labels from a single backend invocation.
transcribe-anything video.mp4 --device whisperx --diarize --hf_token <hf_xxxx>
Supports --compute_type, --min_speakers / --max_speakers, --align_model, --no_align, --highlight_words, --vad_method, --chunk_size.
--device sensevoice — multilingual non-autoregressive, ~5x faster at comparable WERNew isolated-env backend wrapping FunASR's iic/SenseVoiceSmall model. Non-autoregressive — ~5x faster than whisper-large-v3 at comparable word-error rate. Multilingual out of the box (auto/zh/en/yue/ja/ko/nospeech), built-in fsmn-vad, emotion detection, and event-tag postprocessing. Speaker diarization via cam++ is opt-in with --diarize. Models pull from ModelScope by default; pass --hub hf for HuggingFace.
transcribe-anything video.mp4 --device sensevoice
transcribe-anything video.mp4 --device sensevoice --diarize --language zh
Backend iso-env venvs and the bundled static_ffmpeg binary moved from inside the package directory (<site-packages>/transcribe_anything/venv/...) to the user cache directory (<user_cache_dir>/transcribe-anything/...). That unblocks Nix-store installs, OS-package installs, multi-user shared installs, baked-into-container installs, and pip install --target with a read-only mount. Override the location with TRANSCRIBE_ANYTHING_CACHE_DIR=/somewhere/writable.
One-time cost on upgrade: existing 3.2 installs have a venv cache at the old path. Those caches are orphaned by this move, so the first run of each backend after upgrade re-downloads its dependencies (~10 GB for
--device insane). No data loss — just the install-time wheel fetch, once.
nix run github:zackees/transcribe-anything -- <url-or-file> --device insane
nix shell github:zackees/transcribe-anything
nix build .#transcribe-anything
A complete uv2nix-based Nix flake is now part of the repo, contributed by community member @eeedean (#68 → #104). One-line install for any Linux / macOS / NixOS user with Nix flakes enabled, the wrapper script puts ffmpeg and uv on PATH automatically, and the dev shell (nix develop) gives you an editable install with yt-dlp pre-installed. Pairs perfectly with the read-only-install support above — backend iso-envs land in your user cache, not the immutable Nix store.
If you don't have a local NVIDIA GPU, community member @victorkjung maintains a turnkey RunPod Serverless deployment. Per-second-billed GPU minutes that scale to zero. See the Cloud / Serverless section below.
--hf-token no longer leaks into stderr or the OSError("Failed to execute ...") traceback when the insane backend's subprocess fails. If you ran 3.2 on RunPod, Modal, or any other serverless host that surfaces stdout/stderr or exception messages in job-status APIs, rotate your HuggingFace token — older runs may have logged it. Going forward, the token is masked in both the Running: banner and the failure traceback. The subprocess itself still receives the real token.
--device insane-flash, --device whisperx, and the long-form timestamp regression suite were driven by community feedback through the issue tracker. --device sensevoice is wired up against FunASR (FunAudioLLM/SenseVoice). --align reuses the wav2vec2 forced-alignment work from m-bain/whisperX. Special thanks to @aj47 for the MLX backend, @victorkjung for the RunPod Serverless deployment fork, and everyone who filed issues and PRs since 3.2.
Turbo Mac acceleration using the new lightning-whisper-mlx backend.
This is a communinity contribution by https://github.com/aj47. On behalf of all the mac users, thank you!
mps whisper backend.mps only supports english).--initial_prompt.# Mac accelerated back-end
transcribe-anything "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --device mlx
Special thank
Mac acceleration option using the new lightning-whisper-mlx backend. Enable with --device mlx. Now supports multiple languages, custom vocabulary via --initial_prompt, and both transcribe/translate tasks. 10x faster than Whisper CPP, 4x faster than previous MLX implementations!
Model Storage: MLX models are now stored in ~/.cache/whisper/mlx_models/ for consistency with other backends, instead of cluttering your current working directory.
GPU Accelerated Dockerfile
Recently added in 3.0.10 is a GPU accelerated Dockerfile.
If you are are doing translations at scale, check out the sister project: https://github.com/zackees/transcribe-everything.
You can pull the docker image like so:
docker pull niteris/transcribe-anything
Easiest whisper implementation to install and use. Just install with pip install transcribe-anything. All whisper backends are executed in an isolated environment. GPU acceleration is automatic, using the blazingly fast insanely-fast-whisper as the backend for --device insane. CUDA users can choose --device insane-flash for a separate FlashAttention2-backed insane environment with pinned wheel artifacts. WhisperX is also available with --device whisperx for alignment, diarization, and word highlighting; it is additive and does not replace --device insane. This is the only tool to optionally produces a speaker.json file, representing speaker-assigned text that has been de-chunkified.
Hardware acceleration on Windows/Linux --device insane
MacArm acceleration when using --device mlx (now with multi-language support and custom vocabulary)
Input a local file or youtube/rumble url and this tool will transcribe it using Whisper AI into subtitle files and raw text.
Uses whisper AI so this is state of the art translation service - completely free.
Your data stays private and is not uploaded to any service.
The new version now has state of the art speed in transcriptions, thanks to the new backend --device insane, as well as producing a speaker.json file.
…
python api
…
insane mode with model large-v3 + batchingThis is by far the fastest combination. Experimental, it produces text that tends to be lower quality:
It's unclear if this is due to batching or large-v3 itself. More testing is needed. If you do this then please let us know the results by filing a bug in the issues page.
Large batch sizes require more significant amounts of Nvidia GPU Ram. For a 12 GB card, it's been experimen
No open issues yet, or sync has not completed.