MOSS-VoiceGenerator

实验性

MLX 模型包已公开。SDK 支持需要下方审核分支(草稿 PR #541)。

原生 MLX 语音设计:输入原文和声音指令,输出 24 kHz 单声道 PCM,无需参考录音。

MOSS-VoiceGenerator 保留 BF16 语言模型权重和 FP32 合成编解码器。使用 --stream 输出增量 PCM。请省略 --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.440.4700.6108.448
普通话4.880.4570.5728.619

英语计时音频仍有识别器分歧:Parakeet 在末尾增加“and”,Qwen3-ASR 与完整原文一致。两份结果均保留。

验证范围

指令遵循质量尚未评分。短文本测量仅描述受测配置;现有模型的延迟回归认证仍无定论。

原生指令语音合成

来源