MOSS-VoiceGenerator
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 buildPublished 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.wavProvide one text argument, --instruct, and exactly one bundle directory or compatible model ID. Reference audio, fixed speakers and batch input are unsupported.
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.
| Script | Audio (s) | Warm first PCM (s) | RTF | Peak physical memory (GB) |
|---|---|---|---|---|
| English | 3.44 | 0.470 | 0.610 | 8.448 |
| Mandarin | 4.88 | 0.457 | 0.572 | 8.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.