NeuTTS Nano Multilingual (Apple Silicon)
Original models: neuphonic/neutts-nano, neuphonic/neutts-nano-french, neuphonic/neutts-nano-german, neuphonic/neutts-nano-spanish (Neuphonic)
Compact on-device multilingual neural TTS packaged by TheStage AI for Apple Silicon — the production NeuTTS path for voice agents.
| Runtime | TheStage Apple SDK (NeuTTSMultilingualPipeline) |
| Sample rate | 24 000 Hz mono |
| HF engines | TheStageAI/neutts-nano-multilingual |
Overview
This repo hosts CoreML engine bundles for NeuTTS on the TheStage Apple SDK. Point engines_path at the repo id; the SDK downloads and caches engines automatically. start_model auto-routes NeuTTS vs Qwen3-TTS from the bundle layout.
System Requirements
| Property | Value |
|---|---|
| Hardware | Apple Silicon Mac, or physical iPhone / iPad |
| macOS | 15.0+ |
| iOS | 18.0+ |
| Xcode | 16.0+ |
| Swift | 6.0+ |
| Flutter (optional) | 3.24+ |
Simulator is not supported — run on real Apple Silicon hardware.
TheStage AI Access Token
Create a token at app.thestage.ai and pass it to the SDK:
try await TheStageAI.shared.initialize(apiToken: "th_…")
await TheStageFlutterSDK.initialize(api_token: 'th_…');
Token is checked online in initialize (once per app process when reachable). Inference runs fully on-device. Offline initialize fails — reconnect and call initialize again.
TheStage Apple SDK
Docs: TheStage Apple SDK · TTS · Repo: TheStage Apple SDK
Installation (SwiftPM)
In Xcode: File → Add Package Dependencies…, paste https://github.com/TheStageAI/AppleSDK.git, and add the TheStageSDK product. Or in Package.swift:
.package(
url: "https://github.com/TheStageAI/AppleSDK.git",
exact: Version(1, 1, 0)
)
Installation (Flutter / iOS)
# pubspec.yaml
dependencies:
thestage_apple_sdk:
git:
url: https://github.com/TheStageAI/AppleSDK.git
path: plugin/thestage_apple_sdk
ref: 1.1.0
Swift — batch
import TheStageSDK
try await TheStageAI.shared.initialize(apiToken: "th_…")
let tts = try await NeuTTSMultilingualPipeline(
engines_path: "TheStageAI/neutts-nano-multilingual",
voice_id: "dave",
language: "english"
)
let result = tts.infer(text: "Hello, world!")
// result.samples: [Float] @ 24 kHz mono, [-1, 1]
print(result.sample_rate, result.duration, result.rtf)
Swift — streaming
let streamer = tts.open_streamer()
let consumer = Task {
for await chunk in streamer.output {
if let pcm = chunk.audio { player.enqueue(pcm) }
}
}
streamer.send("Hello, world. ")
streamer.send("This sentence streams as it synthesizes.")
streamer.stop_stream()
await consumer.value
Flutter (iOS)
import 'package:thestage_apple_sdk/thestage_apple_sdk.dart';
import 'dart:typed_data';
await TheStageFlutterSDK.initialize(api_token: 'th_…');
await TheStageFlutterSDK.start_model(
model_name: 'tts',
engines_path: 'TheStageAI/neutts-nano-multilingual',
config: {'voice_id': 'dave', 'language': 'english'},
);
final result = await TheStageFlutterSDK.infer(
model_name: 'tts',
input_json: {'text': 'Hello, world!'},
);
final audio = result[0]['audio'] as Float32List;
final sampleRate = result[0]['sample_rate'] as int; // 24000
Audio contract
| Output | 24 kHz mono Float / Float32List in [-1.0, 1.0] |
| Config | voice_id, language (NeuTTS multilingual) |
On-device latency
Release build on Apple M2 Max (NPU / ANE), macOS 26.2 (guidance, not an SLA):
| Metric | Value |
|---|---|
| Batch rtf | 2.66 |
| Stream rtfx | 2.95 |
| TTFA (s) | 0.36 |
| Process mem (MB) | ~215 |
Acknowledgments
This work builds on NeuTTS Nano Multilingual by Neuphonic:
- neuphonic/neutts-nano
- neuphonic/neutts-nano-french
- neuphonic/neutts-nano-german
- neuphonic/neutts-nano-spanish
Collection: https://huggingface.co/collections/neuphonic/neutts-nano-multilingual-collection.
Based on the NeuTTS Nano Multilingual Collection (EN/FR/DE/ES) and NeuCodec. This Apple Silicon package is produced by TheStage AI; it is not an official Neuphonic release.
Links
- Original model: neuphonic/neutts-nano
- Original model: neuphonic/neutts-nano-french
- Original model: neuphonic/neutts-nano-german
- Original model: neuphonic/neutts-nano-spanish
- Upstream collection: NeuTTS Nano Multilingual
- Platform: app.thestage.ai
- TheStage Apple SDK: github.com/TheStageAI/AppleSDK
- Docs: docs.thestage.ai
- Subscribe for updates: TheStageAI X
- Contact email: contact@thestage.ai
Model tree for TheStageAI/neutts-nano-multilingual
Base model
neuphonic/neutts-nano