voxrun
High-performance speech-to-text inference library derived from faster-whisper.
voxrun preserves the existing faster-whisper inference API while packaging the Python implementation as Nuitka-compiled, CPython-specific binary wheels. Nuitka compilation increases reverse-engineering cost; it is not cryptographic encryption and does not make the implementation impossible to reverse engineer.
Installation
voxrun Phase 1 supports Linux x86_64 on glibc 2.28 or newer and CPython 3.10. The wheel is built for that specific CPython ABI.
uv add voxrun
The conventional pip installer is also supported:
python -m pip install voxrun
Do not install the upstream ctranslate2 distribution together with
voxrun-ctranslate2; both provide the ctranslate2 import and their package
files conflict.
Usage
from voxrun import WhisperModel
model = WhisperModel(
"large-v3",
device="cuda",
compute_type="float16",
)
segments, info = model.transcribe("audio.mp3")
for segment in segments:
print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
segments is a generator. Consume it to run the transcription to completion:
segments, _ = model.transcribe("audio.mp3")
segments = list(segments)
The existing public APIs remain available, including WhisperModel,
BatchedInferencePipeline, decode_audio, Segment, Word,
TranscriptionInfo, WhisperModel.transcribe(),
BatchedInferencePipeline.transcribe(), download_model, available_models(),
and format_timestamp().
Batched transcription
from voxrun import BatchedInferencePipeline, WhisperModel
model = WhisperModel("turbo", device="cuda", compute_type="float16")
batched_model = BatchedInferencePipeline(model=model)
segments, info = batched_model.transcribe("audio.mp3", batch_size=16)
Contextual biasing
Decoder-level contextual phrases require
voxrun-ctranslate2==4.8.1.post1, which exposes ctranslate2.ContextGraph.
Calls without context_phrases preserve the graph-free path.
segments, info = model.transcribe(
"audio.mp3",
context_phrases=["NVIDIA", "H200", ("BRM9206", 5.0)],
context_score=3.0,
)
See Contextual biasing for scoring, tokenizer boundaries, graph lifetime, and validation details.
VAD filter
PyAV handles audio decoding, so a separate system FFmpeg installation is not required.
segments, _ = model.transcribe(
"audio.mp3",
vad_filter=True,
vad_parameters={"min_silence_duration_ms": 500},
)
The packaged Silero VAD ONNX model is loaded from voxrun/assets.
Logging
import logging
logging.basicConfig()
logging.getLogger("voxrun").setLevel(logging.DEBUG)
Migration from faster-whisper
The namespace is intentionally breaking; no faster_whisper compatibility
alias is installed.
# Before
from faster_whisper import WhisperModel
# After
from voxrun import WhisperModel
Model repository IDs such as Systran/faster-whisper-large-v3 are external
runtime identifiers and remain unchanged.
Development
The project uses uv as its package and environment manager.
uv sync
uv run pytest
Build and audit the local binary wheel:
uv build --wheel
VERSION="$(uv version --short)"
python scripts/verify_wheel.py --expected-version "$VERSION" dist/*.whl
Nuitka build intermediates and the final wheel are excluded from the public release by the wheel verifier.
Attribution and license
voxrun was originally derived from SYSTRAN/faster-whisper and retains the applicable MIT license notices. See LICENSE.
The ContextGraph design also references the applicable CTranslate2 license and documentation.
Release files for voxrun 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voxrun-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Release files / voxrun-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | voxrun-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b6ec023dc7ff7fd6966f8db41e9557940753f7e69f635b32ea8492622d044d24
|
|
BLAKE2b-256 checksum How to use checksums |
5d0a92f7bb1d348fde72316d789c4ee69f4f15605a2ec043de23a14e26b870e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|