Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Supertonic iOS Example App

A minimal iOS demo that runs Supertonic (ONNX Runtime) on-device. The app shows:

  • Multiline text input
  • NFE (denoising steps) slider
  • Voice toggle (M/F)
  • 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.

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)

  1. 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/
  1. Generate the Xcode project with XcodeGen
xcodegen generate
open ExampleiOSApp.xcodeproj
  1. Open in Xcode and select your iPhone as the run destination
  • Targets → ExampleiOSApp → Signing & Capabilities: Select your Team
  • iOS Deployment Target: 15.0+
  1. 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/onnx and ios/ExampleiOSApp/voice_styles after 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: M1/M2/F1/F2 voice style selector (4 pre-extracted styles)
  • Generate: Runs end-to-end synthesis
  • Play/Stop: Controls playback of the last output
  • RTF: Shows Elapsed / Audio seconds for quick performance intuition