alt.freeweights.speech / moss-tts-v1.5-8b-voice-acting
From: laion <huggingface.co/laion>Newsgroups: alt.freeweights.speechSubject:

moss-tts-v1.5-8b-voice-acting

Date: 2026-11-14Commit: aabb7b6Signed: 2DC28CC7B26A283B ✓

Text to speech model with 8.5B parameters. Safetensors weights, 17.0 GB in all. Published by laion under Apache-2.0.

8.5B params17.0GBmoss-tts-v1.5-8b-voice-actingsafetensorspermissive
FactsParams8.5BSize17.0 GBFormatssafetensorsTasktext to speechLicenseApache-2.0From sourcepermissive
$ fw get laion/moss-tts-v1.5-8b-voice-acting
# manifest sha256 475e262088c9… · 17.0 GB · 20 files
$ fw verify ./moss-tts-v1.5-8b-voice-acting laion/moss-tts-v1.5-8b-voice-acting
From sourceHosted (signed)laion/moss-tts-v1.5-8b-voice-actingLast check: 2026-11-14 21:34 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
17.0 GB
Weights
17.0 GB (safetensors)
Parameters
8.5B
Formats
safetensors
Task
text to speech
License
Apache-2.0 (permissive)
Files
20, each with a sha256
Publisher
laion
Added
2026-11-14
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:34 UTCpassed

Model card

From the publisher at commit aabb7b6. Shown as plain text with links; images open at the publisher.

MOSS-TTS-v1.5 8B — Voice Acting (24 kHz delay model)#

A full fine-tune of OpenMOSS's MOSS-TTS-v1.5 (8B parameters, Qwen3-8B backbone, moss_tts_delay architecture, 32-codebook audio @ 24 kHz), specialised for expressive voice acting.

The fine-tune pushes the base model toward:

  • Emotional delivery — happy, sad, angry, fearful, tender, sarcastic, whispered, shouted, and everything in between.
  • Character voices — distinct personas driven from a natural-language instruction.
  • Voice cloning — clone a speaker's timbre and delivery style from a short reference clip.

Sibling model: the 4.55-billion-parameter local-transformer variant at 48 kHz — laion/moss-tts-local-transformer-4.55b-voice-acting (merged, off-the-shelf).

this model — 8B delay4.55B local transformer
audio tokenizerMOSS-Audio-Tokenizer (v1) — 24 kHz monoMOSS-Audio-Tokenizer-v2 — 48 kHz
output24 kHz (optionally bandwidth-extended with Sidon)native 48 kHz, use raw
strengthslarger capacity, broad multilingual coveragehigher audio bandwidth out of the box, smaller/faster, measured higher word accuracy on identical prompts (invWER 0.97 vs 0.83)

It keeps the multilingual coverage of the base model (English, German, Chinese, and many more — see the language list), and is fully API-compatible with MOSS-TTS-v1.5: same processor, same generate interface, same input schema.


Model at a glance#

Base modelOpenMOSS-Team/MOSS-TTS-v1.5
Architecturemoss_tts_delay (delay-pattern TTS LM)
BackboneQwen3-8B
Parameters~8B (full fine-tune, no adapters)
Audio codec32-codebook RVQ, 24 kHz — OpenMOSS-Team/MOSS-Audio-Tokenizer (v1, mono)
Precisionbfloat16
LicenseApache-2.0

Prompting#

The model is prompted through the processor's native build_user_message fields:

  • instruction — how to say it: the emotion, character, or performance direction (e.g. "Speak like a weary old sailor telling a ghost story, low and gravelly.").
  • text — what to say: the words to be spoken.
  • language — the language of text (e.g. "English", "German", "Chinese"). Set it whenever the language is known; it improves multilingual stability.
  • reference — optional audio (a file path, URL, or waveform tensor) to clone a voice. Omit it to let the model invent a voice consistent with the instruction.

Usage#

from transformers import AutoModel, AutoProcessor
import torch, torchaudio

# Recommended SDPA backend settings (the cuDNN SDPA path is broken for this model)
torch.backends.cuda.enable_cudnn_sdp(False)
torch.backends.cuda.enable_flash_sdp(True)
torch.backends.cuda.enable_mem_efficient_sdp(True)
torch.backends.cuda.enable_math_sdp(True)

