Downloads · 30 days
9
22% of all-time downloads
marcosremar2/iaratts-sft-v3
iaratts-sft-v3 is a text-to-speech model from marcosremar2. Use it when you need text read aloud. It is set up for transformers. The card lists the license as mit.
Brazilian Portuguese TTS with paralinguistic tag rendering — full SFT of MOSS-TTS-Nano-100M with vocab extended for nonverbal tokens.
Downloads · 30 days
9
22% of all-time downloads
All-time downloads
41
Public
Repo size
286 MB
Likes
0
Public
Click a slice to open those files.
.bin285 MB · 100%
From the Hugging Face model README
Brazilian Portuguese TTS with paralinguistic tag rendering — full SFT of MOSS-TTS-Nano-100M with vocab extended for nonverbal tokens.
<sigh>, <laugh>, <yawn>, <gasp>, <groan>, <chuckle>, <cough>, <sniffle> registered as single token IDs (16384–16391). Tokenizer no longer fragments them into BPE pieces.User feedback: nonverbal sounds (sigh/laugh/yawn/gasp/chuckle/groan) render audibly in v3 — partial quality, not perfect, but the tag→sound mapping is working. v1/v2 produced only speech without the tag sound.
| Hyperparam | Value |
|---|---|
| Base model | OpenMOSS-Team/MOSS-TTS-Nano-100M (vocab extended to 16392) |
| Codec | OpenMOSS-Team/MOSS-Audio-Tokenizer-Nano |
| Dataset | marcosremar2/gemini-dataset-erinome (4869 pairs after intersection) |
| per_device_batch_size | 8 |
| gradient_accumulation_steps | 4 |
| global_batch_size | 32 |
| epochs | 10 (1530 steps) |
| learning_rate | 5e-5 cosine, warmup 5% |
| mixed_precision | bf16 |
| attn_implementation | sdpa |
| GPU | RTX 4090 (Vast.ai, ~$0.07/hr) |
| Wall time | ~30 min |
| Loss | 5.02 → 4.51 |
| Total cost | ~$0.04 |
The MOSS-TTS-Nano text_lm_head layer was resized from (16384, 768) → (16392, 768). New embeddings initialized from multivariate normal (mean+covariance of existing embeddings, per Hewitt 2021 vocab expansion technique). Both vocab_size and nested gpt2_config.vocab_size updated in config.json.
from transformers import AutoModel, AutoTokenizer
m = AutoModel.from_pretrained("marcosremar2/iaratts-sft-v3", trust_remote_code=True)
t = AutoTokenizer.from_pretrained("marcosremar2/iaratts-sft-v3", trust_remote_code=True)
# tags work as single tokens now:
ids = t.encode("<sigh> Que cansaço.", add_special_tokens=False)
# -> [16384, ..., space, ..., Que, ..., cansaço, ...]
CLI via MOSS infer.py:
python infer.py --checkpoint marcosremar2/iaratts-sft-v3 \
--audio-tokenizer-pretrained-name-or-path OpenMOSS-Team/MOSS-Audio-Tokenizer-Nano \
--text "<sigh> Encontrei um erro no código." \
--output-audio-path out.wav --mode continuation --seed 42
MIT — same as upstream MOSS-TTS-Nano.