Inflect Mini v3
A complete voice. A smaller footprint.
Six English voices. Local generation. More ways to make speech your own.
34.31M core parameters · 6 voices · Apache 2.0
Native 24 kHz · Optional 48 kHz enhancement · CPU and CUDA
Inflect Mini v3 brings English text-to-speech to a compact, locally runnable model. Choose a preset voice, add a non-speech event, or build a reusable voice profile from a reference recording. Start with native 24 kHz speech; switch on the compact 48 kHz enhancer when you prefer its sound.
Open weights, runnable inference, no hosted API required for preset speech. Downloads and dependency setup happen first; generation then stays on your machine.
Run Mini locally: this model repository is the complete v3 inference package, not just weights. Download and first generation | Choose a model and find the right files. The GitHub
inflect/folder is the older v1/v2 library, not the v3 runtime.
Listen
Hear the voice. Read the words. These are native 24 kHz Mini generations, without enhancement or reference adaptation.
Try your own text in the playground, or start with the six samples below.
CONVERSATION
Cassidy
Could you bring the smaller suitcase downstairs?
NARRATION
Mark
Beyond the orchard, a narrow footpath curved toward the ruined tower.
INSTRUCTIONS
Hope
Press the side button once, then wait until the indicator turns green.
EXPLANATION
James
A shadow becomes longer when the light source moves closer to the horizon.
EVERYDAY SPEECH
Sophia
We moved the chairs inside and wiped the wooden table dry.
DIALOGUE
Jasper
I thought you were arriving tomorrow, but it is lovely to see you.
Each voice reads a different passage. This is a voice showcase, not a controlled voice-ranking test. Exact inputs and audio identities.
More than plain text
| Feature | What it adds | Availability |
|---|---|---|
| Six preset voices | Text-to-waveform speech without a reference recording | All six voices, CPU or CUDA |
| Event tags | Eight vocal events between speech segments | All six voices, CPU, 24 kHz |
| Voice Tuner | Reference-based adaptation saved as a reusable voice profile | Optional enrollment; supported setup is Linux CPU |
| 48 kHz enhancement | A compact output enhancer for a different high-frequency presentation | All six preset voices; optional |
| Long-text handling | Text is segmented into manageable speech chunks | Preset speech |
Event tags: a little more character
Use [laugh], [sigh], [gasp], [cough], [yawn], [inhale], [exhale] and [clear_throat] with any of the six voices. [throat_clear] is also accepted:
You really surprised me. [laugh] That was a good one.
python -m pip install -r extras/events/component/requirements-cpu.txt
python run.py events --voice cassidy --profile base --text "You really surprised me. [laugh] That was a good one." --output ../mini-laugh.wav
The event component combines generated speech with voice-specific learned non-speech performances and calibrated levels. Where multiple takes exist, the seed selects a take; the original four Cassidy events remain fixed. Events run on CPU at native 24 kHz, without the speech enhancer. They do not apply emotion to surrounding speech. Refresh the complete package if you downloaded an older four-tag release.
Hear the events in context. These are actual local Mini generations, native 24 kHz with no enhancer. The exact tagged input is shown for each sample.
Cassidy / laugh
You really surprised me. [laugh] That was a good one.
Hope / yawn
Just a moment. [yawn] Let us start again.
Mark / gasp
Wait a second. [gasp] Did you see that?
Exact inputs, seed and audio provenance. These illustrate the event feature, not emotion conditioning or a quality benchmark.
Voice Tuner: make a profile your own
Start with an authorized 5-15 second reference recording and enroll a voice profile. Reuse that profile for later speech generation without supplying the reference audio again.
Voice Tuner adapts Mini's voice conditioning. Resemblance varies with the recording and speaker; this is reference-based adaptation, not a promise of exact voice cloning or accent transfer. Use only voices and recordings you have permission to use.
Set up Voice Tuner and enroll a reference
Use a Python 3.12 environment. The supported enrollment configuration is Linux CPU:
python -m pip install uv
python -m uv pip install --python python --find-links core/baseline/vendor -c extras/tuner/constraints-cpu.txt -r extras/tuner/requirements-tuner-enrollment-cpu-20261110.txt
python tuner.py enroll --reference ../my-reference.wav --profile ../my-voice.json --work-dir ../tuner-work --device cpu --consent-confirmed --download-public-assets --accept-third-party-licenses
python tuner.py say --profile ../my-voice.json --work-dir ../tuner-work --device cpu --text "A new chapter starts here." --output ../my-voice.wav
Choose new output/profile paths outside the downloaded package, with existing parent directories. Keep the profile JSON, companion .pt file and work directory for reuse. Enrollment encoders are separate downloads with their own licenses; they are not included in the 34.31M core count.
Native 24 kHz, or compact 48 kHz
Native 24 kHz is the default. The optional 2.85M-parameter enhancer produces a 48 kHz WAV while leaving the speech backbone unchanged.
The same Cassidy generation, two output choices
NATIVE 24 kHz
COMPACT 48 kHz
python run.py speech --profile enhanced --voice hope --text "The next chapter starts here." --subtype PCM_16 --output ../mini-48k.wav
Choose by ear. Native can be preferable on revealing headphones; compact enhancement can sound brighter on some speakers, but may expose a faint buzzy texture on some material. Neither is universally better, and a higher sample rate is not itself a quality score.
Run it locally
Use Python 3.12 in a fresh environment outside the downloaded package. Download the complete repository, not only its weights.
Create an environment: Windows or Linux
Windows PowerShell:
py -3.12 -m venv inflect-env
.\inflect-env\Scripts\Activate.ps1
Linux:
python3.12 -m venv inflect-env
source inflect-env/bin/activate
python -m pip install huggingface-hub==0.36.2
hf download owensong/Inflect-Mini-v3 --local-dir inflect-mini-v3
cd inflect-mini-v3
python verify_release.py
python -m pip install -r core/requirements-cpu.txt
python run.py speech --voice cassidy --text "A small idea can become something worth hearing." --subtype PCM_16 --output ../mini-cassidy.wav
This writes native 24 kHz PCM16 speech. Voice IDs are cassidy, mark, hope, james, sophia and jasper. Choose a new WAV filename in an existing directory outside the package; the launcher verifies the downloaded inventory before running.
Use CUDA and the optimized Mini runtime
Use a separate fresh Python 3.12 environment with compatible NVIDIA drivers and the CUDA dependency recipe, rather than mixing CPU and CUDA installs:
python -m pip install -r core/requirements-cuda.txt
python run.py speech --device cuda --runtime cuda-source --voice cassidy --text "A small idea can become something worth hearing." --subtype PCM_16 --output ../mini-cuda.wav
The optimized CUDA path uses the same core weights. It is not the CPU runtime. Warm-up and first-use preparation affect latency; see the speed measurements below.
Language adaptation toolkit
Want to adapt Mini to your own language? The GitHub repository now includes a Mini v3 adaptation toolkit and a step-by-step guide. The guide covers pronunciation coverage, preparing licensed recordings and external phone alignments, training, checkpoint resume, export, and evaluation.
The toolkit has passed real CUDA training/resume/export and raw-text inference checks, plus its automated regression suite. These are pipeline checks, not a claim of qualified Polish or multilingual speech. Start with a representative pilot and fluent-listener review; the published Mini weights remain English-only. The toolkit is a compatible adaptation implementation, not the private original training recipe or dataset.
Benchmarks
Listen first. Measure separately. Speech accuracy, predicted audio quality and speed are different properties. The tables below keep their test sets and measurement methods separate.
Published Mini: native speech
| Measure | Result | Coverage |
|---|---|---|
| Average WER | 0.739% | 1,688 texts per voice, all six voices: 10,128 clips |
| UTMOSv2 | 3.917 | 180 clips, 30 per voice |
| UTMOS22Strong | 4.479 | The same 180-clip panel |
These are the published native 24 kHz base-speech results, without enhancement, reference adaptation or event sounds. UTMOS predictors are not human MOS, and UTMOS22 and UTMOSv2 scores are not interchangeable.
Per-voice WER and exact scoring scope
| Voice | Average WER |
|---|---|
| Cassidy | 0.735% |
| Hope | 0.740% |
| Sophia | 0.728% |
| James | 0.741% |
| Jasper | 0.729% |
| Mark | 0.762% |
Each voice covers all 500 CV3 English texts, 1,088 Seed-TTS English texts and 100 MiniMax English texts in the pinned corpus. Average WER gives each dataset equal weight, then each voice equal weight. Separately pooled WER is 0.875% over 127,308 normalized reference words.
This is a self-run evaluation, using Qwen3-ASR-1.7B and pinned official Open TTS normalization/alignment code, not an official leaderboard submission. The corpus has been used during development; it is not a newly sealed held-out test. Batching, software and hardware can differ from the hosted leaderboard.
Other models: Open TTS Leaderboard context
Official leaderboard snapshot: 10 November 2026, English, without voice cloning, equal average across Seed-TTS, CV3-Eval and MiniMax.
| Model | Average WER % ↓ | UTMOS22 ↑ |
|---|---|---|
| Ming-3.0-tts-0.5B | 0.657 | 4.28 |
| Kokoro-82M | 0.690 | 4.51 |
| Paradee-8M-v1.3 | 0.693 | 4.38 |
| phonon-31m-en | 0.730 | 4.45 |
| supertonic-3 | 0.743 | 4.45 |
Context, not a matched ranking against Inflect. These are hosted leaderboard evaluations. Mini's WER is self-run across six presets, and its quality scores use a different 180-clip panel. The hosted leaderboard reports UTMOS22, not UTMOSv2. Rounded dataset cells also limit precision.
Live leaderboard · Metric definitions · Aggregation implementation
UTMOSv2: historical matched comparison
An earlier 23 October development panel used the same 96 ordinary texts and two voice slots per model: 192 clips each. It provides a matched UTMOSv2 comparison, but describes earlier checkpoints and runtimes, not today's published six-voice Mini panel.
| Historical model / runtime | UTMOSv2 ↑ |
|---|---|
| Inflect Mini, earlier checkpoint | 3.978 |
| Kokoro | 3.883 |
| phonon-31m | 3.782 |
| Inflect Micro, earlier checkpoint | 3.725 |
| Piper | 3.630 |
| Kitten | 2.099 |
Do not substitute the earlier Mini score for the current-release score above. This was a development comparison, not a human listening study or an independent leaderboard submission. Panel summary and source identity.
Speed: optimized GPU and native CPU
| Current Mini configuration | Warm RTFx ↑ | Warm RTF ↓ |
|---|---|---|
| RTX 5090, optimized CUDA runtime | 162.1x | 0.00617 |
| Ryzen 9 3900X, canonical CPU, 2 Torch threads | 1.81x | 0.5519 |
The optimized CUDA path uses the original synthesis-core weights. This small current-package probe contains 12 timed renders, two prompts across six voices, after two excluded warm-ups. Each system generated 98.425 seconds of native audio. Warm time includes text normalization, G2P, synthesis and in-memory PCM16 WAV serialization, and excludes loading and disk writes. Reused text caches can contribute.
Different systems, software and runtime paths were used: this is not a controlled CPU-versus-GPU speedup claim, a streaming/first-audio measurement or a latency guarantee.
Current speed protocol and earlier same-hardware Kokoro comparison
Current GPU probe: RTX 5090 / Ryzen 7 7800X3D / Linux, Python 3.12.15, Torch 2.10.0+cu128, cuda-source, 0.607 seconds total warm generation. Current CPU probe: Ryzen 9 3900X / Windows 11, Python 3.12.11, Torch 2.11.0+cpu, canonical runtime, 54.317 seconds. Both used 2 intra-op / 1 inter-op Torch threads, seed 42, base profile and PCM16. CUDA was synchronized around timed work.
The same core and package hashes were verified. Separate verification/loading costs were 0.38 / 3.23 seconds on GPU and 0.90 / 13.02 seconds on CPU; these are not complete cold process-start measurements.
Earlier matched-text diagnostic, 31 October: AMD EPYC 7K62 with two physical CPU cores/threads and RTX 5090, FP32, 24 texts, two voices and three repeats: 144 calls per model/device. Warm raw text through PCM16; loading/disk writes excluded.
| Historical runtime | CPU RTFx ↑ | RTX 5090 RTFx ↑ |
|---|---|---|
| Kokoro, stock FP32 Torch | 1.837 | 81.626 |
| Mini, earlier canonical runtime | 1.879 | 34.201 |
| Micro, earlier FastMicro24K runtime | 19.589 | 63.247 |
| Atom, earlier Torch-DSP runtime | 9.032 | 162.716 |
The historical Mini row does not use the newer optimized CUDA path. Inflect timings were from earlier runs, not concurrent reruns; voices differ. These are historical runtime measurements, not current-package validation, optimized-Kokoro results or a quality ranking. Do not combine this table with the newer 162.1x probe to claim a controlled competitor speedup.
Mini's core has 34,310,790 parameters, with a 138.4 MB FP32 weight file (132.0 MiB). The enhancer adds 2,846,722 parameters. These are not full download sizes or runtime RAM requirements; frontend assets, dependencies, event components and enrollment encoders are additional.
Three sizes. One family.
| Model | Core parameters | Designed for |
|---|---|---|
| Mini v3 | 34.31M | The feature-rich model: six voices, enhancement, events and Voice Tuner |
| Micro v3 | 11.79M | A smaller neural speech core for compact deployment |
| Atom v3 | 157.19K | An ultra-compact synthesis core |
Explore the Inflect v3 collection. Feature availability differs by model; Mini's optional components are not implied for Micro or Atom.
Release scope and license
Open weights, with runnable inference code. This release includes the model runtime and documented optional components. It does not include the full training pipeline, corpus-generation tools or training data.
Inflect-owned code and weights are released under Apache License 2.0. See LICENSE.md and the component scope. Third-party code, assets, dependencies and separately downloaded encoders retain their own terms; applicable attributions and obligations remain in the third-party notices, core notices and component license maps.
Mini is English-only. Check names, unusual vocabulary, numbers and long passages before production use. Event tags are not emotion/style conditioning; general whisper, angry and excited controls are not included. Reference adaptation does not guarantee speaker identity or a particular accent.
Built by Owen Song
Questions, feedback, integrations, or something you made with Inflect:
Community Discord · Discord: blue.os · owen.aw.song@gmail.com
- Downloads last month
- 86