[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93577":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},93577,"transcribe.cpp","handy-computer\u002Ftranscribe.cpp","handy-computer"," ggml speech-to-text inference for 16+ model families",null,"https:\u002F\u002Fgithub.com\u002Fhandy-computer\u002Ftranscribe.cpp","C++",1152,29,10,12,0,112,336,99.43,false,"main","2026-07-22 04:02:09","# transcribe.cpp\n\nC\u002FC++ speech-to-text inference library. Runs diverse STT model families via [GGUF](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fgguf) models on the [ggml](https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fggml) runtime, with Metal, Vulkan, and CUDA backends for fast GPU inference plus a tinyBLAS-accelerated CPU path.\n\n16 model families and 60+ variants, streaming and batch. Every model we publish under [`handy-computer`](https:\u002F\u002Fhuggingface.co\u002Fhandy-computer) is numerically verified and WER-tested against its reference implementation\n\n**Supported models:**\n\n| Family | Variants | Docs |\n| --- | --- | --- |\n| Parakeet | 10 variants: TDT, RNN-T, CTC, TDT+CTC (110M–1.1B) | [docs\u002Fmodels\u002Fparakeet.md](docs\u002Fmodels\u002Fparakeet.md) |\n| Canary | `canary-1b`, `canary-1b-v2`, `canary-1b-flash`, `canary-180m-flash` | [docs\u002Fmodels\u002Fcanary.md](docs\u002Fmodels\u002Fcanary.md) |\n| Canary-Qwen | `canary-qwen-2.5b` (FastConformer + Qwen3-1.7B SALM) | [docs\u002Fmodels\u002Fcanary-qwen-2.5b.md](docs\u002Fmodels\u002Fcanary-qwen-2.5b.md) |\n| Whisper | 12 variants (`tiny` through `large-v3-turbo`, plus `.en` siblings) | [docs\u002Fmodels\u002Fwhisper.md](docs\u002Fmodels\u002Fwhisper.md) |\n| GigaAM | `gigaam-v3-{e2e-rnnt,e2e-ctc,rnnt,ctc}` | [docs\u002Fmodels\u002Fgigaam.md](docs\u002Fmodels\u002Fgigaam.md) |\n| Moonshine | `moonshine-tiny`, `moonshine-base` | [docs\u002Fmodels\u002Fmoonshine.md](docs\u002Fmodels\u002Fmoonshine.md) |\n| Moonshine Streaming | `moonshine-streaming-{tiny,small,medium}` | [docs\u002Fmodels\u002Fmoonshine-streaming.md](docs\u002Fmodels\u002Fmoonshine-streaming.md) |\n| Qwen3-ASR | `qwen3-asr-0.6b`, `qwen3-asr-1.7b` | [docs\u002Fmodels\u002Fqwen3-asr.md](docs\u002Fmodels\u002Fqwen3-asr.md) |\n| Cohere Transcribe | `cohere-transcribe-03-2026` | [docs\u002Fmodels\u002Fcohere-transcribe-03-2026.md](docs\u002Fmodels\u002Fcohere-transcribe-03-2026.md) |\n| SenseVoice | `sensevoice-small` | [docs\u002Fmodels\u002Fsensevoice-small.md](docs\u002Fmodels\u002Fsensevoice-small.md) |\n| FunASR Nano | `fun-asr-nano-2512`, `fun-asr-mlt-nano-2512` | [docs\u002Fmodels\u002Ffun-asr-nano.md](docs\u002Fmodels\u002Ffun-asr-nano.md) |\n| Nemotron Speech Streaming | `nemotron-speech-streaming-en-0.6b` | [docs\u002Fmodels\u002Fnemotron-speech-streaming-en-0.6b.md](docs\u002Fmodels\u002Fnemotron-speech-streaming-en-0.6b.md) |\n| Nemotron 3.5 ASR Streaming | `nemotron-3.5-asr-streaming-0.6b` (multilingual, 40 locales) | [docs\u002Fmodels\u002Fnemotron-3.5-asr-streaming-0.6b.md](docs\u002Fmodels\u002Fnemotron-3.5-asr-streaming-0.6b.md) |\n| Multitalker Parakeet Streaming | `multitalker-parakeet-streaming-0.6b-v1` (single-speaker ASR path only) | [docs\u002Fmodels\u002Fmultitalker-parakeet-streaming-0.6b-v1.md](docs\u002Fmodels\u002Fmultitalker-parakeet-streaming-0.6b-v1.md) |\n| Granite Speech 4 \u002F 4.1 | `granite-4.0-1b-speech`, `granite-speech-4.1-2b{,-plus,-nar}` | [docs\u002Fmodels\u002Fgranite-speech.md](docs\u002Fmodels\u002Fgranite-speech.md) |\n| Voxtral | `voxtral-mini-3b-2507`, `voxtral-small-24b-2507` (audio-LLM; transcription + translation) | [docs\u002Fmodels\u002Fvoxtral.md](docs\u002Fmodels\u002Fvoxtral.md) |\n| Voxtral Realtime | `voxtral-mini-4b-realtime-2602` (streaming audio-LLM) | [docs\u002Fmodels\u002Fvoxtral-realtime.md](docs\u002Fmodels\u002Fvoxtral-realtime.md) |\n| MedASR | `medasr` (Conformer + CTC, English medical-dictation, gated) | [docs\u002Fmodels\u002Fmedasr.md](docs\u002Fmodels\u002Fmedasr.md) |\n| MOSS Transcribe-Diarize | `moss-transcribe-diarize` (audio-LLM; English + Chinese ASR with inline speaker diarization) | [docs\u002Fmodels\u002Fmoss-transcribe-diarize.md](docs\u002Fmodels\u002Fmoss-transcribe-diarize.md) |\n\nPer-variant model cards live under [`docs\u002Fmodels\u002F`](docs\u002Fmodels\u002F).\n\n## Build\n\n```bash\ncmake -B build\ncmake --build build\n```\n\nMetal is enabled automatically on Apple Silicon. For Vulkan (Linux\u002FWindows):\n\n```bash\n# Ubuntu\u002FDebian\nsudo apt install build-essential cmake libvulkan-dev glslc libopenblas-dev\n\ncmake -B build -DTRANSCRIBE_VULKAN=ON\ncmake --build build\n```\n\nOn Windows, see the [complete build guide](docs\u002Fbuild-windows.md) for Vulkan\nSDK setup, Visual Studio commands, and the short-build-root fallback for\nunusually deep checkouts.\n\nFor CUDA (Linux + NVIDIA GPU):\n\n```bash\n# requires the CUDA toolkit (nvcc) on PATH\ncmake -B build -DTRANSCRIBE_CUDA=ON\ncmake --build build\n```\n\n`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.\n\ntinyBLAS (Justine Tunney's `llamafile_sgemm` kernels) is on by default.\n\nTo build the quantization tool:\n\n```bash\ncmake -B build -DTRANSCRIBE_BUILD_TOOLS=ON\ncmake --build build\n```\n\n## Models\n\nPre-built GGUFs for all supported models are hosted on Hugging Face under\n[`handy-computer`](https:\u002F\u002Fhuggingface.co\u002Fhandy-computer). Each per-model doc\n(linked in the table above) includes direct download links for every quant.\nConvert from source only if you need a different dtype or a checkpoint that\nisn't pre-built.\n\n### Convert to GGUF\n\nThe converter loads directly from NVIDIA's NeMo checkpoints via\n`ASRModel.from_pretrained`. Requires [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F);\nthe parakeet env ships NeMo and its deps.\n\n```bash\nuv run --project scripts\u002Fenvs\u002Fparakeet \\\n  scripts\u002Fconvert-parakeet.py nvidia\u002Fparakeet-tdt-0.6b-v2\n```\n\nThis writes `models\u002Fparakeet-tdt-0.6b-v2\u002Fparakeet-tdt-0.6b-v2-F32.gguf` following\nthe llama.cpp-style `\u003Cslug>-\u003CQUANT>.gguf` naming convention. Pass a local\n`.nemo` path or extracted directory for offline conversion.\n\n### Quantize\n\nThe `transcribe-quantize` tool produces smaller models from the\nreference GGUF. Available presets: `F16`, `Q8_0`, `Q6_K`, `Q5_K_M`,\n`Q4_K_M`.\n\n```bash\nbuild\u002Fbin\u002Ftranscribe-quantize \\\n  models\u002Fparakeet-tdt-0.6b-v2\u002Fparakeet-tdt-0.6b-v2-F32.gguf \\\n  models\u002Fparakeet-tdt-0.6b-v2\u002Fparakeet-tdt-0.6b-v2-Q4_K_M.gguf \\\n  --quant Q4_K_M\n```\n\n## Usage\n\n```bash\nbuild\u002Fbin\u002Ftranscribe-cli -m models\u002Fparakeet-tdt-0.6b-v2\u002Fparakeet-tdt-0.6b-v2-F32.gguf samples\u002Fjfk.wav\n```\n\nInput must be 16 kHz mono WAV. Use `ffmpeg` or `sox` to convert other formats:\n\n```bash\nffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav\n```\n\n## Bindings\n\nOfficial bindings wrap the C API for other languages:\n\n| Language | Path |\n| --- | --- |\n| Python | [bindings\u002Fpython](bindings\u002Fpython) |\n| TypeScript \u002F JavaScript | [bindings\u002Ftypescript](bindings\u002Ftypescript) |\n| Rust | [bindings\u002Frust\u002Ftranscribe-cpp](bindings\u002Frust\u002Ftranscribe-cpp) |\n| Swift \u002F ObjC | [bindings\u002Fswift](bindings\u002Fswift) |\n\nSee [`docs\u002Fbindings.md`](docs\u002Fbindings.md) for how the bindings are generated\nand kept in sync with the header.\n\n## Tests\n\n```bash\ncd build && ctest\n```\n\nSome tests require a real model file. Enable them with:\n\n```bash\ncmake -B build -DTRANSCRIBE_BUILD_REAL_MODEL_TESTS=ON\ncmake --build build\nTRANSCRIBE_PARAKEET_GGUF=path\u002Fto\u002Fmodel.gguf ctest --test-dir build\n```\n\nFor the model-family smoke-test, numerical-validation, and benchmark\npattern expected of new ports, see\n[`docs\u002Fmodel-family-testing.md`](docs\u002Fmodel-family-testing.md).\n\n## Sponsors & Supporting Organizations\n\n### Mozilla AI & BiR Program\n\nA huge thanks to [Mozilla AI](https:\u002F\u002Fwww.mozilla.ai\u002F) and their [BiR Program](https:\u002F\u002Fwww.mozilla.ai\u002Fcompany\u002Fbir).\nThis whole project started out as an idea, not even an implementation direction. It was a research project in how\nto accelerate transcription models across all platforms as easily as possible. The BiR program and Davide helped\nsupport the research, and my eventual direction to choose to implement and inference engine backed by ggml. And\nalso experimenting with automated model porting using agentic programming tools.\n\n### Hugging Face\n\n[Hugging Face](https:\u002F\u002Fhuggingface.co\u002F) provided the project extra storage so we can host all of the models\nwhich we support. We want to provide canonical references for as many models as reasonably possible,\nthe support from Hugging Face helps to enable this.\n\n### Modal\n\n[Modal](https:\u002F\u002Fmodal.com\u002F) helped to provide GPU credits so the project can test and validate the projects\nimplementations match the transformers or nemo reference source. This is critical to ensuring that we have \nas close to a production grade inference engine that works everywhere. We believe it is critical to have\naccurate transcriptions and the only way to ensure this is through long running WER checks which Modal\nhelps to provide. Every model published under [handy-computer](https:\u002F\u002Fhuggingface.co\u002Fhandy-computer) \non hugggingface has had the WER checked, so you can trust the results. And if there are any regressions, you\nbet we will be fixing them.\n\n### Blacksmith\n\n[Blacksmith](https:\u002F\u002Fwww.blacksmith.sh\u002F) provides many of the CI runners for this project. That helps to keep\ntranscribe.cpp well tested and ensure our releases are as smooth as possible. The CI is quick and a drop \nin replacement for the standard Github Actions runners. I ran into limits very fast with them and super happy\nupon reaching out to Blacksmith they were able to provide runners for the project. \n\n## Project layout\n\n```\ninclude\u002Ftranscribe.h       Public C API (single header)\nsrc\u002F                       Library internals (C++17)\nsrc\u002Farch\u002Fparakeet\u002F         Parakeet family implementation\nsrc\u002Farch\u002Fcohere\u002F           Cohere Transcribe family implementation\nexamples\u002Fcli\u002F              CLI binary source\ntools\u002Ftranscribe-quantize\u002F Quantization tool source\nbindings\u002F                  Python, TypeScript, Rust, and Swift bindings\ndocs\u002F                      Porting and validation guidance\nscripts\u002F                   Python converter + test tooling\nggml\u002F                      Vendored ggml (see ggml\u002FUPSTREAM for pinned SHA)\nsrc\u002Fthird_party\u002Fminiz\u002F     Vendored miniz deflate codec (see its UPSTREAM file)\nsamples\u002F                   Test audio files\ntests\u002F                     Unit and smoke tests\n```\n\n## License\n\ntranscribe.cpp is MIT-licensed. See [LICENSE](LICENSE) for details. Vendored\nthird-party components (ggml, miniz — both MIT) are attributed in\n[THIRD-PARTY-LICENSES.md](THIRD-PARTY-LICENSES.md).\n",2,"2026-07-21 02:30:05","trending"]