owensong commited on
Commit
70ee7d8
·
verified ·
1 Parent(s): d0385b5

Polish model card navigation and evidence disclosure

Browse files

Adds the final five-link navigation, corrects Nano architecture metadata, removes invalid CPU-speed claims, clarifies comparator policy, and refreshes release integrity metadata.

README.md CHANGED
@@ -27,18 +27,18 @@ inference: false
27
  24 kHz English TTS with the neural waveform decoder already inside the model.</p>
28
 
29
  <p align="center">
30
- <a href="https://github.com/owenawsong/Inflect"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-0B2A54?style=for-the-badge&logo=github&logoColor=white"></a>
31
- <a href="https://huggingface.co/owensong/Inflect-Micro-v2"><img alt="Inflect Micro v2" src="https://img.shields.io/badge/Micro_9.36M-1769E0?style=for-the-badge&logo=huggingface&logoColor=white"></a>
32
- <a href="https://huggingface.co/owensong/Inflect-Nano-v2"><img alt="Inflect Nano v2" src="https://img.shields.io/badge/Nano_3.97M-FFFFFF?style=for-the-badge&logo=huggingface&logoColor=1769E0"></a>
33
- <a href="https://huggingface.co/spaces/owensong/Inflect-v2"><img alt="Live playground" src="https://img.shields.io/badge/Playground-1769E0?style=for-the-badge&logo=huggingface&logoColor=white"></a>
34
- <a href="https://huggingface.co/collections/owensong/inflect-v2-6a619e820808eccf361a2948"><img alt="Inflect v2 collection" src="https://img.shields.io/badge/Collection-0B2A54?style=for-the-badge&logo=huggingface&logoColor=white"></a>
35
  </p>
36
 
37
  <p align="center"><strong>9.36M complete parameters</strong> · <strong>37.53 MB FP32 weights</strong> · <strong>one fixed English voice</strong> · <strong>no external vocoder</strong></p>
38
 
39
  ---
40
 
41
- > **Small enough to ship. Complete enough to stand alone.** Every published parameter is part of the local text-to-waveform path: text encoding, duration prediction, latent synthesis, and the integrated 24 kHz waveform decoder. There is no second vocoder download, server model, or inference-time teacher.
42
 
43
  <details>
44
  <summary><strong>Explore this model card</strong></summary>
@@ -76,6 +76,8 @@ No single metric captures TTS quality. Inflect v2 reports **human preference**,
76
 
77
  The headline row always refers to **Inflect-Micro-v2**. Detailed competitor results and protocol boundaries are kept visible below.
78
 
 
 
79
  ### 1. Human blind preference
80
 
81
  ![Community blind listening](assets/evidence/human-preference.svg)
@@ -129,30 +131,14 @@ transcription errors.
129
 
130
  </details>
131
 
132
- ### 4. Measured local CPU throughput
133
-
134
- ![Warm CPU throughput](assets/evidence/cpu-throughput.svg)
135
-
136
- ![Predicted quality and CPU throughput](assets/evidence/quality-vs-cpu-speed.svg)
137
-
138
- All systems use the same host, frozen prompt list, three warmups, isolated
139
- processes, and end-to-end timing boundary. Runtime includes each system's text
140
- frontend and waveform generation. The table and figures report audio seconds
141
- generated per wall-clock second; **1.0× is real time**.
142
 
143
- | System | Warm throughput | RTF | Median latency | p95 latency | Cold load |
144
- | --- | ---: | ---: | ---: | ---: | ---: |
145
- | **Inflect-Micro-v2** | **1.58×** | 0.635 | 2.402 s | 7.281 s | 2.774 s |
146
- | **Inflect-Nano-v2** | **1.59×** | 0.630 | 1.797 s | 7.207 s | 0.192 s |
147
- | KittenTTS Nano · 2-voice mean | 7.85× | 0.127 | 0.740 s | 1.074 s | 3.830 s |
148
- | Piper Low · 2-voice mean | 18.58× | 0.054 | 0.219 s | 0.364 s | 3.172 s |
149
- | Supertonic 3 · James · 3-step | 5.51× | 0.181 | 0.994 s | 1.494 s | 1.318 s |
150
- | Supertonic 3 · James · 8-step | 2.51× | 0.398 | 2.267 s | 3.181 s | 1.601 s |
151
-
152
- These measurements used an AMD Ryzen 9 3900X with 12 configured CPU threads,
153
- 48 identical prompts, and `CUDA_VISIBLE_DEVICES` empty. They compare the
154
- released software paths, not architecture alone: Inflect runs PyTorch, while
155
- the competitor packages use their published ONNX Runtime paths.
156
 
