NeuTTS Nano Multilingual (Apple Silicon)

On-Device Apple SDK

TheStage Apple SDK

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:

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


Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for TheStageAI/neutts-nano-multilingual

Quantized
(4)
this model

Collection including TheStageAI/neutts-nano-multilingual