MOSS-VoiceGenerator
Пакеты MLX опубликованы. SDK требует указанную ниже ветку проверки (черновик PR #541).
Нативный MLX создаёт голос по точному тексту и голосовой инструкции. Выход — моно PCM 24 кГц; эталонная запись не нужна.
MOSS-VoiceGenerator сохраняет языковые веса BF16 и кодек синтеза FP32. Для постепенной выдачи PCM используйте --stream. Не задавайте --language: укажите язык в --instruct. Завершение полностью выводит все шестнадцать кодовых книг.
Ветка проверки SDK
Ветка проверки 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Опубликованные пакеты MLX: aufklarer/MOSS-VoiceGenerator-MLX-bf16
Командная строка
.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Укажите один текст, --instruct и ровно один каталог пакета или ID совместимой модели. Эталонное аудио, фиксированные дикторы и пакетный ввод не поддерживаются.
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()Измерения на коротких текстах
M5 Pro, 48 GiB, Release. Один короткий нейтральный текст на язык; медиана трёх прогретых запросов после первого. Загрузка и проверка весов исключены; файловый кеш прогрет. RTF = время работы / длительность аудио: меньше означает быстрее. Физическая память — максимум процесса за загрузку и четыре запроса, в десятичных GB.
| Текст | Аудио (s) | Первый PCM, прогретый запуск (s) | RTF | Пиковая физическая память (GB) |
|---|---|---|---|---|
| Английский | 3.44 | 0.470 | 0.610 | 8.448 |
| Мандаринский | 4.88 | 0.457 | 0.572 | 8.619 |
Для английского аудио остаётся расхождение распознавателей: Parakeet добавляет в конце «and», а Qwen3-ASR точно распознаёт весь текст. Оба результата сохранены.
Область проверки
Качество выполнения инструкций ещё не оценивалось. Короткие тексты описывают лишь проверенную конфигурацию; проверка регрессии задержки остаётся без однозначного результата.