What
MOSS-VoiceGenerator creates a speaker from a written description instead of a reference WAV — "a warm male radio voice in his fifties, calm, never shrill" — and speaks the supplied text in it. Apache-2.0 weights, ~2B params, Chinese and English.
Would you welcome a port? And is anyone already working on it?
Why it fits here
- It slots into the existing
vdes task with --instruct, the same shape Qwen3-TTS VoiceDesign already uses. No new task type needed.
- It uses the MOSS audio tokenizer that
src/models/moss/shared/ already implements — same tokenizer as moss_tts_local, the model just takes the first 16 of its 32 RVQ layers.
- It fills a gap: voice design currently means Qwen3-TTS or OmniVoice, and neither is a MOSS-family option.
What is actually new
VoiceGenerator is the moss_tts_delay architecture, not the local-transformer path — so instead of moss_tts_local's depth transformer it needs a delay-pattern frame decoder plus that family's prompt template. That is the bulk of the work; the codec, sampling helpers and token-row utilities under moss/shared/ should carry over.
What I can bring
I implemented this family in pwilkin/openmoss (another Apache-2.0 C++/ggml port), where I contributed multi-speaker cloning, the continuation prefix, a voice registry and converter fixes. Some findings that cost me time and would otherwise be rediscovered:
- It is genuinely sensitive to decoding hyperparameters. The model card documents 1.5 / 0.6 / 50 / 1.1 and warns about it; at the flagship's defaults it degenerates into an immediate end-of-speech.
- It needs explicit full language names ("English", not "en").
- It has no reference audio to anchor length, so left unbounded it either collapses on the first frame or rambles for minutes. Deriving min/max frame bounds from the text length fixes it.
- bf16 for the backbone — f16 overflows its attention sinks.
Happy to start under community_models and follow the reproducibility bar in docs/community_models/models.md (build/run commands, WAVs, backend coverage, timings, VRAM). I test on Intel Arc / Vulkan, so I can cover that backend; I would need help confirming CUDA numbers.
If this lands well, MOSS-TTSD (multi-speaker dialogue, same delay family) and MOSS-SoundEffect-v2.0 (DiT + flow matching + DAC VAE, close to what ace_step/ already does) are the natural follow-ups.
What
MOSS-VoiceGenerator creates a speaker from a written description instead of a reference WAV — "a warm male radio voice in his fifties, calm, never shrill" — and speaks the supplied text in it. Apache-2.0 weights, ~2B params, Chinese and English.
Would you welcome a port? And is anyone already working on it?
Why it fits here
vdestask with--instruct, the same shape Qwen3-TTS VoiceDesign already uses. No new task type needed.src/models/moss/shared/already implements — same tokenizer asmoss_tts_local, the model just takes the first 16 of its 32 RVQ layers.What is actually new
VoiceGenerator is the
moss_tts_delayarchitecture, not the local-transformer path — so instead ofmoss_tts_local's depth transformer it needs a delay-pattern frame decoder plus that family's prompt template. That is the bulk of the work; the codec, sampling helpers and token-row utilities undermoss/shared/should carry over.What I can bring
I implemented this family in pwilkin/openmoss (another Apache-2.0 C++/ggml port), where I contributed multi-speaker cloning, the continuation prefix, a voice registry and converter fixes. Some findings that cost me time and would otherwise be rediscovered:
Happy to start under
community_modelsand follow the reproducibility bar indocs/community_models/models.md(build/run commands, WAVs, backend coverage, timings, VRAM). I test on Intel Arc / Vulkan, so I can cover that backend; I would need help confirming CUDA numbers.If this lands well, MOSS-TTSD (multi-speaker dialogue, same delay family) and MOSS-SoundEffect-v2.0 (DiT + flow matching + DAC VAE, close to what
ace_step/already does) are the natural follow-ups.