supertonic 3

This commit is contained in:
haeon
2026-05-06 23:09:06 +02:00
parent 6fc89ea89e
commit 0a98c9f127
47 changed files with 530 additions and 411 deletions

View File

@@ -12,7 +12,7 @@ struct ContentView: View {
Spacer()
VStack(spacing: 12) {
Text("Supertonic 2 iOS Demo")
Text("Supertonic 3 iOS Demo")
.font(.title2.weight(.semibold))
.foregroundColor(.primary)

View File

@@ -6,17 +6,69 @@ final class TTSService {
enum Language: String, CaseIterable {
case en = "en"
case ko = "ko"
case ja = "ja"
case ar = "ar"
case bg = "bg"
case cs = "cs"
case da = "da"
case de = "de"
case el = "el"
case es = "es"
case pt = "pt"
case et = "et"
case fi = "fi"
case fr = "fr"
case hi = "hi"
case hr = "hr"
case hu = "hu"
case id = "id"
case it = "it"
case lt = "lt"
case lv = "lv"
case nl = "nl"
case pl = "pl"
case pt = "pt"
case ro = "ro"
case ru = "ru"
case sk = "sk"
case sl = "sl"
case sv = "sv"
case tr = "tr"
case uk = "uk"
case vi = "vi"
var displayName: String {
switch self {
case .en: return "English"
case .ko: return "한국어"
case .ja: return "日本語"
case .ar: return "العربية"
case .bg: return "Bulgarian"
case .cs: return "Czech"
case .da: return "Danish"
case .de: return "Deutsch"
case .el: return "Greek"
case .es: return "Español"
case .pt: return "Português"
case .et: return "Estonian"
case .fi: return "Finnish"
case .fr: return "Français"
case .hi: return "Hindi"
case .hr: return "Croatian"
case .hu: return "Hungarian"
case .id: return "Indonesian"
case .it: return "Italian"
case .lt: return "Lithuanian"
case .lv: return "Latvian"
case .nl: return "Dutch"
case .pl: return "Polish"
case .pt: return "Português"
case .ro: return "Romanian"
case .ru: return "Russian"
case .sk: return "Slovak"
case .sl: return "Slovenian"
case .sv: return "Swedish"
case .tr: return "Turkish"
case .uk: return "Ukrainian"
case .vi: return "Vietnamese"
}
}
}

View File

@@ -4,7 +4,7 @@ import AVFoundation
@MainActor
final class TTSViewModel: ObservableObject {
@Published var text: String = "This morning, I took a walk in the park, and the sound of the birds and the breeze was so pleasant that I stopped for a long time just to listen."
@Published var nfe: Double = 5
@Published var nfe: Double = 8
@Published var voice: TTSService.Voice = .male
@Published var language: TTSService.Language = .en
@Published var isGenerating: Bool = false

View File

@@ -1,10 +1,10 @@
# Supertonic iOS Example App
A minimal iOS demo that runs Supertonic 2 (ONNX Runtime) on-device. The app shows:
A minimal iOS demo that runs Supertonic 3 (ONNX Runtime) on-device. The app shows:
- Multiline text input
- NFE (denoising steps) slider
- Voice toggle (M/F)
- Language selector (en, ko, es, pt, fr)
- Language selector for 31 supported languages
- Generate & Play buttons
- RTF display (Elapsed / Audio seconds)
@@ -12,7 +12,7 @@ All ONNX models/configs are reused from `Supertonic/assets/onnx`, and voice styl
## 📰 Update News
**2026.01.06** - 🎉 **Supertonic 2** released with multilingual support! Now supports English (`en`), Korean (`ko`), Spanish (`es`), Portuguese (`pt`), and French (`fr`). [Demo](https://huggingface.co/spaces/Supertone/supertonic-2) | [Models](https://huggingface.co/Supertone/supertonic-2)
**2026.04.29** - 🎉 **Supertonic 3** released with 31-language support, improved reading accuracy, and v2-compatible public ONNX assets. [Demo](https://huggingface.co/spaces/Supertone/supertonic-3) | [Models](https://huggingface.co/Supertone/supertonic-3)
**2025.12.10** - Added [6 new voice styles](https://huggingface.co/Supertone/supertonic/tree/b10dbaf18b316159be75b34d24f740008fddd381) (M3, M4, M5, F3, F4, F5). See [Voices](https://supertone-inc.github.io/supertonic-py/voices/) for details
@@ -61,18 +61,13 @@ These references are defined in `project.yml` and added to the app bundle by Xco
## App Controls
- **Text**: Multiline `TextEditor`
- **NFE**: Denoising steps (default 5)
- **NFE**: Denoising steps (default 8)
- **Voice**: M/F voice style selector
- **Language**: Language selector (English, 한국어, Español, Português, Français)
- **Language**: Language selector for 31 supported languages
- **Generate**: Runs end-to-end synthesis
- **Play/Stop**: Controls playback of the last output
- **RTF**: Shows Elapsed / Audio seconds for quick performance intuition
## Multilingual Support
Supertonic 2 supports multiple languages. Select the appropriate language for your input text:
- **English (en)**: Default language
- **한국어 (ko)**: Korean
- **Español (es)**: Spanish
- **Português (pt)**: Portuguese
- **Français (fr)**: French
Supertonic 3 supports 31 languages. Select the appropriate language for your input text; see the main README for the full code list.