MOSS-VoiceGenerator

Experimental

Los paquetes MLX son públicos. El SDK requiere la rama de revisión indicada abajo (PR #541 en borrador).

Diseño de voz con MLX nativo a partir de un guion exacto y una instrucción. PCM mono a 24 kHz, sin grabación de referencia.

MOSS-VoiceGenerator conserva pesos de lenguaje BF16 y el códec de síntesis FP32. Use --stream para PCM incremental. Omita --language e indique el idioma en --instruct. La finalización vacía los dieciséis libros de códigos.

Rama de revisión del SDK

Rama de revisión del SDK (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

Paquetes MLX publicados: aufklarer/MOSS-VoiceGenerator-MLX-bf16

Línea de comandos

.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

Indique un texto, --instruct y exactamente un directorio de paquete o un ID de modelo compatible. No admite audio de referencia, voces fijas ni entrada por lotes.

Opciones de TTS por instrucciones

API Swift

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()

Mediciones con textos cortos

M5 Pro, 48 GiB, Release. Un texto neutro corto por idioma; medianas de tres solicitudes en caliente después de la primera. Se excluyen carga y verificación de pesos; la caché de archivos estaba caliente. RTF = tiempo de ejecución / duración del audio: menor es más rápido. La memoria física es el máximo del proceso durante la carga y las cuatro solicitudes, en GB decimales.

TextoAudio (s)Primer PCM en caliente (s)RTFMemoria física máxima (GB)
Inglés3.440.4700.6108.448
Mandarín4.880.4570.5728.619

El audio inglés de temporización presenta una discrepancia no resuelta: Parakeet añade “and” al final; Qwen3-ASR coincide con el texto completo. Se conservan ambos resultados.

Alcance de validación

El seguimiento de instrucciones aún no se ha puntuado. Las mediciones con textos cortos describen la configuración probada; la certificación de regresión de latencia sigue siendo inconclusa.

TTS nativo por instrucciones

Fuentes