WAV and compressed-audio decode, DSP, G2P, and TTS, ASR, and VAD pipelines. Model weights load at run time from a directory, and no weights are compiled in.
voxr is a Cargo workspace for audio and speech on top of boostr models and numr tensors. The voxr crate holds the sample-level side: files, codecs, DSP, G2P, voices, and the TTS, ASR, and VAD pipelines. The model networks and their kernels live in boostr. The voxr-narrate crate turns a narration script into a checked voiceover.
| Crate | What it holds | Features |
|---|---|---|
voxr |
WAV and compressed-audio decode, resamplers, tempo stretch, loudness and enhancement, single-sound metrics, misaki and spaCy G2P, voices, and the Kokoro, VITS, VoxCPM2, Whisper, Silero VAD, CLAP and NeuCodec pipelines | voxr |
voxr-narrate |
Script parsing, the speech check of a take against its script, glitch repair, voice polish, the take loop, engine adapters, and the speak and transcribe commands | voxr-narrate |
voxr-narrate implements the speak and transcribe contract of the motion-video skill. voxr implements its sound review.
Add the crate. Choose the features you need from the lists below.
cargo add voxr --features decodeTranscribe a take with Whisper. Download a Whisper checkpoint in Hugging Face layout first, such as openai/whisper-base. Its generation_config.json must list alignment_heads. voxr does not download it.
cargo run --release -p voxr-narrate --features whisper --example transcribe_take -- \
--model WHISPER_DIR AUDIO.wavThe example writes one words file per input. Add --out DIR to choose the output directory, and --language xx to set the language.
Every feature is off by default. A build with no features still has WAV, the resamplers, tempo stretch, enhancement, and metrics. It also has the sound review, pitch, ASR error rates, and the signal half of the TTS quality gate.
| Feature | Adds |
|---|---|
decode |
WAV, FLAC, MP3, AAC-LC and ALAC in MP4/M4A/MOV, and Opus and Vorbis in Ogg/WebM/MKV, with ffmpeg-matched trims and downmix. Multichannel AAC, HE-AAC and Opus past two channels are refused |
spacy-tokenizer |
The spaCy en_core_web_sm 3.8.0 tokenizer, with its patterns and tables embedded |
spacy-tagger |
The en_core_web_sm tagger. Implies spacy-tokenizer |
misaki |
misaki English G2P with the US and GB lexicons embedded. Implies spacy-tagger and f16 |
tts |
TtsEngine, TtsBundle and Voice, the engine-agnostic synthesis surface |
kokoro |
Kokoro synthesis. Implies tts and misaki |
vits |
VITS (MMS-TTS) synthesis, with uroman romanization. Implies tts |
voxcpm |
VoxCPM2 voice cloning. Implies tts and decode |
whisper |
Whisper transcription with word timings. Implies decode |
vad |
Silero VAD segmentation |
clap |
CLAP audio-text scoring, which ranks sounds in the sound review |
neucodec |
The NeuCodec model gate |
corpus |
Speech-corpus preparation. Implies whisper, vad, neucodec and decode |
f16 |
Half-precision tensors |
cuda |
The CUDA backend |
| Feature | Adds |
|---|---|
whisper |
Whisper word timings, WhisperHearing, and NarrationRuns over loaded engines. Implies voxr/whisper |
stretch |
stretch_track and resample_48k over voxr's ffmpeg-matched atempo and resampler |
kokoro |
KokoroSpeech, Kokoro as a speech engine. Implies voxr/kokoro |
vits |
VitsSpeech, VITS as a speech engine. Implies voxr/vits |
voxcpm |
VoxcpmSpeech, VoxCPM2 as a speech engine. Implies voxr/voxcpm |
cuda |
The CUDA runtime for Whisper, Kokoro, VITS and VoxCPM2 |
No model weights are compiled in or shipped. Every engine loads its checkpoint at run time from a model directory. voxr fetches nothing over the network. Download a checkpoint, for example from Hugging Face, into a directory first.
The spaCy tagger and the out-of-vocabulary G2P model for Kokoro are in the Hugging Face repo fs90/kokoro-g2p. Place them under a Kokoro model directory as g2p/tagger/ and g2p/oov/.
The embedded data is text-processing data only. It holds the misaki lexicons behind misaki and the spaCy tokenizer tables behind spacy-tokenizer.
The cuda feature builds numr's CUDA kernels. It needs CUDA 12.8 or newer. CUDA 13.x also works.
NUMR_CUDA_ARCH selects the GPU architectures the build compiles native code for. Unset, the build targets the GPUs on the build host. Set NUMR_CUDA_ARCH=all for any binary that runs on another machine. numr's README lists every value.
1.95.
Contributions are welcome. See CONTRIBUTING.md for conventions and checks.
Questions and design discussion happen on Discord.
Licensed under Apache-2.0. See LICENSE.
Code ported from other projects and data voxr redistributes are listed with their licences in crates/voxr/LICENSE-OTHERS and crates/voxr-narrate/LICENSE-OTHERS. Each embedded data set carries its own LICENSE and NOTICE beside it under crates/voxr/assets/.