3.0 KiB
3.0 KiB
Supertonic iOS Example App
A minimal iOS demo that runs Supertonic 2 (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)
- Generate & Play buttons
- RTF display (Elapsed / Audio seconds)
All ONNX models/configs are reused from Supertonic/assets/onnx, and voice style JSON files from Supertonic/assets/voice_styles.
📰 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 | Models
2025.12.10 - Added 6 new voice styles (M3, M4, M5, F3, F4, F5). See Voices for details
2025.12.08 - Optimized ONNX models via OnnxSlim now available on Hugging Face Models
Prerequisites
- macOS 13+, Xcode 15+
- Swift 5.9+
- iOS 15+ device (recommended)
- Homebrew, XcodeGen
Install tools (if needed):
brew install xcodegen
Quick Start (zero-click in Xcode)
- Prepare assets next to the iOS target (one-time)
cd ios/ExampleiOSApp
mkdir -p onnx voice_styles
rsync -a ../../assets/onnx/ onnx/
rsync -a ../../assets/voice_styles/ voice_styles/
- Generate the Xcode project with XcodeGen
xcodegen generate
open ExampleiOSApp.xcodeproj
- Open in Xcode and select your iPhone as the run destination
- Targets → ExampleiOSApp → Signing & Capabilities: Select your Team
- iOS Deployment Target: 15.0+
- Build & Run on device
- Type text → adjust NFE/Voice → Tap Generate → Audio plays automatically
- An RTF line shows like:
RTF 0.30x · 3.04s / 10.11s
What's included (generated project)
- SwiftUI app files:
App.swift,ContentView.swift,TTSViewModel.swift,AudioPlayer.swift - Runtime wrapper:
TTSService.swift(includes TTS inference logic) - Resources (local, vendored in
ios/ExampleiOSApp/onnxandios/ExampleiOSApp/voice_stylesafter step 0)
These references are defined in project.yml and added to the app bundle by XcodeGen.
App Controls
- Text: Multiline
TextEditor - NFE: Denoising steps (default 5)
- Voice: M/F voice style selector
- Language: Language selector (English, 한국어, Español, Português, Français)
- 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