msluszniak's picture
Add XNNPACK int8 vector estimator and vocoder
3a80a76 verified
|
Raw History Blame Contribute Delete
5.15 kB
---
license: openrail
language:
- en
- es
- fr
- pl
- el
- id
- zh
- ja
- ru
- tr
- da
- et
- hr
- pt
- vi
- sl
- cs
- it
- uk
- ko
- sv
- lv
- hu
- fi
- ar
- nl
- sk
- bg
- hi
- de
- lt
base_model:
- Supertone/supertonic-3
pipeline_tag: text-to-speech
library_name: executorch
---
# supertonic
This repository hosts the **supertonic** models exported for the
[React Native ExecuTorch](https://www.npmjs.com/package/react-native-executorch)
library as ExecuTorch `.pte` programs, ready to run on device.
## Variants
| Path | Component | Backend | Precision |
| --- | --- | --- | --- |
| `mlx/duration_predictor_mlx_fp32.pte` | duration_predictor | mlx | fp32 |
| `mlx/text_encoder_mlx_fp32.pte` | text_encoder | mlx | fp32 |
| `mlx/vector_estimator_mlx_fp32.pte` | vector_estimator | mlx | fp32 |
| `mlx/vocoder_mlx_fp32.pte` | vocoder | mlx | fp32 |
| `vulkan/duration_predictor_vulkan_fp16.pte` | duration_predictor | vulkan | fp16 |
| `vulkan/text_encoder_vulkan_fp16.pte` | text_encoder | vulkan | fp16 |
| `vulkan/vector_estimator_vulkan_fp16.pte` | vector_estimator | vulkan | fp16 |
| `vulkan/vocoder_vulkan_fp16.pte` | vocoder | vulkan | fp16 |
| `xnnpack/duration_predictor_xnnpack_fp32.pte` | duration_predictor | xnnpack | fp32 |
| `xnnpack/text_encoder_xnnpack_fp32.pte` | text_encoder | xnnpack | fp32 |
| `xnnpack/vector_estimator_xnnpack_fp32.pte` | vector_estimator | xnnpack | fp32 |
| `xnnpack/vector_estimator_xnnpack_int8.pte` | vector_estimator | xnnpack | int8 |
| `xnnpack/vocoder_xnnpack_fp32.pte` | vocoder | xnnpack | fp32 |
| `xnnpack/vocoder_xnnpack_int8.pte` | vocoder | xnnpack | int8 |
## XNNPACK int8
`xnnpack/vector_estimator_xnnpack_int8.pte` and `xnnpack/vocoder_xnnpack_int8.pte` are 8da8w
(int8 dynamic activations, int8 per-channel weights) on the Linear layers, with the ConvNeXt
pointwise convs moved onto Linears. The int8 set reuses the fp32 duration predictor and text
encoder. LibriSpeech test-clean texts, voice F1, 8 steps, WER of a whisper base.en round trip:
| | WER (57 short) | WER (8 long) |
| --- | --- | --- |
| fp32 | 3.36 | 3.32 |
| fp32, other noise seed | 3.26 | 3.80 |
| int8 | 3.74 | 3.01 |
## Unshipped backends
A backend directory carrying a `NOTES.md` and no `.pte` was exported and
not published. Its note records what went wrong.
- `coreml` ([why](https://huggingface.co/software-mansion/react-native-executorch-supertonic/blob/main/coreml/NOTES.md))
## Repository structure
```
config.json 32 B
coreml/NOTES.md 879 B
mlx/config.json 6.7 kB
mlx/duration_predictor_mlx_fp32.pte 3.4 MB
mlx/text_encoder_mlx_fp32.pte 34.4 MB
mlx/vector_estimator_mlx_fp32.pte 244 MB
mlx/vocoder_mlx_fp32.pte 96.7 MB
unicode_indexer.json 271 kB
voice_styles/F1.json 285 kB
voice_styles/F2.json 286 kB
voice_styles/F3.json 284 kB
voice_styles/F4.json 285 kB
voice_styles/F5.json 285 kB
voice_styles/M1.json 285 kB
voice_styles/M2.json 285 kB
voice_styles/M3.json 283 kB
voice_styles/M4.json 285 kB
voice_styles/M5.json 285 kB
voices/F1.bin 50.5 kB
voices/F2.bin 50.5 kB
voices/F3.bin 50.5 kB
voices/F4.bin 50.5 kB
voices/F5.bin 50.5 kB
voices/M1.bin 50.5 kB
voices/M2.bin 50.5 kB
voices/M3.bin 50.5 kB
voices/M4.bin 50.5 kB
voices/M5.bin 50.5 kB
vulkan/config.json 4.1 kB
vulkan/duration_predictor_vulkan_fp16.pte 1.7 MB
vulkan/text_encoder_vulkan_fp16.pte 17.3 MB
vulkan/vector_estimator_vulkan_fp16.pte 122 MB
vulkan/vocoder_vulkan_fp16.pte 48.4 MB
xnnpack/config.json 13.1 kB
xnnpack/duration_predictor_xnnpack_fp32.pte 3.4 MB
xnnpack/text_encoder_xnnpack_fp32.pte 34.5 MB
xnnpack/vector_estimator_xnnpack_fp32.pte 245 MB
xnnpack/vector_estimator_xnnpack_int8.pte 62.9 MB
xnnpack/vocoder_xnnpack_fp32.pte 96.7 MB
xnnpack/vocoder_xnnpack_int8.pte 36.8 MB
```
## Compatibility
These files are published for the **ExecuTorch v1.4.1** runtime. ExecuTorch
gives no forward compatibility guarantee, so an older runtime may fail to load
them.
To use them in React Native ExecuTorch, pass the model constant shipped in the
library's model registry to the corresponding task pipeline. See the
[documentation](https://docs.swmansion.com/react-native-executorch/docs/fundamentals/downloading-models).
To load these files in your own ExecuTorch runtime, read the
[compatibility note](https://github.com/pytorch/executorch/blob/main/runtime/COMPATIBILITY.md)
first.