Zurück zum Ranking

handy-computer/transcribe.cpp

C++huggingface.co/handy-computer

ggml speech-to-text inference for 16+ model families

asrggmlggufspeech-to-text
Sterne-Wachstum
Sterne
1.1k
Forks
29
Wochenwachstum
Issues
12
1.1k
1. Juli7. Juli14. Juli20. Juli
README

transcribe.cpp

C/C++ speech-to-text inference library. Runs diverse STT model families via GGUF models on the ggml runtime, with Metal, Vulkan, and CUDA backends for fast GPU inference plus a tinyBLAS-accelerated CPU path.

16 model families and 60+ variants, streaming and batch. Every model we publish under handy-computer is numerically verified and WER-tested against its reference implementation

Supported models:

Family Variants Docs
Parakeet 10 variants: TDT, RNN-T, CTC, TDT+CTC (110M–1.1B) docs/models/parakeet.md
Canary canary-1b, canary-1b-v2, canary-1b-flash, canary-180m-flash docs/models/canary.md
Canary-Qwen canary-qwen-2.5b (FastConformer + Qwen3-1.7B SALM) docs/models/canary-qwen-2.5b.md
Whisper 12 variants (tiny through large-v3-turbo, plus .en siblings) docs/models/whisper.md
GigaAM gigaam-v3-{e2e-rnnt,e2e-ctc,rnnt,ctc} docs/models/gigaam.md
Moonshine moonshine-tiny, moonshine-base docs/models/moonshine.md
Moonshine Streaming moonshine-streaming-{tiny,small,medium} docs/models/moonshine-streaming.md
Qwen3-ASR qwen3-asr-0.6b, qwen3-asr-1.7b docs/models/qwen3-asr.md
Cohere Transcribe cohere-transcribe-03-2026 docs/models/cohere-transcribe-03-2026.md
SenseVoice sensevoice-small docs/models/sensevoice-small.md
FunASR Nano fun-asr-nano-2512, fun-asr-mlt-nano-2512 docs/models/fun-asr-nano.md
Nemotron Speech Streaming nemotron-speech-streaming-en-0.6b docs/models/nemotron-speech-streaming-en-0.6b.md
Nemotron 3.5 ASR Streaming nemotron-3.5-asr-streaming-0.6b (multilingual, 40 locales) docs/models/nemotron-3.5-asr-streaming-0.6b.md
Multitalker Parakeet Streaming multitalker-parakeet-streaming-0.6b-v1 (single-speaker ASR path only) docs/models/multitalker-parakeet-streaming-0.6b-v1.md
Granite Speech 4 / 4.1 granite-4.0-1b-speech, granite-speech-4.1-2b{,-plus,-nar} docs/models/granite-speech.md
Voxtral voxtral-mini-3b-2507, voxtral-small-24b-2507 (audio-LLM; transcription + translation) docs/models/voxtral.md
Voxtral Realtime voxtral-mini-4b-realtime-2602 (streaming audio-LLM) docs/models/voxtral-realtime.md
MedASR medasr (Conformer + CTC, English medical-dictation, gated) docs/models/medasr.md
MOSS Transcribe-Diarize moss-transcribe-diarize (audio-LLM; English + Chinese ASR with inline speaker diarization) docs/models/moss-transcribe-diarize.md

Per-variant model cards live under docs/models/.

Build

cmake -B build
cmake --build build

Metal is enabled automatically on Apple Silicon. For Vulkan (Linux/Windows):

# Ubuntu/Debian
sudo apt install build-essential cmake libvulkan-dev glslc libopenblas-dev

cmake -B build -DTRANSCRIBE_VULKAN=ON
cmake --build build

On Windows, see the complete build guide for Vulkan SDK setup, Visual Studio commands, and the short-build-root fallback for unusually deep checkouts.

For CUDA (Linux + NVIDIA GPU):

# requires the CUDA toolkit (nvcc) on PATH
cmake -B build -DTRANSCRIBE_CUDA=ON
cmake --build build

libopenblas-dev is optional but recommended. It accelerates the host-side decoder ~10-15x. Without it the build falls back to a scalar path automatically.

