MOSS-TTSD β GGUF for audio.cpp
Self-contained GGUF packages of OpenMOSS-Team/MOSS-TTSD-v1.0, for audio.cpp. Each file carries the 8B delay-pattern backbone, the MOSS-Audio-Tokenizer v1 codec (both encoder and decoder, because cloning needs the encoder), the tokenizer and the model spec β nothing else to download.
MOSS-TTSD speaks a speaker-tagged dialogue in one take: [S1] and [S2] mark
who is talking, and each tag can carry its own reference recording.
| file | backbone | codec | size | clones on 24 GiB |
|---|---|---|---|---|
moss_ttsd_q8_0_codec_f16.gguf |
q8_0 | f16 | 12.2 GB | yes |
moss_ttsd_q4_k_codec_f16.gguf |
q4_k (f16 heads) | f16 | 9.5 GB | yes |
moss_ttsd_bf16_codec_f16.gguf |
bf16 | f16 | 18.9 GB | no |
OpenMOSS-Team/MOSS-TTSD-v1.0 ships no codec weights β its processor resolves
OpenMOSS-Team/MOSS-Audio-Tokenizer at load time β so both are listed as parent
models. This checkpoint reads the first 16 of that codec's 32 RVQ layers.
β bf16 cannot clone on a 24 GiB card
Cloning needs the codec encoder as well as the decoder, and its weights want a
further 3.5 GB on top of the backbone. On an RTX 3090 that fails allocating
moss.audio_tokenizer.encoder. Plain generation in bf16 is fine; to clone on
24 GiB use q8_0, which did it in 12.7 s including load.
The q4_k package keeps its heads at f16
A plain q4_k of this model is broken, and quietly: it speaks the first turn of a
dialogue and stops. lm_heads.0 is the text head, which decides when the turn
ends, and at four bits it ends it early.
q4_k, heads quantised 2.6-3.2s first turn only, sometimes with a garbled tail
q4_k, heads at f16 9.1-16.5s full script
q8_0 10-12.5s full script
So this package is built with --keep-type "model_weights/lm_heads*=f16", which
costs 0.95 GB over a plain q4_k and is the difference between usable and not.
β Speaker identity drifts across turns
This is the model, not the conversion or the engine. Measuring median F0 per turn against two references 84 Hz apart, over three runs of the reference PyTorch implementation and one of audio.cpp:
run S1 turn1 S1 turn2 S2 turn1 S2 turn2
reference run 1 200.0 110.3 154.8 131.9
reference run 2 203.4 102.8 179.1 160.0
reference run 3 208.8 104.8 161.1 152.5
audio.cpp (seed 7) 210.5 120.6 166.7 164.4
references: S1 = 201.7 Hz, S2 = 117.6 Hz
The first speaker's first turn matches its reference closely. By that speaker's second turn the pitch has fallen to roughly the other reference's, and the second speaker sits between the two throughout. The reference implementation does this in every run and audio.cpp reproduces the pattern at the same magnitude β which is the parity result, on a feature that does not hold up.
Median F0 is a crude stand-in for speaker identity, and this is four runs of one configuration with short references (3.4 s and 4.2 s) where the model card's own example uses much longer ones. Read it as "identity drifts across turns", not as a measured rate.
Usage
audiocpp_cli --task tts --family moss_ttsd --model /path/to/MOSS-TTSD-GGUF \
--backend cuda --language English \
--text "[S1] So what did you make of it? [S2] Honestly, I was not expecting that ending." \
--out dialogue.wav
Cloning takes one reference per speaker, positional, plus what those recordings say β the model continues from the reference audio, so the transcript has to line up with it:
audiocpp_cli --task clon --family moss_ttsd --model /path/to/MOSS-TTSD-GGUF \
--backend cuda --language English \
--request-option voice_samples=/path/to/s1.wav,/path/to/s2.wav \
--request-option "reference_text=[S1] First voice here. [S2] Second voice here." \
--text "[S1] The train leaves at four. [S2] I packed already." \
--out dialogue.wav
The number of entries is the number of speakers, and an entry with no path is a speaker that is named but not cloned:
voice_samples= |
speakers |
|---|---|
s1.wav,s2.wav |
both cloned |
s1.wav, |
[S1] cloned, [S2] invented |
,s2.wav |
[S1] invented, [S2] cloned |
s1.wav |
one speaker only β no [S2] is implied |
So the trailing separator is meaningful, not a typo.
- Downloads last month
- -
16-bit
Model tree for christopherthompson81/MOSS-TTSD-GGUF
Base model
OpenMOSS-Team/MOSS-Audio-Tokenizer