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
-
Safetensors
Model size
3.93M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including owensong/Inflect-Nano-v3-Preview