tinyBLAS (Justine Tunney's llamafile_sgemm kernels) is on by default.

To build the quantization tool:

cmake -B build -DTRANSCRIBE_BUILD_TOOLS=ON
cmake --build build

Models

Pre-built GGUFs for all supported models are hosted on Hugging Face under handy-computer. Each per-model doc (linked in the table above) includes direct download links for every quant. Convert from source only if you need a different dtype or a checkpoint that isn't pre-built.

Convert to GGUF

The converter loads directly from NVIDIA's NeMo checkpoints via ASRModel.from_pretrained. Requires uv; the parakeet env ships NeMo and its deps.

uv run --project scripts/envs/parakeet \
  scripts/convert-parakeet.py nvidia/parakeet-tdt-0.6b-v2

This writes models/parakeet-tdt-0.6b-v2/parakeet-tdt-0.6b-v2-F32.gguf following the llama.cpp-style <slug>-<QUANT>.gguf naming convention. Pass a local .nemo path or extracted directory for offline conversion.

Quantize

The transcribe-quantize tool produces smaller models from the reference GGUF. Available presets: F16, Q8_0, Q6_K, Q5_K_M, Q4_K_M.

build/bin/transcribe-quantize \
  models/parakeet-tdt-0.6b-v2/parakeet-tdt-0.6b-v2-F32.gguf \
  models/parakeet-tdt-0.6b-v2/parakeet-tdt-0.6b-v2-Q4_K_M.gguf \
  --quant Q4_K_M

Usage

build/bin/transcribe-cli -m models/parakeet-tdt-0.6b-v2/parakeet-tdt-0.6b-v2-F32.gguf samples/jfk.wav

Input must be 16 kHz mono WAV. Use ffmpeg or sox to convert other formats:

ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav

Bindings

Official bindings wrap the C API for other languages:

Language Path
Python bindings/python
TypeScript / JavaScript bindings/typescript
Rust bindings/rust/transcribe-cpp
Swift / ObjC bindings/swift

See docs/bindings.md for how the bindings are generated and kept in sync with the header.

Tests

cd build && ctest

Some tests require a real model file. Enable them with:

cmake -B build -DTRANSCRIBE_BUILD_REAL_MODEL_TESTS=ON
cmake --build build
TRANSCRIBE_PARAKEET_GGUF=path/to/model.gguf ctest --test-dir build

For the model-family smoke-test, numerical-validation, and benchmark pattern expected of new ports, see docs/model-family-testing.md.

Sponsors & Supporting Organizations

Mozilla AI & BiR Program

A huge thanks to Mozilla AI and their BiR Program. This whole project started out as an idea, not even an implementation direction. It was a research project in how to accelerate transcription models across all platforms as easily as possible. The BiR program and Davide helped support the research, and my eventual direction to choose to implement and inference engine backed by ggml. And also experimenting with automated model porting using agentic programming tools.

Hugging Face

Hugging Face provided the project extra storage so we can host all of the models which we support. We want to provide canonical references for as many models as reasonably possible, the support from Hugging Face helps to enable this.

Modal helped to provide GPU credits so the project can test and validate the projects implementations match the transformers or nemo reference source. This is critical to ensuring that we have as close to a production grade inference engine that works everywhere. We believe it is critical to have accurate transcriptions and the only way to ensure this is through long running WER checks which Modal helps to provide. Every model published under handy-computer on hugggingface has had the WER checked, so you can trust the results. And if there are any regressions, you bet we will be fixing them.

Blacksmith

Blacksmith provides many of the CI runners for this project. That helps to keep transcribe.cpp well tested and ensure our releases are as smooth as possible. The CI is quick and a drop in replacement for the standard Github Actions runners. I ran into limits very fast with them and super happy upon reaching out to Blacksmith they were able to provide runners for the project.

Project layout

include/transcribe.h       Public C API (single header)
src/                       Library internals (C++17)
src/arch/parakeet/         Parakeet family implementation
src/arch/cohere/           Cohere Transcribe family implementation
examples/cli/              CLI binary source
tools/transcribe-quantize/ Quantization tool source
bindings/                  Python, TypeScript, Rust, and Swift bindings
docs/                      Porting and validation guidance
scripts/                   Python converter + test tooling
ggml/                      Vendored ggml (see ggml/UPSTREAM for pinned SHA)
src/third_party/miniz/     Vendored miniz deflate codec (see its UPSTREAM file)
samples/                   Test audio files
tests/                     Unit and smoke tests

License

transcribe.cpp is MIT-licensed. See LICENSE for details. Vendored third-party components (ggml, miniz — both MIT) are attributed in THIRD-PARTY-LICENSES.md.

Ähnliche Repositories
m-bain/whisperX

WhisperX: Automatic Speech Recognition with Word-level Timestamps (& Diarization)

PythonPyPIBSD 2-Clause "Simplified" Licenseasrspeech
23.2k2.3k
modelscope/FunASR

Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.

PythonPyPIMIT Licensepytorchspeech-recognition
modelscope.github.io/FunASR/
19.4k1.9k
NVIDIA-NeMo/Speech

A scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)

PythonPyPIApache License 2.0machine-translationspeaker-recognition
docs.nvidia.com/nemo/speech/nightly/index.html
17.8k3.5k
alphacep/vosk-api

Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node

Jupyter NotebookApache License 2.0speech-recognitionasr
15k1.7k
k2-fsa/sherpa-onnx

Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages

C++Apache License 2.0asronnx
k2-fsa.github.io/sherpa/onnx/index.html
13.7k1.6k
NVIDIA/NeMo

A scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)

PythonPyPIApache License 2.0machine-translationspeaker-recognition
docs.nvidia.com/nemo-framework/user-guide/latest/overview.html
13.3k2.7k
PaddlePaddle/PaddleSpeech

Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.

PythonPyPIApache License 2.0transformerconformer
paddlespeech.readthedocs.io
12.6k2k
speechbrain/speechbrain

A PyTorch-based Speech Toolkit

PythonPyPIApache License 2.0speech-recognitionspeech-toolkit
speechbrain.github.io
11.7k1.7k
FunAudioLLM/SenseVoice

Open-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.

CMIT Licenseasrspeech-recognition
funaudiollm.github.io
8.9k794
debpalash/OmniVoice-Studio

Local voice clone, video dubbing, dictation and audiobook maker. The open-source ElevenLabs alternative.

PythonPyPIGNU Affero General Public License v3.0ttsvoice-cloning
palash.dev/omnivoice
8.8k1.4k
jdepoix/youtube-transcript-api

This is a python API which allows you to get the transcript/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require an API key nor a headless browser, like other selenium based solutions do!

PythonPyPIMIT Licenseyoutube-apisubtitles
7.9k804
wzpan/wukong-robot

🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱项目。

PythonPyPIMIT Licenseaispeaker
wukong.hahack.com
7.1k1.4k