--- license: apache-2.0 language: - en pipeline_tag: text-to-speech tags: - text-to-speech - speech-synthesis - local-tts - cpu - small-model - vits - 24khz ---

Inflect-Micro-v2

A complete 24 kHz text-to-waveform TTS system in 9,356,513 parameters.
One English voice. CPU-ready. No external vocoder.

Try Micro and Nano in the browser

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 ![Matched unseen-text evaluation](assets/matched-evaluation.svg) | 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} } ```