leeyunjai commited on
Commit
609ca32
·
verified ·
1 Parent(s): 8bf3e86

replace TTS with supertonic-3

Browse files
.gitattributes CHANGED
@@ -36,3 +36,19 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
36
  vlm/qwen2.5-vl-3b-int4/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
  mediapipe/face_landmarker.task filter=lfs diff=lfs merge=lfs -text
38
  mediapipe/gesture_recognizer.task filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  vlm/qwen2.5-vl-3b-int4/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
  mediapipe/face_landmarker.task filter=lfs diff=lfs merge=lfs -text
38
  mediapipe/gesture_recognizer.task filter=lfs diff=lfs merge=lfs -text
39
+ tts/audio_samples/alphonse_reference.wav filter=lfs diff=lfs merge=lfs -text
40
+ tts/audio_samples/alphonse_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
41
+ tts/audio_samples/keld_reference.wav filter=lfs diff=lfs merge=lfs -text
42
+ tts/audio_samples/keld_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
43
+ tts/audio_samples/luna_reference.wav filter=lfs diff=lfs merge=lfs -text
44
+ tts/audio_samples/luna_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
45
+ tts/audio_samples/moka_reference.wav filter=lfs diff=lfs merge=lfs -text
46
+ tts/audio_samples/moka_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
47
+ tts/audio_samples/nora_reference.wav filter=lfs diff=lfs merge=lfs -text
48
+ tts/audio_samples/nora_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
49
+ tts/audio_samples/watson_reference.wav filter=lfs diff=lfs merge=lfs -text
50
+ tts/audio_samples/watson_supertonic3.wav filter=lfs diff=lfs merge=lfs -text
51
+ tts/img/metrics/runtime_cpu_gpu_latency_memory.png filter=lfs diff=lfs merge=lfs -text
52
+ tts/img/metrics/s3_vs_measured_wer_range_voxcpm2.png filter=lfs diff=lfs merge=lfs -text
53
+ tts/img/metrics/supertonic2_vs_3_comparison.png filter=lfs diff=lfs merge=lfs -text
54
+ tts/img/Supertonic3_HeroImage.png filter=lfs diff=lfs merge=lfs -text
tts/.gitattributes CHANGED
@@ -1,35 +1,3 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
  *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  *.onnx filter=lfs diff=lfs merge=lfs -text
2
+ *.png filter=lfs diff=lfs merge=lfs -text
3
+ *.wav filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tts/.gitignore CHANGED
@@ -1,4 +1,3 @@
1
- window.json
2
- filter_bank.json
3
- style_extractor.onnx
4
- *.npy
 
1
+ .DS_Store
2
+ dev
3
+ .vscode
 
tts/README.md CHANGED
@@ -1,162 +1,193 @@
1
  ---
2
  license: openrail
3
  language:
4
- - en
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  pipeline_tag: text-to-speech
 
 
 
 
 
 
 
6
  library_name: supertonic
7
  ---
8
 
9
- # Supertonic Lightning Fast, On-Device TTS
10
 
11
- **Supertonic** is a lightning-fast, on-device text-to-speech system designed for **extreme performance** with minimal computational overhead. Powered by ONNX Runtime, it runs entirely on your device—no cloud, no API calls, no privacy concerns.
12
 