157
  ### 5. Complete weight footprint
158
 
@@ -161,7 +147,7 @@ the competitor packages use their published ONNX Runtime paths.
161
  Voice variants sharing the same weights are merged. Inflect totals include the integrated waveform decoder.
162
 
163
  <details>
164
- <summary><strong>Open the frozen protocol and host-specific runtime snapshot</strong></summary>
165
 
166
  - Modern400 uses 400 identical unseen English prompts per system: 200 fixed modern/stress prompts plus 200 deterministic FLEURS `en_us` test prompts.
167
  - Exact-text exclusion was checked against 87,362 training transcripts.
@@ -170,16 +156,8 @@ Voice variants sharing the same weights are merged. Inflect totals include the i
170
  - Headline intervals use 10,000 bootstrap samples.
171
  - The Modern400 corpus SHA-256 is `b7504ce2dce44a2da82770a6a5dfd2a034fe17e2113980f8a69663ade417a34c`.
172
  - Prompts, hypotheses, compressed row-level reports, and summaries ship under `evaluation/final/`.
173
-
174
- The retained CPU snapshot used one isolated process, 48 matched prompts, three
175
- warmups, and 12 configured CPU threads on an AMD Ryzen 9 3900X:
176
-
177
- | RTF ↓ | Audio generated / wall time ↑ | Median utterance | p95 utterance | Cold load |
178
- | ---: | ---: | ---: | ---: | ---: |
179
- | 0.635 | 1.58× real time | 2.402 s | 7.281 s | 2.774 s |
180
-
181
- RTF is wall time divided by generated audio duration. This is a host-specific
182
- engineering snapshot, not a portable cross-system speed claim.
183
 
184
  </details>
185
 
@@ -284,7 +262,7 @@ Long passages are punctuation-aware chunks, not one unlimited autoregressive pas
284
  <details>
285
  <summary id="data-voice-and-adaptation-status"><strong>Data, voice, and adaptation status</strong></summary>
286
 
287
- The release voice was trained on a single-speaker synthetic English corpus generated with a larger third-party TTS teacher. No teacher model is required or shipped at inference. The package does not redistribute a real speaker dataset and does not claim the synthetic voice as the identity of a real person.
288
 
289
  This release is inference-first. New-voice and new-language adaptation are **not currently validated or supported**. A new voice would replace the fixed speaker rather than add a selectable speaker; language adaptation also requires rebuilding normalization, phonemes, symbols, embeddings, and training data. See [`docs/DATA_AND_VOICE.md`](docs/DATA_AND_VOICE.md) and [`docs/FINETUNING.md`](docs/FINETUNING.md).
290
 
@@ -329,6 +307,7 @@ Inflect v2 is an **open-weight** release. Deployable weights, inference code, fr
329
  Owen Song may share additional technical context privately for credible research, collaboration, reproducibility, or deployment inquiries when the request has a clear purpose and does not conflict with licensing or data-provenance constraints.
330
 
331
  - **Discord:** `b111ue` — fastest for informal technical questions
 
332
  - **Email:** [owen.aw.song@gmail.com](mailto:owen.aw.song@gmail.com) — preferred for professional inquiries
333
 
334
  ## Citation
 
27
  24 kHz English TTS with the neural waveform decoder already inside the model.</p>
28
 
29
  <p align="center">
30
+ <a href="https://huggingface.co/spaces/owensong/Inflect-v2"><img alt="Live playground" src="assets/nav/playground.svg" width="168"></a>
31
+ <a href="https://github.com/owenawsong/Inflect"><img alt="GitHub" src="assets/nav/github.svg" width="168"></a>
32
+ <a href="https://huggingface.co/owensong/Inflect-Nano-v2"><img alt="Inflect Nano v2" src="assets/nav/nano.svg" width="168"></a>
33
+ <a href="docs/FINETUNING.md"><img alt="Fine-tuning guide" src="assets/nav/finetuning.svg" width="168"></a>
34
+ <a href="https://discord.gg/CVJYedvzvp"><img alt="Inflect Discord" src="assets/nav/discord.svg" width="168"></a>
35
  </p>
36
 
