Inflect Nano v3 Preview
Experimental preview, not production-ready. Six fixed English voices, 24 kHz mono audio, approximately 3.930M inference parameters and 15.76 MB float32 speech weights. Frontend/runtime/dependency sizes are additional. This is the preserved 125,000-update checkpoint, not a newly trained final release.
Inflect v3 Preview collection contains the Micro, Nano, and Mini previews. Atom is not part of this release.
Join The Inflect Discord
Join the Inflect community on Discord to follow development, hear about future releases, share listening feedback, and discuss integrations. If you want to help shape what comes next, this is the place to join.
Found a clipped word, strange pitch, or a pronunciation failure? Share the exact text, model, voice, seed/settings and a short generated clip. Those concrete examples are more useful than an aggregate score. Please do not post API keys or private recordings.
Listen First
Six different examples cover conversational turns, narration and practical messages. The same texts are used across Micro, Nano and Mini so you can compare them. These are illustrative preview demos, not benchmark or human-MOS results. The delivery is generated by the unchanged preview: pitch/timing, word-boundary and synthetic-timbre problems can still be audible.
Each example is a single predetermined render at the native settings, not the
best of a seed sweep. Complete audio is kept without cleanup, trimming, gain
adjustment or repair. The labels describe the text, not trained emotion/style
controls. Settings, all attempts and hashes are in demos/manifest.json.
Hope / Conversation: clarification
Wait, did you mean tomorrow morning? I thought we were meeting tonight. Let me check the message again.
Full WAV | 6.2 seconds
Cassidy / Short narration
The rain had finally stopped. She opened the window, took a deep breath, and listened to the city waking up.
Full WAV | 6.3 seconds
Mark / Application message
The update is ready to install. Save your work first, then restart the application when you have a moment.
Full WAV | 6.2 seconds
Listen to James, Jasper and Sophia
James / Conversational reassurance
I know that was frustrating. We can take this one step at a time, and I'll help you work through it.
Full WAV | 6.4 seconds
Jasper / Everyday instructions
The train leaves in fifteen minutes. If we take the next bus, we should still reach the station on time.
Full WAV | 6.2 seconds
Sophia / Longer sentence and pauses
Before you send it, check the name, the address, and the final paragraph. A small correction now could save some trouble later.
Full WAV | 8.2 seconds
Preview Status: Please Read
This is a quiet research preview, not the finished Inflect v3 release. No promotional launch is planned for this preview. If you found it through the profile or collection, you are welcome to try it and report failures, but it is not recommended for production, safety-critical tasks, or major deployments. The checkpoint is being preserved as-is while a stronger successor is explored; there is no promise of a successor's quality, release date, or API compatibility.
Known issues include unstable pitch/prosody, occasional clipped or weak word boundaries, pronunciation errors, synthetic/buzzy timbre, and inconsistent quality across voices. Low ASR WER or high predicted MOS does not prove these issues are absent. Some spoken words remain recognizable to ASR despite sounding poor to a person. Listen to the audio rather than judging from a score alone.
English only; six fixed voices. No voice cloning, reference audio, guaranteed
streaming, emotion control, or paralinguistic tags are provided. Tags such as
[laugh] are not supported and may be normalized or spoken incorrectly.
Usage
Use Python 3.11 or newer; packaging and demo checks used Python 3.12. Install PyTorch appropriate for your CPU
or CUDA device, then install requirements.txt in a virtual environment. The
package has a native Python/PyTorch runtime; it is not an ONNX/WebGPU release.
pip install -r requirements.txt
python inference.py --text "Please leave the side entrance unlocked until the delivery arrives." --voice hope --output hope.wav
The CLI defaults to CPU. For a supported CUDA installation use --device cuda.
Voice names: mark, cassidy, james, jasper, hope, sophia (IDs 0..5).
--seed 0, --variation 0.667, and --speed 1 are the defaults.
from inference import InflectTTS
tts = InflectTTS(device="cpu")
tts.save("Could you leave a message after the tone?", "message.wav", voice="cassidy", seed=0)
Run from the downloaded repository, or put it on your Python import path.
For downloading, use huggingface_hub.snapshot_download as shown below. This is
not a Transformers pipeline and does not require trust_remote_code=True.
Prefer one short sentence per call. The wrapper rejects over 512 blank-interleaved phoneme tokens or predicted durations above 2,400 frames (25.6 seconds at speed 1); it never silently crops a long waveform. Split long passages yourself. It adds no normalization gain, EQ, denoising, or edge fades. Output is mono 24 kHz FLOAT WAV. Such safety checks do not fix learned missing syllables, pitch instability, or word-boundary defects.
variation controls latent sampling, not background hiss or an emotion tag.
The duration predictor is deterministic (use_sdp=false), so the retained
native API's noise_scale_w=0.8 is inactive. Lower variation is not guaranteed
to improve speech. No settings sweep was used to select the public defaults.
Architecture And Provenance
Compact multi-speaker VITS-derived synthesis: phoneme encoder, deterministic
duration predictor, normalizing flow, speaker embedding, and integrated
waveform generator. Native Inflect English text normalization feeds stress-
marked eSpeak en-us phonemes, preserving punctuation. No Kokoro, Fish Audio,
or other paid API is called at inference time.
The training lineage uses the project's six-voice synthetic speech corpus, including Fish Audio-generated speech. The maintainer reports permission for the training and release use. This repository publishes model weights and inference assets, not the underlying paid-source dataset or a complete training reproduction. Do not infer exact effective training hours from the corpus's total inventory: sampling, filtering, and support differed across experiments.
Float32 weights are exported losslessly to model.safetensors. Optimizer,
discriminator, and training-only posterior encoder (enc_q) are omitted. No
quantization or new training was performed for publication; weight normalization
is retained. manifest.json records the original checkpoint/config hashes and
runtime file hashes. PACKAGING_QA.json documents exact native CPU waveform
parity for all six voices; this is a packaging test, not a human-quality study.
Evaluation Caveats
Both UTMOS versions are learned quality proxies, not listening-test MOS. ASR-based WER depends on recognizer and text normalization. Different panels, voices, scorer versions, and inference settings must not be combined into one leaderboard. Zero sample-amplitude clipping does not mean zero clipped words. Fresh authored prompts do not establish absence from all upstream training corpora. There is no quantified public human-preference result or matched hardware-speed ranking for this preview.
License And Attribution
Original Inflect work and released weights: Apache-2.0 (LICENSE). Bundled
VITS-derived portions retain MIT notices; Tacotron-derived text portions retain
Keith Ito's MIT notice. See THIRD_PARTY_NOTICES.md and runtime/ licenses.
External packages, including phonemizer/eSpeak and their transitive dependencies,
retain their own licenses; the root Apache license does not relicense them.
Use the voices responsibly and do not misrepresent synthetic speech as a real
person's recording or endorsement.
Download The Repository
from huggingface_hub import snapshot_download
folder = snapshot_download("owensong/Inflect-Nano-v3-Preview")
print(folder) # run inference.py from this directory
Original six-voice packaging checks (same sentence)
Original Packaging Samples
All six samples use the same sentence, chosen before rendering:
"Please leave the side entrance unlocked until the delivery arrives."
These are packaging checks, not cherry-picked showcase clips. Seeds and native
parity results are in PACKAGING_QA.json.
Mark
Cassidy
James
Jasper
Hope
Sophia
Benchmark: Development Matched96 Panel (2026-09-23)
The selected 125k checkpoint was evaluated on 96 prompts: 16 for each of the six voices, 1,555 reference words. This development panel was reused to compare checkpoints and helped select 125k; it is not an independent untouched final test. No new competitor ranking is claimed from it.
| Metric | This Nano 125k |
|---|---|
| UTMOSv2 fusion_stage3, higher better | 3.351 |
| Whisper base.en WER, lower better | 1.16% (18/1,555 words) |
| UTMOS22 on this panel | Not measured / not available |
| Sample-amplitude clipping fraction | 0.0 |
Whisper base.en, beam 5, temperature 0, English. This historical panel's ASR
and MOS protocol differs from Micro's fresh matched48 screen, so do not rank
the previews by comparing these numbers directly. Its UTMOSv2 report contains
one prediction per file; no three-repeat or human-MOS claim is made here.
The checkpoint was selected for highest panel UTMOSv2 while retaining the same
WER as 100k; the later 150k checkpoint and weight blends are not this release.
Raw audio, render settings, per-voice ASR and per-clip scores are included in
benchmarks/. The historical summary marked release readiness false; the
publication here changes distribution status to preview, not the evaluation
conclusion.
Separate Follow-Up96 Panel (2026-09-24)
This same original 125k checkpoint also has a separate 96-prompt six-voice follow-up using previously frozen strong-polish prompts with no text overlap with the selection96 panel. It was scored after the blend-ratio selection; it is independent of that ratio choice, not proven unseen to all upstream training. Longer/different texts and scoring repetitions change its results.
| Metric | Original 125k (holdout125), follow-up96 |
|---|---|
| UTMOS22 strong | 4.194 |
| UTMOSv2 fusion_stage3, 3 repeats | 3.276 |
| Whisper base.en WER | 2.67% (66/2,471 words) |
See benchmarks/independent96/ for raw original-checkpoint audio, render
settings and all scores. Comparison scorefiles also retain the experimental
blend arms for transparency; those blends are not the published weights.
These are raw original levels, not the candidate's level-matched scores. Neither
panel justifies a production-ready, all-competitor, or human-preference claim.
Help Improve The Next Release
Join the Inflect Discord for development updates and to share reproducible failures, comparisons and integration feedback. This remains a research preview, not a production endorsement. Thank you for testing it honestly.
- Downloads last month
- -