Inflect-Micro-v2 is designed for local applications where the entire speech stack must fit below **10M parameters**. The count includes text encoding, duration modeling, latent generation, and waveform decoding. It does not hide a separately downloaded vocoder.
## Listen First
All samples below use unseen evaluation text, not training-audio reconstructions.
| Prompt | Male voice |
| --- | --- |
| **Conversational** - It wasn't until later that I realized what had actually happened. | |
| **Punctuation** - First, close the window; second, turn off the lamp; finally, lock the door. | |
| **Numbers** - The package weighs twelve point six kilograms and arrived on July twenty-first. | |
| **Names Places** - Gwendolyn photographed the eucalyptus trees outside Ljubljana. | |
| **Technical** - The system runs on three core components that all have to stay in sync. | |
## Model Facts
| | Inflect-Micro-v2 |
| --- | ---: |
| Deployable inference parameters | **9,356,513** |
| PyTorch checkpoint size | **37.53 MB** |
| Sample rate | **24 kHz** |
| Included voices | **1 male voice** |
| External vocoder | **None** |
| Inference package | **PyTorch** |
## Training Data
The deployable Inflect weights were trained from scratch on a single-speaker synthetic English corpus produced with Qwen3-TTS. Qwen3-TTS is a training-time teacher only and is not downloaded or used for inference. The corpus itself is not included in this repository.
## Evaluation

| System | UTMOS22 higher is better | Whisper-large-v3 semantic WER lower is better |
| --- | ---: | ---: |
| Inflect-Micro-v2 | 4.406 | 1.23% |
| Inflect-Nano-v2 | 4.392 | 1.53% |
| Piper Ryan Low | 4.256 | 1.23% |
| Kitten Nano Bruno | 4.246 | 0.96% |
The selected Inflect-Micro-v2 checkpoint scored **4.406 UTMOS22** and **1.23% semantic WER** on the matched 200-prompt release set. Automated metrics are diagnostics, not substitutes for listening.
Evaluation protocol and raw reports
- All four systems synthesize the same 200 unseen English prompts.
- Semantic WER uses Whisper-large-v3 and the disclosed English text normalizer.
- UTMOS22 uses `tarepan/SpeechMOS` v1.2.0 with 5,000 paired bootstrap samples.
- NISQA dimensions, signal diagnostics, categorized ASR failures, speaker consistency, and multi-seed robustness are under `evaluation/`.
- `evaluation/asr_robustness.json` separates sentence failures, semantic character errors, tail WER, and category-level errors.
- Competitor results apply only to the named checkpoints and voices, not every configuration of those projects.
## Quickstart
```bash
pip install torch numpy scipy soundfile phonemizer espeakng-loader num2words Unidecode huggingface_hub
hf download owensong/Inflect-Micro-v2 --local-dir Inflect-Micro-v2
python Inflect-Micro-v2/inference.py --model-dir Inflect-Micro-v2 --device cpu --text "Small models should still sound alive." --output sample.wav
```
Python:
```python
import sys
from huggingface_hub import snapshot_download
model_dir = snapshot_download("owensong/Inflect-Micro-v2")
sys.path.insert(0, model_dir)
from inference import InflectTTS
tts = InflectTTS(model_dir, device="cpu")
tts.save("The complete model runs locally.", "sample.wav", seed=7)
```
Long text is split at punctuation-aware boundaries by the packaged runtime. `speed` ranges from `0.5` to `2.0`; `variation` ranges from `0.0` to `1.0`.
## Architecture
Inflect v2 is a size-specific compact VITS-derived system:
- English normalization and stress-marked eSpeak phonemes with punctuation retained
- compact Transformer text encoder and deterministic duration predictor
- monotonic alignment, posterior encoder, and residual coupling flow during training
- integrated adversarial waveform decoder
- multi-resolution STFT, adversarial, feature, mel, duration, and KL supervision
| Component setting | Value |
| --- | ---: |
| Latent channels | 192 |
| Text hidden channels | 96 |
| Text encoder layers / heads | 3 / 2 |
| Feed-forward channels | 768 |
| Posterior encoder layers | 3 |
| Initial decoder channels | 320 |
| Upsample rates | 8, 8, 2, 2 |
| Training segment | 16,384 samples |
The downloadable checkpoint is inference-only. Training discriminators and optimizer state are excluded from both the package and deployable parameter count.
## Runtime
End-to-end warm inference, including the text frontend:
| Device | RTF lower is better | Audio / wall time | p95 utterance latency | Load time |
| --- | ---: | ---: | ---: | ---: |
| CPU | 0.6969 | 1.4x | 4.398 s | 1.29 s |
| CUDA | 0.0168 | 59.5x | 0.086 s | 1.36 s |
Runtime depends strongly on CPU, PyTorch build, thread settings, and text length. Reproduce it from the JSON reports under `evaluation/runtime/`.
## Limitations
- English only, with one fixed male voice; this release does not support voice cloning.
- Unfamiliar phrasing can become flatter or less expressive.
- Numbers and uncommon names are the weakest intelligibility categories in the release evaluation; verify critical verbalizations.
- Homograph pronunciation depends on context available to the frontend.
- Long passages are synthesized in chunks rather than as one unbounded sequence.
- This model is not validated for medical, legal, emergency, or accessibility-critical use.
- Synthetic training speech can transfer teacher cadence and biases.
## Integrity and License
`release_manifest.json` records the source checkpoint, deployable parameter count, byte sizes, and SHA-256 hashes. Original Inflect work is licensed under Apache-2.0; bundled third-party portions retain the notices in `THIRD_PARTY_NOTICES.md`. Do not use the included voice to impersonate a real person or deceive listeners.
## Citation
```bibtex
@software{song2026inflectmicrov2,
author = {Owen Song},
title = {Inflect-Micro-v2: Complete Local Text-to-Waveform TTS Under 10M Parameters},
year = {2026},
url = {https://huggingface.co/owensong/Inflect-Micro-v2}
}
```