Morkon commited on
Commit
98a40eb
·
verified ·
1 Parent(s): a4d5ae7

Upload optional INT8 HolosTTS bundle (official onnx-int8/)

Browse files
holos-onnx-int8/README.md ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HolosTTS → Promin ONNX bundle (`holos-onnx-int8`, optional)
2
+
3
+ Опційний **int8**-варіант офіційного багатоетапного ONNX-бандла HolosTTS для
4
+ рушія [Promin TTS](https://github.com/Karnemorkon/promin-tts)
5
+ (`format_version: 2`). Менший розмір завантаження, ніж fp32, але нижча якість.
6
+ Для максимальної якості використовуйте `holos-onnx/`.
7
+
8
+ > **Голоси та згода дикторів.** `voices.npz` містить 27 пресетів із HolosTTS.
9
+ > Автор HolosTTS зазначає, що диктори не надавали згоди на синтез їхніх голосів
10
+ > і що домовлятися з ними потрібно окремо
11
+ > ([discussion #5](https://huggingface.co/patriotyk/HolosTTS/discussions/5)).
12
+ > MIT стосується коду та ваг моделі, але не є дозволом на використання голосу
13
+ > людини. Не використовуйте ці пресети для публікації або монетизації
14
+ > синтезованого мовлення без окремого дозволу диктора.
15
+
16
+ ## Джерело
17
+
18
+ Це **офіційний int8-бандл** із релізу
19
+ [`patriotyk/HolosTTS`](https://huggingface.co/patriotyk/HolosTTS) від
20
+ 2026-11-01 (`onnx-int8/`), зазеркалений без донавчання. Маніфест змінено лише
21
+ так само, як у fp32: `vocab` обрізано до 181 запису, щоб id не виходили за
22
+ межі 181-рядкових таблиць ембедінгів.
23
+
24
+ `holos-onnx-int8/holos_onnx.json` містить `quantization`:
25
+ `u8s8`, `Conv` + `MatMul`, `waveform_precision: late`, `reduce_range: false`.
26
+
27
+ ## Вміст
28
+
29
+ | Файл | Розмір | Призначення |
30
+ |---|---|---|
31
+ | `holos_onnx.json` | 2.7 KB | маніфест: вокабуляр, частота, етапи, ліміти, квантування |
32
+ | `encoder.onnx` | 217 MB | `tokens`, `voice`, `speed` → `acoustic_tokens`, `prosodic_tokens`, `durations` |
33
+ | `prosody.onnx` | 23 MB | `prosodic_tokens`, `frame_to_token`, `voice` → `f0`, `energy` |
34
+ | `decoder.onnx` | 83 MB | exact-декодер на всю репліку |
35
+ | `source.onnx` | 2.5 MB | збудження для стрімінгу |
36
+ | `decoder_window.onnx` | 80 MB | віконний декодер |
37
+ | `voices.npz` | 26 KB | 27 пресетів голосів (той самий файл, що у fp32) |
38
+
39
+ 24 кГц, 600 семплів на кадр (25 мс), `max_frames: 1000` (≈25 с на виклик),
40
+ стрімінг: чанк 40 кадрів (1 с), контекст 20 (0.5 с), вікно 80 (2 с).
41
+
42
+ Для клонування потрібен **спільний** `tts/voice_encoder.onnx` (fp32) з
43
+ основного репозиторію. Старі клони несумісні з новим енкодером — їх треба
44
+ зареєструвати заново.
45
+
46
+ ## Використання
47
+
48
+ ```bash
49
+ python -c "from huggingface_hub import snapshot_download; \
50
+ snapshot_download('Morkon/holos-native-models', \
51
+ allow_patterns=['holos-onnx-int8/*', 'tts/voice_encoder.onnx'], \
52
+ local_dir='models')"
53
+ ```
54
+
55
+ Локально каталог має називатися `holos-onnx/` (Promin шукає саме його):
56
+
57
+ ```bash
58
+ mv models/holos-onnx-int8 models/holos-onnx
59
+ PROMIN_MODELS_DIR=models PROMIN_MODEL_FORMAT=bundle
60
+ ```
61
+
62
+ Для автозавантаження без ручного перейменування:
63
+
64
+ ```bash
65
+ PROMIN_HF_BUNDLE_PREFIX=holos-onnx-int8 PROMIN_MODEL_FORMAT=bundle
66
+ ```
67
+
68
+ ## Якість
69
+
70
+ Порівняно з fp32 на тих самих фразах:
71
+
72
+ - log-spectrogram correlation ≈0.88–0.95;
73
+ - waveform correlation низька через різницю фаз, але спектр і тривалість
74
+ близькі;
75
+ - int8 streaming vs int8 exact: log-spectrogram correlation ≈0.71 (у fp32
76
+ exact і streaming біт-у-біт однакові).
77
+
78
+ Тому int8 — компроміс для малого диска/трафіку, не для еталонної якості.
79
+
80
+ ## Перевірка
81
+
82
+ - ONNX Runtime 1.31.0, IR 10 / opset 20 — графи завантажуються.
83
+ - Короткі фрази, абзаци, `speed=0.5`, апострофи й стрімінг перевірено через
84
+ `speech-server`.
85
+ - 1000-кадровий ліміт той самий, що у fp32; Promin ріже довгі частини.
86
+
87
+ Контрольні суми — у `SHA256SUMS`.
88
+
89
+ ## Ліцензія
90
+
91
+ - Ваги й архітектура: [patriotyk/HolosTTS](https://github.com/patriotyk/HolosTTS)
92
+ (MIT, © автор HolosTTS). Це офіційний int8-експорт, без донавчання.
93
+ - **Голосові пресети (`voices.npz`) не покриваються MIT як дозволом на
94
+ використання голосу.** Згода дикторів не підтверджена; див. попередження
95
+ вище та [discussion #5](https://huggingface.co/patriotyk/HolosTTS/discussions/5).
96
+ - Репозиторій загалом має окрему ліцензію через Gemma-вербалізатор.
holos-onnx-int8/SHA256SUMS ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ 1dbb302b305c57c40a77d08b512214fa1714561aba9dda188b45da2e79d1b1a9 encoder.onnx
2
+ 2d2b33b32bf5584c837af24c4c8b4cf4f7a0370256ea72908a4cc3216d2f650c prosody.onnx
3
+ e112001b5d1bb3849545e8df814cfdeb1060eabeb3e60e197e7d1c3cbbd925c3 decoder.onnx
4
+ e31ddf2efa9f340db2941076365a8166e84512dcb6ae1e8e92c62c974ae75e26 decoder_window.onnx
5
+ ced5242be197382289663f8a0b2760c92593b7c8a4dfedb976e43b0420aeac6b source.onnx
6
+ 5124ef2311e03c89228cc62ffdf8cefd88f8c07f0d8161063a03538af8f1b436 voices.npz
7
+ c3f8bc1e9abbea737cca3e0151c8236b99033c77c16ede664722016e9199795d holos_onnx.json
holos-onnx-int8/decoder.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e112001b5d1bb3849545e8df814cfdeb1060eabeb3e60e197e7d1c3cbbd925c3
3
+ size 82692164
holos-onnx-int8/decoder_window.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e31ddf2efa9f340db2941076365a8166e84512dcb6ae1e8e92c62c974ae75e26
3
+ size 80254452
holos-onnx-int8/encoder.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1dbb302b305c57c40a77d08b512214fa1714561aba9dda188b45da2e79d1b1a9
3
+ size 217064975
holos-onnx-int8/holos_onnx.json ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "holos-onnx",
3
+ "format_version": 2,
4
+ "encoder": "encoder.onnx",
5
+ "prosody": "prosody.onnx",
6
+ "decoder": "decoder.onnx",
7
+ "voices": "voices.npz",
8
+ "vocab": [
9
+ "$",
10
+ "-",
11
+ "´",
12
+ ";",
13
+ ":",
14
+ ",",
15
+ ".",
16
+ "!",
17
+ "?",
18
+ "¡",
19
+ "¿",
20
+ "—",
21
+ "…",
22
+ "\"",
23
+ "«",
24
+ "»",
25
+ "“",
26
+ "”",
27
+ " ",
28
+ "(",
29
+ ")",
30
+ "†",
31
+ "/",
32
+ "=",
33
+ "A",
34
+ "B",
35
+ "C",
36
+ "D",
37
+ "E",
38
+ "F",
39
+ "G",
40
+ "H",
41
+ "I",
42
+ "J",
43
+ "K",
44
+ "L",
45
+ "M",
46
+ "N",
47
+ "O",
48
+ "P",
49
+ "Q",
50
+ "R",
51
+ "S",
52
+ "T",
53
+ "U",
54
+ "V",
55
+ "W",
56
+ "X",
57
+ "Y",
58
+ "Z",
59
+ "a",
60
+ "b",
61
+ "c",
62
+ "d",
63
+ "e",
64
+ "f",
65
+ "g",
66
+ "h",
67
+ "i",
68
+ "j",
69
+ "k",
70
+ "l",
71
+ "m",
72
+ "n",
73
+ "o",
74
+ "p",
75
+ "q",
76
+ "r",
77
+ "s",
78
+ "t",
79
+ "u",
80
+ "v",
81
+ "w",
82
+ "x",
83
+ "y",
84
+ "z",
85
+ "é",
86
+ "ý",
87
+ "í",
88
+ "ó",
89
+ "'",
90
+ "̯",
91
+ "'",
92
+ "͡",
93
+ "ɑ",
94
+ "ɐ",
95
+ "ɒ",
96
+ "æ",
97
+ "ɓ",
98
+ "ʙ",
99
+ "β",
100
+ "ɔ",
101
+ "ɕ",
102
+ "ç",
103
+ "ɗ",
104
+ "ɖ",
105
+ "ð",
106
+ "ʤ",
107
+ "ə",
108
+ "ɘ",
109
+ "ɚ",
110
+ "ɛ",
111
+ "ɜ",
112
+ "ɝ",
113
+ "ɞ",
114
+ "ɟ",
115
+ "ʄ",
116
+ "ɡ",
117
+ "ɠ",
118
+ "ɢ",
119
+ "ʛ",
120
+ "ɦ",
121
+ "ɧ",
122
+ "ħ",
123
+ "ɥ",
124
+ "ʜ",
125
+ "ɨ",
126
+ "ɪ",
127
+ "ʝ",
128
+ "ɭ",
129
+ "ɬ",
130
+ "ɫ",
131
+ "ɮ",
132
+ "ʟ",
133
+ "ɱ",
134
+ "ɯ",
135
+ "ɰ",
136
+ "ŋ",
137
+ "ɳ",
138
+ "ɲ",
139
+ "ɴ",
140
+ "ø",
141
+ "ɵ",
142
+ "ɸ",
143
+ "θ",
144
+ "œ",
145
+ "ɶ",
146
+ "ʘ",
147
+ "ɹ",
148
+ "ɺ",
149
+ "ɾ",
150
+ "ɻ",
151
+ "ʀ",
152
+ "ʁ",
153
+ "ɽ",
154
+ "ʂ",
155
+ "ʃ",
156
+ "ʈ",
157
+ "ʧ",
158
+ "ʉ",
159
+ "ʊ",
160
+ "ʋ",
161
+ "ⱱ",
162
+ "ʌ",
163
+ "ɣ",
164
+ "ɤ",
165
+ "ʍ",
166
+ "χ",
167
+ "ʎ",
168
+ "ʏ",
169
+ "ʑ",
170
+ "ʐ",
171
+ "ʒ",
172
+ "ʔ",
173
+ "ʡ",
174
+ "ʕ",
175
+ "ʢ",
176
+ "ǀ",
177
+ "ǁ",
178
+ "ǂ",
179
+ "ǃ",
180
+ "ˈ",
181
+ "ˌ",
182
+ "ː",
183
+ "ˑ",
184
+ "ʼ",
185
+ "ʴ",
186
+ "ʰ",
187
+ "ʱ",
188
+ "ʲ",
189
+ "'"
190
+ ],
191
+ "sample_rate": 24000,
192
+ "samples_per_frame": 600,
193
+ "max_frames": 1000,
194
+ "decoder_mode": "exact",
195
+ "alignment_format": "gather",
196
+ "attention_format": "tensorrt_fused_bmm",
197
+ "projection_format": "fused_qkv_swiglu",
198
+ "shape_inference_format": "onnx_standard",
199
+ "tensorrt_profile": {
200
+ "min_text_length": 2,
201
+ "opt_text_length": 128,
202
+ "max_text_length": 512,
203
+ "min_frames": 2,
204
+ "opt_frames": 256,
205
+ "max_frames": 1000
206
+ },
207
+ "streaming": {
208
+ "decoder": "decoder_window.onnx",
209
+ "source": "source.onnx",
210
+ "chunk_frames": 40,
211
+ "context_frames": 20,
212
+ "window_frames": 80
213
+ },
214
+ "quantization": {
215
+ "type": "u8s8",
216
+ "op_types": [
217
+ "Conv",
218
+ "MatMul"
219
+ ],
220
+ "waveform_precision": "late",
221
+ "reduce_range": false
222
+ }
223
+ }
holos-onnx-int8/prosody.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2d2b33b32bf5584c837af24c4c8b4cf4f7a0370256ea72908a4cc3216d2f650c
3
+ size 23338460
holos-onnx-int8/source.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ced5242be197382289663f8a0b2760c92593b7c8a4dfedb976e43b0420aeac6b
3
+ size 2467810
holos-onnx-int8/voices.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5124ef2311e03c89228cc62ffdf8cefd88f8c07f0d8161063a03538af8f1b436
3
+ size 26289