NewsOpen Source

transcribe.cpp: Run 60+ ASR Models Locally Without PyTorch

Sound waveform layers representing 16 ASR model families unified by a single ggml GGUF runtime in transcribe.cpp

If you’ve tried to add local speech-to-text to a project this year, you already know the problem. whisper.cpp is solid — if all you need is Whisper. Anything else (NVIDIA Parakeet, Mistral Voxtral, Canary, Moonshine) means a completely different stack, often tied to a specific OS or requiring a full PyTorch environment. Cloud APIs solve the model problem but introduce a privacy problem. Neither answer works for everyone.

A new library called transcribe.cpp is trying to fix this. It hit #1 on Hacker News today with 691 points. The pitch: one ggml-based runtime, 16 ASR model families, 60+ model variants, all in GGUF format. You pick the model. The runtime handles the rest.

One Runtime, Every Model

transcribe.cpp is built on ggml — the same inference engine powering llama.cpp and whisper.cpp. That’s a deliberate choice. ggml is already battle-tested across millions of local LLM deployments, and its GGUF format has become the de facto standard for distributable model weights. Extending it to local speech recognition means developers get Metal acceleration on Apple Silicon, CUDA on NVIDIA GPUs, and Vulkan on Linux and Windows, without writing separate code for each backend.

The library ships a single C header API, which means you can embed it in applications without pulling in Python or PyTorch. Official bindings cover Python, TypeScript/JavaScript, Rust, and Swift/Objective-C. For most developers, the entry point is now:

pip install transcribe-cpp

Python bindings dropped on July 11. Before that, you were building from source.

The Models That Actually Change the Equation

The Whisper support is table stakes — all 12 variants from tiny through large-v3-turbo are included, so existing whisper.cpp projects can migrate without breaking anything. The more interesting additions are the newer families.

NVIDIA Parakeet TDT 0.6B v3 currently sits at #1 on the Hugging Face Open ASR Leaderboard with a 6.34% average Word Error Rate across 25 European languages — and transcribes audio at roughly 3,333x real-time speed on a GPU. The English-only v2 hits 6.05% WER. The trade-off versus Whisper is language breadth: Parakeet covers 25 European languages to Whisper’s 99. For English-first applications, Parakeet is not a close call.

Voxtral Mini 4B Realtime from Mistral ships under Apache 2.0 and achieves streaming latency under 500ms across 13 languages. It’s the first open-weight model to match cloud-tier accuracy in a realtime streaming context — which matters if you’re building voice agents or live transcription products.

Beyond those, the catalog includes medical dictation (MedASR), bilingual speaker diarization (MOSS Transcribe-Diarize), multilingual models covering 40 locales (Nemotron Speech), and lightweight edge options that run faster than real-time on a budget ARM SoC like the RK3566. That last point is not a typo: a cheap embedded chip can run local speech recognition faster than speech happens.

Why Mozilla AI Is Backing This

transcribe.cpp is the first project out of Mozilla AI’s Builders in Residence program, which funds independent open-source work aligned with Mozilla’s mission around portability and openness. The backing matters because it’s the difference between a side project that stalls at v0.1 and a library with a real maintenance runway.

The problem Mozilla is betting on: the ASR ecosystem has been stuck in a model monoculture. whisper.cpp proved the ggml approach works for local inference, but it locked to one model family. The last 12 months delivered Parakeet v3, Voxtral realtime, Canary, and half a dozen others — none accessible through a single native runtime. NVIDIA has been pushing Parakeet hard precisely because no unified runtime made it easy to reach. transcribe.cpp is the obvious fix.

What to Do Now

The library is at v0.1.3 and iterating quickly — 12 releases since June 30. Interfaces may still shift. That said, if you’re building anything with local speech-to-text, this is worth evaluating now:

  • Install: pip install transcribe-cpp
  • CLI: transcribe-cli -m model.gguf samples/audio.wav
  • Input format: 16 kHz mono WAV (use ffmpeg to convert)
  • Check model licenses before shipping — they vary by family

If you’re on a whisper.cpp project and not using model-specific features, migration is straightforward. If you’re starting fresh, Parakeet for English accuracy or Voxtral for streaming multilingual support beats Whisper in most new use cases.

The “llama.cpp moment” for ASR took longer than it should have. It looks like it’s finally here.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News