Repository navigation
Releases: ml-rust/voxr
Releases · ml-rust/voxr
Release list
voxr 0.7.0
Changed
Dependencies
- voxr and voxr-narrate require boostr 0.9 and numr 0.13. voxr's public fields name boostr model types, such as
WhisperBundle::model, and its engines take numr runtime types. - voxr-narrate requires voxr 0.7.
Full diff: v0.6.0...v0.7.0
voxr 0.6.0
Changed
Dependencies
- voxr and voxr-narrate require boostr 0.8. voxr's public fields name boostr model types, such as
WhisperBundle::model, and voxr-narrate's adapters name boostr types. - voxr requires splintr 0.22.
WhisperBundle::tokenizeris a splintrAnyTokenizer. - voxr-narrate requires voxr 0.6.
Full diff: v0.5.0...v0.6.0
voxr 0.5.0
Changed
Dependencies
- voxr and voxr-narrate require boostr 0.7 and numr 0.12. voxr's engines and scorers take numr runtime types, and voxr-narrate's adapters name boostr and numr types. A caller that hands voxr a tensor or runtime uses these versions.
- voxr-narrate requires voxr 0.5.
Full diff: v0.4.0...v0.5.0
voxr 0.4.0
Added
voxr
KokoroEngine::from_dir_onandVitsEngine::from_dir_onload an engine onto any numr runtime's device, such as CUDA.load_vits_from_dir_onbuilds the VITSTtsBundleon any runtime's device.KokoroEngine::synthesize_seededandKokoroEngine::with_seedseed Kokoro's harmonic source. The same text, voice, speed and seed give the same samples on one device. CPU and GPU run separate PRNGs, so one seed gives different samples on each.
voxr-narrate
KokoroSpeechpasses the take's seed to Kokoro. A re-roll at a new seed now gives a new Kokoro take.
Changed
voxr
KokoroEngine<R>andVitsEngine<R>are generic over the runtime, withCpuRuntimeas the default.from_dirstill loads on the CPU, so existing call sites compile unchanged.KokoroEngine'smodel,clientanddevicefields takeR's types.KokoroEngineholds a private seed field, so a struct literal no longer builds one. Usefrom_dirorfrom_dir_on.TtsEngineholds for both engines on every runtime whose client covers the model's ops.- A seeded VITS take reproduces on one device only. CPU and GPU draw different noise from one seed.
voxr-narrate
KokoroSpeech<'a, R>andVitsSpeech<'a, R>are generic over the runtime, withCpuRuntimeas the default.- The
kokoroandvitsfeatures enable thenumrandboostrdependencies, whose types the adapters' bounds name. KokoroSpeechrefuses a seed that is not a whole number from 0 to 2^53 - 1, asVitsSpeechdoes.
Dependencies
- voxr and voxr-narrate require boostr 0.6 and numr 0.11. boostr 0.6 runs Kokoro on any runtime, and numr 0.11 makes the inverse STFT give the same samples on every GPU run. The
Tensorand runtime types voxr passes through come from these versions, so a caller that hands voxr a tensor must use the same ones.
Full diff: v0.3.0...v0.4.0
voxr 0.3.0
Added
voxr-narrate
AnchorStep::ShortOpening: a voice designed from an opening of fewer thanOPENING_WORDSwords says that its reference is short.Doubtfulanddoubtful_parts: the parts a speech check marksok ?, counted by kind (doubtful word, stray pause, pitch peak, click).
Changed
voxr-narrate
verdict_linestakes theDoubtfulcount beside the problems. The summary names the parts markedok ?, with their part numbers and kinds. The exit code stays 0.AnchorStephas a new variant, so amatchover it needs an arm forShortOpening.- A VoxCPM2 stray pause advises
--rerollfor its part. Each stray pause addsBAD_STRAY_PAUSEto a take's badness, so retries and re-rolls keep the take with fewer.
Full diff: v0.2.0...v0.3.0
voxr 0.2.0
Changed
- Dependencies — voxr and voxr-narrate require boostr 0.5 and numr 0.10. The
Tensorand runtime types they pass through come from these versions, so a caller that hands voxr a tensor must use the same ones.
Full diff: v0.1.1...v0.2.0
voxr 0.1.1
Fixed
voxr-narrate
- Compiling the narration patterns no longer overflows a 1 MiB stack, the size of a Windows main thread. A debug build crashed on the first script it read.
Full diff: v0.1.0...v0.1.1
voxr 0.1.0
First release of voxr and voxr-narrate.
Added
voxr
- RIFF/WAVE read and write, including stream headers of unknown length.
- Compressed-audio decode behind
decode: 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. - Resamplers: a general polyphase resampler, and resamplers that match ffmpeg's default output, SciPy's
resample_polyand librosa's default output. - A WSOLA tempo engine that matches ffmpeg's
atempooutput. - The reference-take enhancement chain: denoise, filters, loudness normalization and a limiter.
- Pitch tracking, take quality, spectral distance, and word and character error rates.
- Single-sound metrics and the sound review of the motion-video skill, with CLAP ranking behind
clap. - English G2P: the misaki lexicon pipeline behind
misaki, the spaCyen_core_web_smtokenizer behindspacy-tokenizer, its tagger behindspacy-tagger, and a neural out-of-vocabulary fallback. TtsEngine,TtsBundleandVoicebehindtts.- Kokoro synthesis behind
kokoro, loaded from a model directory. - VITS (MMS-TTS) synthesis behind
vits, with uroman romanization foris_uromancheckpoints. - VoxCPM2 voice cloning behind
voxcpm: reusable reference voices, continuation prompts, per-request guidance and steps, bad-take retry and batched requests. - Whisper transcription with word timings behind
whisper. - Silero VAD segmentation behind
vad. - Speech-corpus preparation behind
corpus. - The TTS quality gate: signal statistics, pace, intelligibility and timbre.
voxr-narrate
- Narration script, timed script and subtitle parsing, tags, and numbers read back from words and digits.
- The speech check of a take against its script, and glitch detection and repair.
- The voice polish chain, and reference-voice preparation for cloning.
- The take loop: cache keys, seeds, take records, the pick of each part's best take, speaking pace and its verdict, anchor voices, timed placement and joins.
- A whole VoxCPM2 run from script to voiceover, and a per-phrase run for every other engine.
- Engine adapters for Kokoro, VITS and VoxCPM2, and Whisper as the hearing, behind features.
- Time-stretch of the spoken track to a pace behind
stretch. - The speak and transcribe commands of the motion-video skill: argument parsing, every printed line, file and exit code, and the video manifest's narration.