model_id = "laion/moss-tts-v1.5-8b-voice-acting"
device, dtype = "cuda", torch.bfloat16

processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
processor.audio_tokenizer = processor.audio_tokenizer.to(device)

model = AutoModel.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype=dtype,
    attn_implementation="sdpa",   # or "flash_attention_2" if installed
).to(device).eval()

def synth(message, out_path):
    batch = processor([[message]], mode="generation")
    with torch.no_grad():
        outputs = model.generate(
            input_ids=batch["input_ids"].to(device),
            attention_mask=batch["attention_mask"].to(device),
            max_new_tokens=4096,
        )
    audio = processor.decode(outputs)[0].audio_codes_list[0]
    torchaudio.save(out_path, audio.unsqueeze(0).cpu().float(),
                    processor.model_config.sampling_rate)

# 1) Expressive delivery, model invents a voice (no reference)
synth(processor.build_user_message(
    instruction="Excited and breathless, like sharing amazing news with a best friend!",
    text="You will not believe what just happened. We actually did it!",
    language="English",
), "invented_voice.wav")

# 2) Voice cloning — clone the timbre/style of a reference clip
synth(processor.build_user_message(
    instruction="Calm, warm, reassuring bedtime-story narrator.",
    text="Once upon a time, in a quiet little village, everyone slept soundly.",
    language="English",
    reference=["/path/to/reference.wav"],
), "cloned_voice.wav")

processor.decode(...) returns a list of messages; each carries the decoded waveform in message.audio_codes_list[0] at processor.model_config.sampling_rate (24 kHz).

Sampling settings. A grid search over temperature and audio repetition penalty (scored for intelligibility, quality, and genuineness on a held-out English + German set) gives good defaults of temperature 1.0, repetition penalty 1.1 with a reference clip, and temperature 0.8, repetition penalty 1.1 without a reference. See GENERATION_SETTINGS.md for the full results table and per-metric best configs.


Training#

This model was fine-tuned on a mix of the Emolia corpus and synthetic speech generated by several TTS models — primarily Gemini-3.1 TTS and DramaBox TTS. The goal of the mix was to concentrate on expressive, emotional, and character-driven delivery while preserving the base model's multilingual and voice-cloning abilities. It is a conservative full fine-tune: the base model's general capabilities are largely retained.


Tips#

  • Put performance cues in instruction. Emotion, character, pacing, and vocal-burst / performance cues (laughter, sighs, gasps, whispering, shouting) belong in instruction, not in text.
  • German text: write it naturally. Use lowercase with proper umlauts (ä ö ü, not ae/oe/ue) and avoid ALL-CAPS, which the model tends to mispronounce. Reserve capitals for normal sentence casing.
  • Use punctuation for emphasis and prosody. !, ?, ., and ... meaningfully shape intonation and pauses — lean on them instead of capitalisation.
  • Set language whenever you know it; it stabilises multilingual synthesis.
  • Data augmentation. Voice cloning combined with text paraphrase is an effective way to generate additional, style-consistent training material.

Limitations#

  • This is a conservative full fine-tune. It broadens expressive and voice-acting behaviour, but it may not beat task-specific baselines on every axis (e.g. raw intelligibility, speaker similarity, or a single narrow language/domain).
  • Expressiveness is driven by the instruction field; vague or contradictory instructions can produce inconsistent delivery. Iterate on wording.
  • As with any generative TTS, outputs should not be used to impersonate real individuals without consent. Use responsibly.

License#

Released under the Apache-2.0 license.

Files

