MOSS-VoiceGenerator

Experimental

Public MLX bundles are available. SDK support requires the review branch below (draft PR #541).

Native MLX voice design from an exact script and a voice instruction. Mono PCM at 24 kHz; no reference recording is required.

MOSS-VoiceGenerator retains BF16 language weights and the FP32 synthesis codec. Use --stream for incremental PCM. Omit --language and put language requirements in --instruct. Completion drains all sixteen codebooks.

SDK review branch

SDK review branch (PR #541): feat/instructtts-candidates-20261029

git clone --single-branch --branch feat/instructtts-candidates-20261029 https://github.com/soniqo/speech-swift.git
cd speech-swift
make build

Published MLX bundles: aufklarer/MOSS-VoiceGenerator-MLX-bf16

Command line

.build/release/speech speak "The little boat crossed the quiet lake before sunset." \
  --engine moss-voicegenerator \
  --moss-voicegenerator-model-id aufklarer/MOSS-VoiceGenerator-MLX-bf16 \
  --instruct "A warm adult female voice, speaking English slowly." \
  --stream --seed 42 --output moss.wav

Provide one text argument, --instruct, and exactly one bundle directory or compatible model ID. Reference audio, fixed speakers and batch input are unsupported.

Instruction TTS options

Swift API

import MossVoiceGeneratorTTS

let model = try await MossVoiceGeneratorModel.fromPretrained(
    modelId: "aufklarer/MOSS-VoiceGenerator-MLX-bf16")
let output = try await model.generate(
    text: "The little boat crossed the quiet lake before sunset.",
    instruction: "A warm adult female voice, speaking English slowly.",
    options: .init(maxFrames: 150, seed: 42))
let pcm = output.samples
model.unload()

Short-script runtime measurements

M5 Pro, 48 GiB, Release. One short neutral script per language; medians of three warm requests after the first. Loading and weight verification are excluded; filesystem caches were warm. RTF = wall time / audio duration, lower is faster. Physical memory is the process high-water across loading and four requests, in decimal GB.

ScriptAudio (s)Warm first PCM (s)RTFPeak physical memory (GB)
English3.440.4700.6108.448
Mandarin4.880.4570.5728.619

English timing audio has unresolved recognizer disagreement: Parakeet adds a final “and”; Qwen3-ASR matches the full script. Both results are retained.

Validation scope

Instruction-following quality is unscored. Short-script measurements describe the tested setup; existing-model latency certification remains inconclusive.

Native instruction TTS

Sources