Skip to main content

voxrt

Fast, deterministic speech-to-text for Python — a Rust runtime for Parakeet Redux.

PyPI Python CI License Platforms Model

voxrt runs moondream/parakeet-redux, the 1.58-bit ternary distillation of NVIDIA's Parakeet-TDT 0.6B (25 European languages, 178 MB), with native ternary kernels written in Rust. No PyTorch, ONNX or ML framework: one small wheel and huggingface_hub.

  • Fast — 197× real time on LibriSpeech test-clean on an M4 Max GPU, 105× on an 8-core AMD server CPU
  • Apple GPU by default on Apple silicon (Metal); the Neural Engine on request; CPU everywhere else
  • Same bits everywhere — the CPU path gives byte-identical transcripts on Apple silicon and x86
  • Long audio built in — the model's own VAD head cuts talks and meetings at pauses; segment and word timestamps
  • Streaming — push audio as it arrives; the streamed transcript equals the offline one
  • Accurate — WER 1.95 on LibriSpeech test-clean (the model card reports 1.96)

Install

pip install voxrt            # WAV input
pip install "voxrt[audio]"   # plus FLAC / OGG / MP3 and numpy arrays

Wheels for Apple silicon and Intel Macs (macOS 10.12+) and Linux x86-64, Python 3.9 and later. The model (≈ 180 MB) downloads into the Hugging Face cache on first use.

Quick start

import voxrt

t = voxrt.Transcriber()                       # or voxrt.Transcriber("/path/to/parakeet-redux")
r = t.transcribe("talk.mp3")
print(r.text)

for s in r.segments:                          # Segment(start, end, text, words=[Word(word, start, end)])
    print(f"[{s.start:6.2f} → {s.end:6.2f}] {s.text}")

Audio: WAV is decoded natively, FLAC / OGG / MP3 with voxrt[audio], anything else (M4A, AAC, video) when ffmpeg is on PATH. Arrays work too: t.transcribe(samples, sample_rate=48000) takes mono or [n, channels].

Streaming

st = t.stream()
for chunk in microphone_chunks_16k():         # float32, 16 kHz mono
    for seg in st.push(chunk):                # segments are emitted as soon as their end is certain
        print(seg.text)
for seg in st.flush():
    print(seg.text)

Devices

voxrt.Transcriber(device="auto")   # default: the Apple GPU on Apple silicon, the CPU elsewhere
voxrt.Transcriber(device="cpu")    # byte-identical across machines
voxrt.Transcriber(device="ane")    # Apple Neural Engine (macOS 15+): downloads a Core ML bundle, ≈ 300 MB

t.device reports where the encoder runs. The Neural Engine bundle, MaksL/voxrt-parakeet-redux-coreml, keeps the ternary weights exact in 2 bits; macOS compiles it on the first load (≈ 5 min, once).

Results are frozen dataclasses (Transcript, Segment, Word) with type hints. The GIL is released while transcribing, so one Transcriber can serve several threads.

How it works

Pipeline: audio → log-mel front end with VAD → ternary encoder (on the CPU, the Apple GPU or the Neural Engine) → TDT decoder → text with segment and word timestamps

Benchmarks

Apple M4 Max, the same method for every runtime (processing time, model load excluded):

Workload voxrt GPU (default) voxrt CPU Photon CPU (Moondream)
LibriSpeech test-clean, 2,620 utterances 197× · WER 1.96 79× · WER 1.95 51× · WER 1.96
TED-LIUM 3 long-form, 148 min 174× · WER 2.54 92× · WER 2.55 65× · WER 2.52
Speed on LibriSpeech dev50 on the CPU: voxrt 78× vs Photon 70× on an Apple M4 Max; voxrt 104× vs Photon 98× on AMD Turin

More machines, the method and the comparison with other runtimes: benchmarks in the repository.

Development

Build from source with maturin develop --release in bindings/python. Tests: pip install "voxrt[test]", then VOXRT_TEST_DOWNLOAD=1 pytest bindings/python/tests (or point VOXRT_MODEL_DIR at a local copy). The test clip is LibriSpeech test-clean 1089-134686-0001 (CC BY 4.0, see tests/audio/ATTRIBUTION.md).

License

voxrt is Apache-2.0. The model weights are © NVIDIA and M87 Labs (Moondream), CC-BY-4.0.

Metadata

Release files for voxrt 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for voxrt 0.2.1
File Interpreter ABI Platform
voxrt-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
voxrt-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.9 abi3 macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64 Details

Total release size: 4.3 MB

Release files / voxrt-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL voxrt-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
42bfb12da194402213ab5a3c8cdfdad466be321bb7afae627f7040de7b21c4d4
BLAKE2b-256 checksum
How to use checksums
9af6dd653777b11f61ec6ed06bc2781f10a0f694c07bece92f8220954b169eb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / voxrt-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL voxrt-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.6 MB
Tags CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
98cf126abeb1778a912bc6945ebd6b5eeb5334485368c598cb1c4b2edc59d662
BLAKE2b-256 checksum
How to use checksums
3ae2ae563dcaecfc2782152f1ccbc15cdf460dd7632ba584f5ae0fe4649666b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Security for voxrt 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for voxrt-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page