13
- > 🎧 **Try it now**: Experience Supertonic in your browser with our [**Interactive Demo**](https://huggingface.co/spaces/Supertone/supertonic#interactive-demo), or [**Hugging Face app**](https://huggingface.co/spaces/akhaliq/supertonic) or get started with pre-trained models from [**Hugging Face Hub**](https://huggingface.co/Supertone/supertonic)
 
 
 
 
14
 
15
- > 🛠 **GitHub Repository**
16
- > To use Supertonic most easily, visit the official GitHub repository:
17
- > https://github.com/supertone-inc/supertonic
18
- > You’ll find multi-language example codes.
19
 
20
- ### Table of Contents
21
 
22
- - [Why Supertonic?](#why-supertonic)
23
- - [Language Support](#language-support)
24
- - [Getting Started](#getting-started)
25
- - [Performance](#performance)
26
- - [Citation](#citation)
27
- - [License](#license)
28
 
29
- ## Why Supertonic?
30
 
31
- - **⚡ Blazingly Fast**: Generates speech up to **167× faster than real-time** on consumer hardware (M4 Pro)—unmatched by any other TTS system
32
- - **🪶 Ultra Lightweight**: Only **66M parameters**, optimized for efficient on-device performance with minimal footprint
33
- - **📱 On-Device Capable**: **Complete privacy** and **zero latency**—all processing happens locally on your device
34
- - **🎨 Natural Text Handling**: Seamlessly processes numbers, dates, currency, abbreviations, and complex expressions without pre-processing
35
- - **⚙️ Highly Configurable**: Adjust inference steps, batch processing, and other parameters to match your specific needs
36
- - **🧩 Flexible Deployment**: Deploy seamlessly across servers, browsers, and edge devices with multiple runtime backends.
37
 
 
 
38
 
39
- ## Language Support
 
40
 
41
- We provide ready-to-use TTS inference examples across multiple ecosystems:
 
42
 
43
- | Language/Platform | Path | Description |
44
- |-------------------|------|-------------|
45
- | [**Python**] | `py/` | ONNX Runtime inference |
46
- | [**Node.js**] | `nodejs/` | Server-side JavaScript |
47
- | [**Browser**] | `web/` | WebGPU/WASM inference |
48
- | [**Java**] | `java/` | Cross-platform JVM |
49
- | [**C++**] | `cpp/` | High-performance C++ |
50
- | [**C#**] | `csharp/` | .NET ecosystem |
51
- | [**Go**] | `go/` | Go implementation |
52
- | [**Swift**] | `swift/` | macOS applications |
53
- | [**iOS**] | `ios/` | Native iOS apps |
54
- | [**Rust**] | `rust/` | Memory-safe systems |
55
- | [**Flutter**] | `flutter/` | Cross-platform apps |
56
 
57
- > For detailed usage instructions, please refer to the README.md in each language directory.
58
 
59
- ## Getting Started
 
 
 
60
 
61
- First, clone the repository:
62
 
63
- ```bash
64
- git clone https://github.com/supertone-inc/supertonic.git
65
- cd supertonic
66
- ```
67
 
68
- ### Prerequisites
69
 
70
- Before running the examples, download the ONNX models and preset voices, and place them in the `assets` directory:
 
71
 
72
- ```bash
73
- git clone https://huggingface.co/Supertone/supertonic assets
74
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
- > **Note:** The Hugging Face repository uses Git LFS. Please ensure Git LFS is installed and initialized before cloning or pulling large model files.
77
- > - macOS: `brew install git-lfs && git lfs install`
78
- > - Generic: see `https://git-lfs.com` for installers
79
 
 
 
 
80
 
81
- ### Technical Details
82
 
83
- - **Runtime**: ONNX Runtime for cross-platform inference (CPU-optimized; GPU mode is not tested)
84
- - **Browser Support**: onnxruntime-web for client-side inference
85
- - **Batch Processing**: Supports batch inference for improved throughput
86
- - **Audio Output**: Outputs 16-bit WAV files
87
 
88
- ## Performance
89
 
90
- We evaluated Supertonic's performance (with 2 inference steps) using two key metrics across input texts of varying lengths: Short (59 chars), Mid (152 chars), and Long (266 chars).
 
 
91
 
92
- **Metrics:**
93
- - **Characters per Second**: Measures throughput by dividing the number of input characters by the time required to generate audio. Higher is better.
94
- - **Real-time Factor (RTF)**: Measures the time taken to synthesize audio relative to its duration. Lower is better (e.g., RTF of 0.1 means it takes 0.1 seconds to generate one second of audio).
95
 
96
- ### Characters per Second
97
- | System | Short (59 chars) | Mid (152 chars) | Long (266 chars) |
98
- |--------|-----------------|----------------|-----------------|
99
- | **Supertonic** (M4 pro - CPU) | 912 | 1048 | 1263 |
100
- | **Supertonic** (M4 pro - WebGPU) | 996 | 1801 | 2509 |
101
- | **Supertonic** (RTX4090) | 2615 | 6548 | 12164 |
102
- | `API` [ElevenLabs Flash v2.5](https://elevenlabs.io/docs/api-reference/text-to-speech/convert) | 144 | 209 | 287 |
103
- | `API` [OpenAI TTS-1](https://platform.openai.com/docs/guides/text-to-speech) | 37 | 55 | 82 |
104
- | `API` [Gemini 2.5 Flash TTS](https://ai.google.dev/gemini-api/docs/speech-generation) | 12 | 18 | 24 |
105
- | `API` [Supertone Sona speech 1](https://docs.supertoneapi.com/en/api-reference/endpoints/text-to-speech) | 38 | 64 | 92 |
106
- | `Open` [Kokoro](https://github.com/hexgrad/kokoro/) | 104 | 107 | 117 |
107
- | `Open` [NeuTTS Air](https://github.com/neuphonic/neutts-air) | 37 | 42 | 47 |
108
 
109
- > **Notes:**
110
- > `API` = Cloud-based API services (measured from Seoul)
111
- > `Open` = Open-source models
112
- > Supertonic (M4 pro - CPU) and (M4 pro - WebGPU): Tested with ONNX
113
- > Supertonic (RTX4090): Tested with PyTorch model
114
- > Kokoro: Tested on M4 Pro CPU with ONNX
115
- > NeuTTS Air: Tested on M4 Pro CPU with Q8-GGUF
116
 
117
- ### Real-time Factor
118
 
119
- | System | Short (59 chars) | Mid (152 chars) | Long (266 chars) |
120
- |--------|-----------------|----------------|-----------------|
121
- | **Supertonic** (M4 pro - CPU) | 0.015 | 0.013 | 0.012 |
122
- | **Supertonic** (M4 pro - WebGPU) | 0.014 | 0.007 | 0.006 |
123
- | **Supertonic** (RTX4090) | 0.005 | 0.002 | 0.001 |
124
- | `API` [ElevenLabs Flash v2.5](https://elevenlabs.io/docs/api-reference/text-to-speech/convert) | 0.133 | 0.077 | 0.057 |
125
- | `API` [OpenAI TTS-1](https://platform.openai.com/docs/guides/text-to-speech) | 0.471 | 0.302 | 0.201 |
126
- | `API` [Gemini 2.5 Flash TTS](https://ai.google.dev/gemini-api/docs/speech-generation) | 1.060 | 0.673 | 0.541 |
127
- | `API` [Supertone Sona speech 1](https://docs.supertoneapi.com/en/api-reference/endpoints/text-to-speech) | 0.372 | 0.206 | 0.163 |
128
- | `Open` [Kokoro](https://github.com/hexgrad/kokoro/) | 0.144 | 0.124 | 0.126 |
129
- | `Open` [NeuTTS Air](https://github.com/neuphonic/neutts-air) | 0.390 | 0.338 | 0.343 |
130
 
131
- <details>
132
- <summary><b>Additional Performance Data (5-step inference)</b></summary>
 
133
 
134
- <br>
135
 
136
- **Characters per Second (5-step)**
137
 
138
- | System | Short (59 chars) | Mid (152 chars) | Long (266 chars) |
139
- |--------|-----------------|----------------|-----------------|
140
- | **Supertonic** (M4 pro - CPU) | 596 | 691 | 850 |
141
- | **Supertonic** (M4 pro - WebGPU) | 570 | 1118 | 1546 |
142
- | **Supertonic** (RTX4090) | 1286 | 3757 | 6242 |
143
 
144
- **Real-time Factor (5-step)**
145
 
146
- | System | Short (59 chars) | Mid (152 chars) | Long (266 chars) |
147
- |--------|-----------------|----------------|-----------------|
148
- | **Supertonic** (M4 pro - CPU) | 0.023 | 0.019 | 0.018 |
149
- | **Supertonic** (M4 pro - WebGPU) | 0.024 | 0.012 | 0.010 |
150
- | **Supertonic** (RTX4090) | 0.011 | 0.004 | 0.002 |
151
 
152
- </details>
 
 
 
 
 
 
 
 
 
153
 
154
  ## License
155
 
156
- This projects sample code is released under the MIT License. - see the [LICENSE](https://github.com/supertone-inc/supertonic?tab=MIT-1-ov-file) for details.
157
 
158
- The accompanying model is released under the OpenRAIL-M License. - see the [LICENSE](https://huggingface.co/Supertone/supertonic/blob/main/LICENSE) file for details.
159
 
160
- This model was trained using PyTorch, which is licensed under the BSD 3-Clause License but is not redistributed with this project. - see the [LICENSE](https://docs.pytorch.org/FBGEMM/general/License.html) for details.
161
 
162
- Copyright (c) 2025 Supertone Inc.
 
1
  ---
2
  license: openrail
3
  language:
4
+ - en
5
+ - ko
6
+ - ja
7
+ - ar
8
+ - bg
9
+ - cs
10
+ - da
11
+ - de
12
+ - el
13
+ - es
14
+ - et
15
+ - fi
16
+ - fr
17
+ - hi
18
+ - hr
19
+ - hu
20
+ - id
21
+ - it
22
+ - lt
23
+ - lv
24
+ - nl
25
+ - pl
26
+ - pt
27
+ - ro
28
+ - ru
29
+ - sk
30
+ - sl
31
+ - sv
32
+ - tr
33
+ - uk
34
+ - vi
35
  pipeline_tag: text-to-speech
36
+ tags:
37
+ - text-to-speech
38
+ - speech-synthesis
39
+ - tts
40
+ - onnx
41
+ - multilingual
42
+ - on-device
43
  library_name: supertonic
44
  ---
45
 
46
+ # Supertonic 3 | Lightning Fast, On-Device, Accurate TTS
47
 
48
+ ![Supertonic 3 Preview](img/Supertonic3_HeroImage.png)
49
 
50
+ <p align="center">
51
+ <a href="https://huggingface.co/spaces/Supertone/supertonic-3"><img src="https://img.shields.io/badge/Demo-Hugging_Face-yellow?style=for-the-badge" alt="Demo"></a>
52
+ <a href="https://github.com/supertone-inc/supertonic"><img src="https://img.shields.io/badge/Code-GitHub-black?style=for-the-badge&logo=github" alt="Code"></a>
53
+ <a href="https://pypi.org/project/supertonic/"><img src="https://img.shields.io/badge/Python-SDK-blue?style=for-the-badge&logo=python" alt="Python SDK"></a>
54
+ </p>
55
 
56
+ **Supertonic** is a lightweight text-to-speech system for local inference. It runs with ONNX Runtime entirely on your device, with no cloud call required for synthesis.
 
 
 
57
 
58
+ **Supertonic 3** expands the open-weight release from 5 to **31 languages**, improves reading stability, and reduces repeat/skip failures.
59
 
60
+ ## Quick Start
 
 
 
 
 
61
 
62
+ Install the Python SDK and generate speech immediately. On first run, the SDK downloads the model assets from Hugging Face.
63
 
64
+ ```bash
65
+ pip install supertonic
66
+ ```
 
 
 
67
 
68
+ ```python
69
+ from supertonic import TTS
70
 
71
+ tts = TTS(auto_download=True)
72
+ style = tts.get_voice_style(voice_name="M1")
73
 
74
+ text = "A gentle breeze moved through the open window while everyone listened to the story."
75
+ wav, duration = tts.synthesize(text, voice_style=style, lang="en")
76
 
77
+ tts.save_audio(wav, "output.wav")
78
+ print(f"Generated {duration:.2f}s of audio")
79
+ ```
 
 
 
 
 
 
 
 
 
 
80
 
81
+ ## What's New in Supertonic 3
82
 
83
+ - **31 languages**: expanded from the 5-language Supertonic 2 release.
84
+ - **More stable reading**: fewer repeat and skip failures, especially on short and long utterances.
85
+ - **Higher speaker similarity**: improved similarity across the shared-language set compared with Supertonic 2.
86
+ - **Expression tags**: supports simple tags such as `<laugh>`, `<breath>`, and `<sigh>`.
87
 
88
+ ## Custom Voices and Audio Samples
89
 
90
+ The open-weight package includes fixed preset voice styles for immediate local inference. If you want to hear how Supertonic 3 performs with zero-shot custom voice styles, visit the [Audio Sample Demo](https://supertonic3.github.io/) to compare reference audio and generated speech across several use cases. To create your own Supertonic 3 voice-style JSON from reference audio, use [Supertonic Voice Builder](https://supertonic.supertone.ai/voice-builder); purchased Voice Builder styles include downloadable embeddings for both Supertonic 2 and Supertonic 3.
 
 
 
91
 
92
+ Here are a few reference/generated pairs from the audio sample demo:
93
 
94
+ **Call center, English**
95
+ Text: Good morning, thank you for calling. How can I help you today?
96
 
97
+ | Reference voice | Supertonic 3 output |
98
+ |---|---|
99
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/nora_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/nora_supertonic3.wav"></audio> |
100
+
101
+ **Character voice, Japanese**
102
+ Text: ふふっ、退屈してたところなの。ちょうどいい遊び相手、見つけたかも♪
103
+
104
+ | Reference voice | Supertonic 3 output |
105
+ |---|---|
106
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/moka_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/moka_supertonic3.wav"></audio> |
107
+
108
+ **Elder character voice, Korean**
109
+ Text: 혼자 떠나기엔 길이 험하구나. 이 낡은 검을 가져가거라. 언젠가 어둠이 네 이름을 부르더라도, 부디 빛을 잊지 말거라.
110
+
111
+ | Reference voice | Supertonic 3 output |
112
+ |---|---|
113
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/alphonse_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/alphonse_supertonic3.wav"></audio> |
114
+
115
+ **Audiobook, English**
116
+ Text: I was not afraid of silence. I had lived with it long enough to know that, sometimes, it speaks more honestly than people do.
117
+
118
+ | Reference voice | Supertonic 3 output |
119
+ |---|---|
120
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/luna_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/luna_supertonic3.wav"></audio> |
121
+
122
+ **Audiobook, Japanese**
123
+ Text: その朝、ロンドンの霧はいつになく低く垂れこめていた。私はただの訪問者だと思っていたが、ホームズの目はすでに別の結論にたどり着いていた。
124
+
125
+ | Reference voice | Supertonic 3 output |
126
+ |---|---|
127
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/watson_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/watson_supertonic3.wav"></audio> |
128
 
129
+ **News, English**
130
+ Text: Here’s a story worth paying attention to. Supertone has released Supertonic 3, its on-device TTS model. This version expands support to thirty-one languages and improves reading stability.
 
131
 
132
+ | Reference voice | Supertonic 3 output |
133
+ |---|---|
134
+ | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/keld_reference.wav"></audio> | <audio controls preload="metadata" src="https://huggingface.co/Supertone/supertonic-3/resolve/main/audio_samples/keld_supertonic3.wav"></audio> |
135
 
136
+ ## Performance Highlights
137
 
138
+ Supertonic 3 is designed for practical on-device inference: compact enough to run locally, while staying competitive with much larger open TTS systems.
 
 
 
139
 
140
+ ### Reading Accuracy
141
 
142
+ <p align="center">
143
+ <img src="img/metrics/s3_vs_measured_wer_range_voxcpm2.png" alt="Supertonic 3 reading accuracy compared with measured model ranges and VoxCPM2">
144
+ </p>
145
 
146
+ Across measured languages, Supertonic 3 stays within a competitive WER/CER range against much larger open TTS models such as VoxCPM2, while preserving a lightweight on-device deployment path. Asterisked languages use CER; the others use WER.
 
 
147
 
148
+ ### Supertonic 2 to Supertonic 3
 
 
 
 
 
 
 
 
 
 
 
149
 
150
+ <p align="center">
151
+ <img src="img/metrics/supertonic2_vs_3_comparison.png" alt="Supertonic 2 and Supertonic 3 comparison">
152
+ </p>
 
 
 
 
153
 
154
+ Compared with Supertonic 2, Supertonic 3 reduces repeat and skip failures, improves speaker similarity across the shared-language set, and expands language coverage from 5 to 31 languages.
155
 
156
+ ### Runtime Footprint
 
 
 
 
 
 
 
 
 
 
157
 
158
+ <p align="center">
159
+ <img src="img/metrics/runtime_cpu_gpu_latency_memory.png" alt="Supertonic CPU runtime compared with GPU baselines">
160
+ </p>
161
 
162
+ Supertonic 3 runs fast on CPU, even compared with larger baselines measured on A100 GPU, and uses substantially less memory. It does not require a GPU, which makes local, browser, and edge deployment much easier.
163
 
164
+ ### Model Size
165
 
166
+ <p align="center">
167
+ <img src="img/metrics/model_size_comparison.png" alt="Model size comparison">
168
+ </p>
 
 
169
 
170
+ At about 99M parameters across the public ONNX assets, Supertonic 3 is much smaller than 0.7B to 2B class open TTS systems. The smaller model size is a practical advantage for download size, startup time, and on-device inference.
171
 
172
+ ## Supported Languages
 
 
 
 
173
 
174
+ | Code | Language | Code | Language | Code | Language | Code | Language |
175
+ |------|----------|------|----------|------|----------|------|----------|
176
+ | `en` | English | `ko` | Korean | `ja` | Japanese | `ar` | Arabic |
177
+ | `bg` | Bulgarian | `cs` | Czech | `da` | Danish | `de` | German |
178
+ | `el` | Greek | `es` | Spanish | `et` | Estonian | `fi` | Finnish |
179
+ | `fr` | French | `hi` | Hindi | `hr` | Croatian | `hu` | Hungarian |
180
+ | `id` | Indonesian | `it` | Italian | `lt` | Lithuanian | `lv` | Latvian |
181
+ | `nl` | Dutch | `pl` | Polish | `pt` | Portuguese | `ro` | Romanian |
182
+ | `ru` | Russian | `sk` | Slovak | `sl` | Slovenian | `sv` | Swedish |
183
+ | `tr` | Turkish | `uk` | Ukrainian | `vi` | Vietnamese | | |
184
 
185
  ## License
186
 
187
+ This project's sample code is released under the MIT License. See the [GitHub repository](https://github.com/supertone-inc/supertonic) for details.
188
 
189
+ The accompanying model is released under the OpenRAIL-M License. See the [LICENSE](https://huggingface.co/Supertone/supertonic-3/blob/main/LICENSE) file in this repository for details.
190
 
191
+ This model was trained using PyTorch, which is licensed under the BSD 3-Clause License but is not redistributed with this project. See the [PyTorch license](https://docs.pytorch.org/FBGEMM/general/License.html) for details.
192
 
193
+ Copyright (c) 2026 Supertone Inc.
tts/audio_samples/alphonse_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:09e613442124ee0cb31146431bbe0b3acd727569a55fc0ae4b4082b5de27c9f3
3
+ size 1152044
tts/audio_samples/alphonse_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f3dacbfa5695d6416fb46a3ea72e202e16a467a4cb5ead9425073ef83596811c
3
+ size 970796
tts/audio_samples/keld_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8d7f3c2b15ee6ebafe88307658bf0787d3ca19f6347fd9e936e7bff786d1f70a
3
+ size 1152044
tts/audio_samples/keld_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:818c2b25bbf3e568ae8d4aeea5441605ed3e124ab28d746928972066902b35d9
3
+ size 1148972
tts/audio_samples/luna_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1fcec63c22ad76711ec9835a6ca21cb84227045e3aad808f841bcbec455a9470
3
+ size 1152044
tts/audio_samples/luna_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:34527bf7ed968ebc5024f985d48ccf06c5c4418fb2d7fc7e3fb7a873e367c273
3
+ size 712748
tts/audio_samples/moka_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad50e1f13c18aa6af2e0f518714675c03ed98f0e85653a642527f56c2d181a56
3
+ size 480044
tts/audio_samples/moka_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bec7d6a5261240935d8436f3ada17aa50774878e8e6ad1696d131e4ec4ecd5f3
3
+ size 479276
tts/audio_samples/nora_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a59576e7ffe84093439924f14d7070fb8174f8306c27049c00e63d747434a772
3
+ size 264644
tts/audio_samples/nora_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d11415a428949df69191361b9dc5f567aaf6eccd89c13013c2fbb381b353321
3
+ size 374828
tts/audio_samples/watson_reference.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5449908651219298eab47a32a04b96291baceea00e772ea9cb16853a93127c30
3
+ size 2304044
tts/audio_samples/watson_supertonic3.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8ffb0051f00e3f6476694604a3d21f6e87b3570b9b73fc2fdb9560c9e6f1c67
3
+ size 1019948
tts/config.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "model_name": "Supertonic",
3
  "model_type": "onnx",
4
  "description": "This is a stub config for Hugging Face download counting. The actual model is located at onnx/"
5
- }
 
1
  {
2
+ "model_name": "Supertonic 3",
3
  "model_type": "onnx",
4
  "description": "This is a stub config for Hugging Face download counting. The actual model is located at onnx/"
5
+ }
tts/img/Supertonic3_HeroImage.png ADDED

Git LFS Details

  • SHA256: 7498880b738494d758a6e37b0c730c46ad0f22775c5076cb0e3ad4062ef8e8be
  • Pointer size: 132 Bytes
  • Size of remote file: 1.5 MB
tts/img/metrics/model_size_comparison.png ADDED
tts/img/metrics/runtime_cpu_gpu_latency_memory.png ADDED

Git LFS Details

  • SHA256: a80c0def839ea570b207e06cc1d3d5aa99e58a24dc85b3dda2688b2dd2c79ec0
  • Pointer size: 131 Bytes
  • Size of remote file: 262 kB
tts/img/metrics/s3_vs_measured_wer_range_voxcpm2.png ADDED

Git LFS Details

  • SHA256: b04a427ca1f7a97b6021ba4c518f3318104d2e85023ac0af3373b844021a1db1
  • Pointer size: 131 Bytes
  • Size of remote file: 198 kB
tts/img/metrics/supertonic2_vs_3_comparison.png ADDED

Git LFS Details

  • SHA256: b40da99bfe032f8ce4713bb18305842a1a9a23b01a9642992721a4172949fb28
  • Pointer size: 131 Bytes
  • Size of remote file: 162 kB
tts/onnx/duration_predictor.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b861580c56a0cba2a2b82aa697ecb3c5a163c3240c60a0ddfac369d21d054092
3
- size 1500789
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c3eb91414d5ff8a7a239b7fe9e34e7e2bf8a8140d8375ffb14718b1c639325db
3
+ size 3700147
tts/onnx/text_encoder.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ba0c8ea74aeb5df00d21a89b8d47c71317f47120232e3deef95024dba37dbd88
3
- size 27348373
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c7befd5ea8c3119769e8a6c1486c4edc6a3bc8365c67621c881bbb774b9902ff
3
+ size 36416150
tts/onnx/tts.json CHANGED
@@ -1,12 +1,6 @@
1
  {
2
- "tts_version": "v1.5.0",
3
- "split": "opensource-en",
4
- "ttl_ckpt_path": "unknown.pt",
5
- "dp_ckpt_path": "unknown.pt",
6
- "ae_ckpt_path": "unknown.pt",
7
- "ttl_train": "unknown",
8
- "dp_train": "unknown",
9
- "ae_train": "unknown",
10
  "ttl": {
11
  "latent_dim": 24,
12
  "chunk_compress_factor": 6,
@@ -17,9 +11,9 @@
17
  "scale": 0.25
18
  },
19
  "text_encoder": {
20
- "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json",
 
21
  "text_embedder": {
22
- "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json",
23
  "char_emb_dim": 256
24
  },
25
  "convnext": {
@@ -30,10 +24,10 @@
30
  "dilation_lst": [
31
  1,
32
  1,
33
- 1,
34
- 1,
35
- 1,
36
- 1
37
  ]
38
  },
39
  "attn_encoder": {
@@ -49,7 +43,7 @@
49
  }
50
  },
51
  "flow_matching": {
52
- "sig_min": 0
53
  },
54
  "style_encoder": {
55
  "proj_in": {
@@ -97,6 +91,8 @@
97
  "style_value_dim": 256
98
  },
99
  "vector_field": {
 
 
100
  "proj_in": {
101
  "ldim": 24,
102
  "chunk_compress_factor": 6,
@@ -119,7 +115,8 @@
119
  "text_cond_layer": {
120
  "idim": 512,
121
  "text_dim": 256,
122
- "n_heads": 4,
 
123
  "use_residual": true,
124
  "rotary_base": 10000,
125
  "rotary_scale": 10
@@ -127,7 +124,7 @@
127
  "convnext_0": {
128
  "idim": 512,
129
  "ksz": 5,
130
- "intermediate_dim": 1024,
131
  "num_layers": 4,
132
  "dilation_lst": [
133
  1,
@@ -139,7 +136,7 @@
139
  "convnext_1": {
140
  "idim": 512,
141
  "ksz": 5,
142
- "intermediate_dim": 1024,
143
  "num_layers": 1,
144
  "dilation_lst": [
145
  1
@@ -148,7 +145,7 @@
148
  "convnext_2": {
149
  "idim": 512,
150
  "ksz": 5,
151
- "intermediate_dim": 1024,
152
  "num_layers": 1,
153
  "dilation_lst": [
154
  1
@@ -158,7 +155,7 @@
158
  "last_convnext": {
159
  "idim": 512,
160
  "ksz": 5,
161
- "intermediate_dim": 1024,
162
  "num_layers": 4,
163
  "dilation_lst": [
164
  1,
@@ -246,9 +243,7 @@
246
  },
247
  "sentence_encoder": {
248
  "char_emb_dim": 64,
249
- "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json",
250
  "text_embedder": {
251
- "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json",
252
  "char_emb_dim": 64
253
  },
254
  "convnext": {
@@ -313,4 +308,4 @@
313
  "n_layer": 2
314
  }
315
  }
316
- }
 
1
  {
2
+ "tts_version": "v1.7.3",
3
+ "split": "opensource-multilingual",
 
 
 
 
 
 
4
  "ttl": {
5
  "latent_dim": 24,
6
  "chunk_compress_factor": 6,
 
11
  "scale": 0.25
12
  },
13
  "text_encoder": {
14
+ "n_langs": 0,
15
+ "lang_emb_dim": 0,
16
  "text_embedder": {
 
17
  "char_emb_dim": 256
18
  },
19
  "convnext": {
 
24
  "dilation_lst": [
25
  1,
26
  1,
27
+ 2,
28
+ 2,
29
+ 4,
30
+ 4
31
  ]
32
  },
33
  "attn_encoder": {
 
43
  }
44
  },
45
  "flow_matching": {
46
+ "sig_min": 1e-08
47
  },
48
  "style_encoder": {
49
  "proj_in": {
 
91
  "style_value_dim": 256
92
  },
93
  "vector_field": {
94
+ "n_langs": 0,
95
+ "lang_emb_dim": 0,
96
  "proj_in": {
97
  "ldim": 24,
98
  "chunk_compress_factor": 6,
 
115
  "text_cond_layer": {
116
  "idim": 512,
117
  "text_dim": 256,
118
+ "n_heads": 8,
119
+ "n_units": 512,
120
  "use_residual": true,
121
  "rotary_base": 10000,
122
  "rotary_scale": 10
 
124
  "convnext_0": {
125
  "idim": 512,
126
  "ksz": 5,
127
+ "intermediate_dim": 2048,
128
  "num_layers": 4,
129
  "dilation_lst": [
130
  1,
 
136
  "convnext_1": {
137
  "idim": 512,
138
  "ksz": 5,
139
+ "intermediate_dim": 2048,
140
  "num_layers": 1,
141
  "dilation_lst": [
142
  1
 
145
  "convnext_2": {
146
  "idim": 512,
147
  "ksz": 5,
148
+ "intermediate_dim": 2048,
149
  "num_layers": 1,
150
  "dilation_lst": [
151
  1
 
155
  "last_convnext": {
156
  "idim": 512,
157
  "ksz": 5,
158
+ "intermediate_dim": 2048,
159
  "num_layers": 4,
160
  "dilation_lst": [
161
  1,
 
243
  },
244
  "sentence_encoder": {
245
  "char_emb_dim": 64,
 
246
  "text_embedder": {
 
247
  "char_emb_dim": 64
248
  },
249
  "convnext": {
 
308
  "n_layer": 2
309
  }
310
  }
311
+ }
tts/onnx/tts.yml DELETED
@@ -1,223 +0,0 @@
1
- tts_version: "v1.5.0"
2
-
3
- split: "opensource-en"
4
-
5
- ttl_ckpt_path: "unknown.pt"
6
-
7
- dp_ckpt_path: "unknown.pt"
8
-
9
- ae_ckpt_path: "unknown.pt"
10
-
11
- ttl_train: "unknown"
12
-
13
- dp_train: "unknown"
14
-
15
- ae_train: "unknown"
16
-
17
- ttl:
18
- latent_dim: 24
19
- chunk_compress_factor: 6
20
- batch_expander:
21
- n_batch_expand: 6
22
- normalizer:
23
- scale: 0.25
24
- text_encoder:
25
- char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json"
26
- text_embedder:
27
- char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json"
28
- char_emb_dim: 256
29
- convnext:
30
- idim: 256
31
- ksz: 5
32
- intermediate_dim: 1024
33
- num_layers: 6
34
- dilation_lst: [1, 1, 1, 1, 1, 1]
35
- attn_encoder:
36
- hidden_channels: 256
37
- filter_channels: 1024
38
- n_heads: 4
39
- n_layers: 4
40
- p_dropout: 0.0
41
- proj_out:
42
- idim: 256
43
- odim: 256
44
- flow_matching:
45
- sig_min: 0
46
- style_encoder:
47
- proj_in:
48
- ldim: 24
49
- chunk_compress_factor: 6
50
- odim: 256
51
- convnext:
52
- idim: 256
53
- ksz: 5
54
- intermediate_dim: 1024
55
- num_layers: 6
56
- dilation_lst: [1, 1, 1, 1, 1, 1]
57
- style_token_layer:
58
- input_dim: 256
59
- n_style: 50
60
- style_key_dim: 256
61
- style_value_dim: 256
62
- prototype_dim: 256
63
- n_units: 256
64
- n_heads: 2
65
- speech_prompted_text_encoder:
66
- text_dim: 256
67
- style_dim: 256
68
- n_units: 256
69
- n_heads: 2
70
- uncond_masker:
71
- prob_both_uncond: 0.04
72
- prob_text_uncond: 0.01
73
- std: 0.1
74
- text_dim: 256
75
- n_style: 50
76
- style_key_dim: 256
77
- style_value_dim: 256
78
- vector_field:
79
- proj_in:
80
- ldim: 24
81
- chunk_compress_factor: 6
82
- odim: 512
83
- time_encoder:
84
- time_dim: 64
85
- hdim: 256
86
- main_blocks:
87
- n_blocks: 4
88
- time_cond_layer:
89
- idim: 512
90
- time_dim: 64
91
- style_cond_layer:
92
- idim: 512
93
- style_dim: 256
94
- text_cond_layer:
95
- idim: 512
96
- text_dim: 256
97
- n_heads: 4
98
- use_residual: True
99
- rotary_base: 10000
100
- rotary_scale: 10
101
- convnext_0:
102
- idim: 512
103
- ksz: 5
104
- intermediate_dim: 1024
105
- num_layers: 4
106
- dilation_lst: [1, 2, 4, 8]
107
- convnext_1:
108
- idim: 512
109
- ksz: 5
110
- intermediate_dim: 1024
111
- num_layers: 1
112
- dilation_lst: [1]
113
- convnext_2:
114
- idim: 512
115
- ksz: 5
116
- intermediate_dim: 1024
117
- num_layers: 1
118
- dilation_lst: [1]
119
- last_convnext:
120
- idim: 512
121
- ksz: 5
122
- intermediate_dim: 1024
123
- num_layers: 4
124
- dilation_lst: [1, 1, 1, 1]
125
- proj_out:
126
- idim: 512
127
- chunk_compress_factor: 6
128
- ldim: 24
129
-
130
- ae:
131
- sample_rate: 44100
132
- n_delay: 0
133
- base_chunk_size: 512
134
- chunk_compress_factor: 1
135
- ldim: 24
136
- encoder:
137
- spec_processor:
138
- n_fft: 2048
139
- win_length: 2048
140
- hop_length: 512
141
- n_mels: 228
142
- sample_rate: 44100
143
- eps: 1e-05
144
- norm_mean: 0.0
145
- norm_std: 1.0
146
- ksz_init: 7
147
- ksz: 7
148
- num_layers: 10
149
- dilation_lst: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
150
- intermediate_dim: 2048
151
- idim: 1253
152
- hdim: 512
153
- odim: 24
154
- decoder:
155
- ksz_init: 7
156
- ksz: 7
157
- num_layers: 10
158
- dilation_lst: [1, 2, 4, 1, 2, 4, 1, 1, 1, 1]
159
- intermediate_dim: 2048
160
- idim: 24
161
- hdim: 512
162
- head:
163
- idim: 512
164
- hdim: 2048
165
- odim: 512
166
- ksz: 3
167
-
168
- dp:
169
- latent_dim: 24
170
- chunk_compress_factor: 6
171
- normalizer:
172
- scale: 1.0
173
- sentence_encoder:
174
- char_emb_dim: 64
175
- char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json"
176
- text_embedder:
177
- char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json"
178
- char_emb_dim: 64
179
- convnext:
180
- idim: 64
181
- ksz: 5
182
- intermediate_dim: 256
183
- num_layers: 6
184
- dilation_lst: [1, 1, 1, 1, 1, 1]
185
- attn_encoder:
186
- hidden_channels: 64
187
- filter_channels: 256
188
- n_heads: 2
189
- n_layers: 2
190
- p_dropout: 0.0
191
- proj_out:
192
- idim: 64
193
- odim: 64
194
- style_encoder:
195
- proj_in:
196
- ldim: 24
197
- chunk_compress_factor: 6
198
- odim: 64
199
- convnext:
200
- idim: 64
201
- ksz: 5
202
- intermediate_dim: 256
203
- num_layers: 4
204
- dilation_lst: [1, 1, 1, 1]
205
- style_token_layer:
206
- input_dim: 64
207
- n_style: 8
208
- style_key_dim: 0
209
- style_value_dim: 16
210
- prototype_dim: 64
211
- n_units: 64
212
- n_heads: 2
213
- predictor:
214
- sentence_dim: 64
215
- n_style: 8
216
- style_dim: 16
217
- hdim: 128
218
- n_layer: 2
219
-
220
- unicode_indexer_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/unicode_indexer.npy"
221
- unicode_indexer_json_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/unicode_indexer.json"
222
- window_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/window.json"
223
- filter_bank_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/filter_bank.json"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tts/onnx/unicode_indexer.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/onnx/vector_estimator.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b3f82ecd2e9decc4e2236048b03628a1c1d5f14a792ba274a59b7325107aa6a6
3
- size 132471364
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:883ac868ea0275ef0e991524dc64f16b3c0376efd7c320af6b53f5b780d7c61c
3
+ size 256534781
tts/onnx/vocoder.onnx CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:19bd51f47a186069c752403518a40f7ea4c647455056d2511f7249691ecddf7c
3
- size 101405066
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:085de76dd8e8d5836d6ca66826601f615939218f90e519f70ee8a36ed2a4c4ba
3
+ size 101424195
tts/voice_styles/F1.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/F2.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/F3.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/F4.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/F5.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/M1.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/M2.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/M3.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/M4.json CHANGED
The diff for this file is too large to render. See raw diff
 
tts/voice_styles/M5.json CHANGED
The diff for this file is too large to render. See raw diff