37
  <p align="center"><strong>9.36M complete parameters</strong> · <strong>37.53 MB FP32 weights</strong> · <strong>one fixed English voice</strong> · <strong>no external vocoder</strong></p>
38
 
39
  ---
40
 
41
+ > **Small enough to ship. Complete enough to stand alone.** Every published parameter is part of the local text-to-waveform path: text encoding, duration prediction, latent synthesis, and the integrated 24 kHz waveform decoder. There is no second vocoder download, server model, or external generation service.
42
 
43
  <details>
44
  <summary><strong>Explore this model card</strong></summary>
 
76
 
77
  The headline row always refers to **Inflect-Micro-v2**. Detailed competitor results and protocol boundaries are kept visible below.
78
 
79
+ > **Comparator policy.** Inflect is tested against serious compact and on-device baselines, not deliberately weak systems: [KittenTTS Nano](https://huggingface.co/KittenML/kitten-tts-nano-0.8), [Piper Low](https://huggingface.co/rhasspy/piper-voices), and [Supertonic 3](https://huggingface.co/Supertone/supertonic-3). Under this package-level protocol, every comparator has a larger deployable weight footprint than both Inflect releases. That makes the comparison demanding; it does not imply that one metric establishes universal superiority.
80
+
81
  ### 1. Human blind preference
82
 
83
  ![Community blind listening](assets/evidence/human-preference.svg)
 
131
 
132
  </details>
133
 
134
+ ### 4. Runtime status
 
 
 
 
 
 
 
 
 
135
 
136
+ The release supports CPU and CUDA inference through the same public API. A
137
+ previous local CPU table has been withdrawn because background host saturation
138
+ made its cross-system throughput figures non-reproducible. A clean-host rerun
139
+ will be published with the complete environment, thread policy, warmup count,
140
+ matched prompts, and raw per-utterance timings. Until then, this card makes no
141
+ headline CPU-speed claim.
 
 
 
 
 
 
 
142
 
143
  ### 5. Complete weight footprint
144
 
 
147
  Voice variants sharing the same weights are merged. Inflect totals include the integrated waveform decoder.
148
 
149
  <details>
150
+ <summary><strong>Open the frozen evaluation protocol</strong></summary>
151
 
152
  - Modern400 uses 400 identical unseen English prompts per system: 200 fixed modern/stress prompts plus 200 deterministic FLEURS `en_us` test prompts.
153
  - Exact-text exclusion was checked against 87,362 training transcripts.
 
156
  - Headline intervals use 10,000 bootstrap samples.
157
  - The Modern400 corpus SHA-256 is `b7504ce2dce44a2da82770a6a5dfd2a034fe17e2113980f8a69663ade417a34c`.
158
  - Prompts, hypotheses, compressed row-level reports, and summaries ship under `evaluation/final/`.
159
+ - Runtime is evaluated separately because framework, thread policy, compilation,
160
+ and host load can dominate small-model comparisons.
 
 
 
 
 
 
 
 
161
 
162
  </details>
163
 
 
262
  <details>
263
  <summary id="data-voice-and-adaptation-status"><strong>Data, voice, and adaptation status</strong></summary>
264
 
265
+ The release contains one fixed synthetic English voice. The package does not redistribute a real-speaker recording corpus, does not claim the voice as the identity of a real person, and requires no reference audio or external model at inference.
266
 
267
  This release is inference-first. New-voice and new-language adaptation are **not currently validated or supported**. A new voice would replace the fixed speaker rather than add a selectable speaker; language adaptation also requires rebuilding normalization, phonemes, symbols, embeddings, and training data. See [`docs/DATA_AND_VOICE.md`](docs/DATA_AND_VOICE.md) and [`docs/FINETUNING.md`](docs/FINETUNING.md).
268
 
 
307
  Owen Song may share additional technical context privately for credible research, collaboration, reproducibility, or deployment inquiries when the request has a clear purpose and does not conflict with licensing or data-provenance constraints.
308
 
309
  - **Discord:** `b111ue` — fastest for informal technical questions
310
+ - **Community server:** [discord.gg/CVJYedvzvp](https://discord.gg/CVJYedvzvp)
311
  - **Email:** [owen.aw.song@gmail.com](mailto:owen.aw.song@gmail.com) — preferred for professional inquiries
312
 
313
  ## Citation
assets/evidence/cpu-throughput.svg DELETED
assets/evidence/quality-vs-cpu-speed.svg DELETED
assets/nav/collection.svg DELETED
assets/nav/discord.svg ADDED
assets/nav/finetuning.svg ADDED
assets/nav/github.svg CHANGED
assets/nav/micro.svg CHANGED
assets/nav/nano.svg CHANGED
assets/nav/playground.svg CHANGED
docs/DATA_AND_VOICE.md CHANGED
@@ -7,10 +7,9 @@ zero-shot voice-cloning model and does not accept reference audio at inference.
7
 
8
  ## Training-data summary
9
 
10
- The release model was trained on a single-speaker synthetic English speech
11
- corpus generated with a larger third-party text-to-speech teacher. The private
12
  corpus-construction and optimization recipe is not distributed. The inference
13
- package does not ship or call the teacher model.
14
 
15
  The corpus was filtered for transcript consistency, duration, clipping, and
16
  other audio-quality failures before model training. Frozen unseen-text prompts
@@ -30,13 +29,13 @@ real person's recording.
30
  American English.
31
  - Proper names, uncommon locations, abbreviations, homographs, and code-switched
32
  text may be mispronounced.
33
- - Synthetic teacher data can transfer its rhythm, prosody, spectral traits, and
34
- pronunciation biases to the student.
35
  - The single-speaker design does not represent demographic or accent diversity.
36
 
37
  ## What is not disclosed
38
 
39
- The private corpus prompts, teacher configuration, sampling curriculum,
40
- filtering thresholds, and optimization schedule are not part of this open-weight
41
- release. Their absence does not change the deployable parameter count: all
42
- inference-time components and weights are included.
 
7
 
8
  ## Training-data summary
9
 
10
+ The release contains one fixed synthetic English voice. The private
 
11
  corpus-construction and optimization recipe is not distributed. The inference
12
+ package does not require reference audio or call any external speech model.
13
 
14
  The corpus was filtered for transcript consistency, duration, clipping, and
15
  other audio-quality failures before model training. Frozen unseen-text prompts
 
29
  American English.
30
  - Proper names, uncommon locations, abbreviations, homographs, and code-switched
31
  text may be mispronounced.
32
+ - A fixed synthetic training voice can carry narrow rhythm, prosody, spectral,
33
+ and pronunciation biases.
34
  - The single-speaker design does not represent demographic or accent diversity.
35
 
36
  ## What is not disclosed
37
 
38
+ The private corpus prompts, generation configuration, sampling curriculum,
39
+ filtering thresholds, and optimization schedule are not part of this
40
+ open-weight release. Their absence does not change the deployable parameter
41
+ count: all inference-time components and weights are included.
release_manifest.json CHANGED
@@ -27,11 +27,6 @@
27
  "bytes": 6123,
28
  "sha256": "1a2218e0bbe726167a5b0201736a82947edbd7c6803df3f5689e7a711026758e"
29
  },
30
- {
31
- "path": "assets/evidence/cpu-throughput.svg",
32
- "bytes": 3198,
33
- "sha256": "4a74b4f19c87c5da9e8f368dd0117ac2840c437976c677572e3f65d1be785b8b"
34
- },
35
  {
36
  "path": "assets/evidence/evidence-summary.json",
37
  "bytes": 52605,
@@ -52,11 +47,6 @@
52
  "bytes": 7934,
53
  "sha256": "9086575f7d11395255f4cf4ae67e30bf92d60042c6b4bdc58ee6045595cb5420"
54
  },
55
- {
56
- "path": "assets/evidence/quality-vs-cpu-speed.svg",
57
- "bytes": 3887,
58
- "sha256": "023e0a4a86c71eefea19a4fdab7404b8710ead4045ae3964928f149af1cc04b4"
59
- },
60
  {
61
  "path": "assets/evidence/quality-vs-footprint.svg",
62
  "bytes": 5852,
@@ -68,29 +58,34 @@
68
  "sha256": "ca59256690b4ce1b11f27e51ee4aa21c30883d58c1e5c87cccae553898afe884"
69
  },
70
  {
71
- "path": "assets/nav/collection.svg",
72
- "bytes": 652,
73
- "sha256": "85387a74b68b0b7b735f4ce3527f32ddd5ca084dfd49dc81fa96ebf816b153e6"
 
 
 
 
 
74
  },
75
  {
76
  "path": "assets/nav/github.svg",
77
  "bytes": 517,
78
- "sha256": "d55949cc700715bb152b0380799b314631f442414e81b83a6f3553df18dbef6f"
79
  },
80
  {
81
  "path": "assets/nav/micro.svg",
82
  "bytes": 529,
83
- "sha256": "f56b72a293acdf8e9fed93893f75acf760a20a2fe09b316646a627db2ada741a"
84
  },
85
  {
86
  "path": "assets/nav/nano.svg",
87
  "bytes": 726,
88
- "sha256": "69275d0d9277144c098b3dce66db5e870ebd113d97ca55cc6912242bda520643"
89
  },
90
  {
91
  "path": "assets/nav/playground.svg",
92
  "bytes": 624,
93
- "sha256": "fa05ff68190baf290f3d1e9c9b8a7bc89af033fd03066cf7d3e828089b194953"
94
  },
95
  {
96
  "path": "CHANGELOG.md",
@@ -114,8 +109,8 @@
114
  },
115
  {
116
  "path": "docs/DATA_AND_VOICE.md",
117
- "bytes": 1739,
118
- "sha256": "8a504473b8377493256d435124851479ebee7f74432671ed0e0dff4e4509d8ba"
119
  },
120
  {
121
  "path": "docs/DEPLOYMENT.md",
@@ -329,8 +324,8 @@
329
  },
330
  {
331
  "path": "README.md",
332
- "bytes": 18046,
333
- "sha256": "7c08c3b3280c659336ffdc141f98e585e4f52bea149ba1a1ca746e2a67c79bba"
334
  },
335
  {
336
  "path": "requirements-tested.txt",
 
27
  "bytes": 6123,
28
  "sha256": "1a2218e0bbe726167a5b0201736a82947edbd7c6803df3f5689e7a711026758e"
29
  },
 
 
 
 
 
30
  {
31
  "path": "assets/evidence/evidence-summary.json",
32
  "bytes": 52605,
 
47
  "bytes": 7934,
48
  "sha256": "9086575f7d11395255f4cf4ae67e30bf92d60042c6b4bdc58ee6045595cb5420"
49
  },
 
 
 
 
 
50
  {
51
  "path": "assets/evidence/quality-vs-footprint.svg",
52
  "bytes": 5852,
 
58
  "sha256": "ca59256690b4ce1b11f27e51ee4aa21c30883d58c1e5c87cccae553898afe884"
59
  },
60
  {
61
+ "path": "assets/nav/discord.svg",
62
+ "bytes": 786,
63
+ "sha256": "8b97fef7b46040b8095348660aaea7f8d16c01f297f1a7003da4b7079c04098c"
64
+ },
65
+ {
66
+ "path": "assets/nav/finetuning.svg",
67
+ "bytes": 884,
68
+ "sha256": "084e039ec325c498dea6e2e213278e303eec44bdbfee53e78eb384ac0667c75d"
69
  },
70
  {
71
  "path": "assets/nav/github.svg",
72
  "bytes": 517,
73
+ "sha256": "50c6e527b5cc3910fc699ac923f626344451ab4efb3e31c4616e236d0ece9d3b"
74
  },
75
  {
76
  "path": "assets/nav/micro.svg",
77
  "bytes": 529,
78
+ "sha256": "efd36cb4922a437f7483368febeeb8e85d645e6e1dd58262683f61be4fe56e12"
79
  },
80
  {
81
  "path": "assets/nav/nano.svg",
82
  "bytes": 726,
83
+ "sha256": "755a6e43589e54e43d0a67789b81210d0db6650c22ca0bb5efb5bdb1383d0fcd"
84
  },
85
  {
86
  "path": "assets/nav/playground.svg",
87
  "bytes": 624,
88
+ "sha256": "eef126feaf18704d81b5b65568c14e1eef4d35141b150c19874dd173f8ac07f3"
89
  },
90
  {
91
  "path": "CHANGELOG.md",
 
109
  },
110
  {
111
  "path": "docs/DATA_AND_VOICE.md",
112
+ "bytes": 1671,
113
+ "sha256": "894e9fa4e5f6fceb76e7b2da2fca4de924230c6043ef5de167ef8c15298c6b6e"
114
  },
115
  {
116
  "path": "docs/DEPLOYMENT.md",
 
324
  },
325
  {
326
  "path": "README.md",
327
+ "bytes": 16898,
328
+ "sha256": "4c8fb3f0c9238e0f6b92547ce8d4ff7e96fd3419427cfbbeb1365f13f9a9648e"
329
  },
330
  {
331
  "path": "requirements-tested.txt",