20 files · 17.0 GBWeights 17.0 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 20 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
GENERATION_SETTINGS.md2.23 KB9c24323fdd01f296862c179e1714dbfa0ed3e9a0064ffebb668f6bc2765d4687
README.md7.70 KBa66276945f19ffe042b1f9c7b5d55cd054a8f1faffa3dd65962c744ad22882f3
__init__.py0 Be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
added_tokens.json704 B9dfb40d3a3f8654c8af17771d767a494e973b9a33d5c3aeffa1b21f77db8e6d3
chat_template.jinja352 B894e3ace884e212ae34e1f46063686e7ebcc8b2fa0153af4579dfa5685f63184
config.json2.50 KB71a77d859875618b12336f4234bf066d035b4f33e97000e0227b960c95b93f1d
configuration_moss_tts.py5.58 KB257842f2fa90124307408f36d55b74e135ee32b7afacbe30280964f7feb329d1
generation_config.json69 B959c6128a9742174f2440d18429588b4b9dd72bdba8544ba96db4f19f221f087
inference_utils.py5.09 KB12cdf3260114e44c8cba816782f743779ab621e0ba4047e59a3f3579cfcb0e26
merges.txt1.67 MB8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5
model.safetensors17.0 GB3f6fde86a603471e333348193f72ec36b6749947242c1d0969f958f772cf13c1
modeling_moss_tts.py25.3 KB360ceee27c67831d820ff5324f8687f4408db1a91aef53683934544879aa90ca
processing_moss_tts.py35.5 KBe591ff156e8fadcae34db5613a2221fab7ec5d814bfc0ec001e8ec4ef2782425
processor_config.json200 B2002693f7a5283b6bcdea76958ef3c092dc46f75df4a76ba6edbdf63b36433eb
special_tokens_map.json631 B55cbd0665670e196ce105db3f0d787e5eb35bce235fcb2bd50acbdd60c1e39c6
tokenizer.json11.4 MBcb3c8fa82993d515469c2800cc455bff4aaa3c4fed9da1f2b0c0668c304f335a
tokenizer_config.json5.50 KB87b1f37a4a73e4c4b61637a1446763e8bdea274347f0418cd5c68ead488c8ea4
tts_robust_normalizer_single_script.py14.5 KBb7c1fab4fd7bdc8c779df99f6af310fd8cd0746b759db684bf147e0c182b3183
vocab.json2.78 MBca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
aabb7b609c pinned now manifest updated, same commit2026-11-14 21:34 UTC20 files · 17.0 GB
aabb7b609c2026-11-14 21:34 UTC20 files · 17.0 GB

Use it

$ fw get laion/moss-tts-v1.5-8b-voice-acting
# manifest sha256 475e262088c9… · 17.0 GB · 20 files
$ fw verify ./moss-tts-v1.5-8b-voice-acting laion/moss-tts-v1.5-8b-voice-acting
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/laion/moss-tts-v1.5-8b-voice-acting.json --dir ./moss-tts-v1.5-8b-voice-acting $ python3 fw.py verify ./moss-tts-v1.5-8b-voice-acting ./laion__moss-tts-v1.5-8b-voice-acting.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download laion/moss-tts-v1.5-8b-voice-acting --revision aabb7b609c2b56e5cfa8e8641eb1d8ce9e3d1997 --local-dir ./moss-tts-v1.5-8b-voice-acting

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
a66276945f19ffe042b1f9c7b5d55cd054a8f1faffa3dd65962c744ad22882f3
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: laion <huggingface.co/laion>Newsgroups: alt.freeweights.speechSubject: moss-tts-v1.5-8b-voice-actingDate: 2026-11-14Commit: aabb7b6Signed: 2DC28CC7B26A283B ✓
Upstream
laion/moss-tts-v1.5-8b-voice-acting
Pinned commit
aabb7b609c2b56e5cfa8e8641eb1d8ce9e3d1997
Manifest
moss-tts-v1.5-8b-voice-acting.json · .minisig
Manifest sha256
475e262088c9adbbe6a503fbdd1e9cfaa386f850b66ca97e1c37b77566aa76a4
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:34 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/laion/moss-tts-v1.5-8b-voice-acting.json $ curl -O https://freeweights.allternit.com/manifests/laion/moss-tts-v1.5-8b-voice-acting.json.minisig $ minisign -Vm moss-tts-v1.5-8b-voice-acting.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download laion/moss-tts-v1.5-8b-voice-acting
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. moss-tts-v1.5-8b-voice-acting.json. Provenance. Takedown history: none.
From: MIT <huggingface.co/MIT>Subject: ast-finetuned-audioset-10-10-0.4593
From: onnx-community <huggingface.co/onnx-community>Subject: ast-finetuned-audioset-10-10-0.4593-ONNX
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Preview-0.6b
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Realistic-Air
From: facebook <huggingface.co/facebook>Subject: audiobox-aesthetics
From: mlx-community <huggingface.co/mlx-community>Subject: chatterbox-4bit