MOSS-TTS-Nano-100M · CPU 权重包
English. Quantized inference weights for the standalone C++/CPU engine
dsh-moss-tts. Derived from MOSS-TTS-Nano-100M
(Apache-2.0): the LLM is cast to int8 (Q8_0, repacked 4×4), the audio decoder/encoder to fp16,
and every tensor is rewritten into the project's .moss container. Nothing is re-trained —
architecture, parameter values and the public prompt template are unchanged; only the numeric
format differs. These files cannot be loaded by transformers; they need the engine.
This repo mirrors the models/ directory of the release zip and matches
scripts/model_lock.json
byte for byte.
这是什么
- 一个 100 M 参数的中英双语 TTS:一帧 80 ms、16 路 VQ(每路 1024 码)、输出 48 kHz 立体声。
- 结构:12 层 GPT-2 风格全局模型(d=768,RoPE)+ 1 层 local 头逐通道出码;音频解码器把 16×T 的码上采样成 48 kHz(4+2+2+4 层,patch 4/2/2/2/240)。
- 文本前端自带分词(sentencepiece 词表已导出为
tokenizer.mossvocab,427 KB),不依赖 Python。
文件
| 文件 | 大小 | sha256 |
|---|---|---|
llm_q8x4.moss |
119.3 MB | 483324ea88cadde32246df51f9d263423086634b95dc8c8b99c81013715f8845 |
decoder_f16.moss |
22.3 MB | 85ca9589e9ea3efa46e1503dc67820788a75bbf003272de9dd83ff8be6be980b |
encoder_f16.moss |
21.8 MB | a70028fa93ed337faaa542ed182b8ba69ba68a1caa02d45f7baeed6321b43e53 |
tokenizer.mossvocab |
427 KB | 2b7a33c477420d573c1ec199f5b91ddd57c033417764ad41b0a9121b2957c22d |
voices/Adam.mossclone |
2 KB | 79c223efb4397a50d48a81c6856533b1b79e5ab80353470c5ec018691063d8c4 |
voices/Anon.mossclone |
1 KB | 1287a8efaa8bdd896615a27fa2ae2f28e85c2f3ccfd65d8ff3ca228ff1a0b52f |
voices/Arisa.mossclone |
3 KB | 48f769df5f170c7ce436c7046fae27017b22889abb1432367a12bb3f08bad388 |
voices/Ava.mossclone |
3 KB | 86fb98bdae192abfa491429f448d769ce8031c5ea7e0273449449de6e8dfd364 |
voices/Bella.mossclone |
2 KB | 1b37d5f6e9ad6a728da90fdc973ac45ebf4ba3debd0d09a77fa3831d1d852157 |
voices/Junhao.mossclone |
3 KB | fa69dea3383a58f9db159e3715c5f0c0e8bcef046699a87b69afa54228e35303 |
voices/Lingyu.mossclone |
7 KB | b3d67c78f04e4b7e2777d88188861122b78d5e928239bf7eee0e4e73ded9e51d |
voices/Mei.mossclone |
2 KB | 4f2de31749eee8e7505ffa64b23773cf25d27ae8ed6725eaad0e5550ff9cbefb |
voices/Mortis.mossclone |
2 KB | 1b47cecce80fa9018873f8dede075678c390cb7114d794c801ba05f9e851a60a |
voices/Nathan.mossclone |
5 KB | b2b77848ffc364ed92d98c6b2abc2e36eef61b9105c2197dfd8a4881f2dfacc5 |
voices/Saki.mossclone |
1 KB | 1cfc68bd3450eef51cf689a89c60562b0bf2b036bb678334a05d6d07a86b03b2 |
voices/Soyo.mossclone |
4 KB | d09d8128f8e2acbb710c66b71930373e5ffaf4fd8234ab9ba1055e91953c089a |
voices/Trump.mossclone |
3 KB | c389ce08ba432599426736acc61949b5481f96a05a02a4d4ae82656ae3fcdf20 |
voices/Umiri.mossclone |
2 KB | edd1c5e73ecbc05720b7f04799bc09e52bc6b01e635ceba5c5f9ed1ab249ba33 |
voices/Weiguo.mossclone |
4 KB | 8fa4db78ad45250288b06ca6dbcc86e39be555df22c6655f4d22a9dc290020fc |
voices/Xiaoyu.mossclone |
6 KB | ce49342e01cf2b6de8c777717c744ae777b6b48ab40a8367a0f41b07614f67fb |
voices/Yuewen.mossclone |
3 KB | 6b15cde411a1becaa3e9cc4e2b65fbcef72785dc25d34996fea4304f6b5ea3be |
voices/Zhiming.mossclone |
3 KB | 2dd4e8bd36a6e01802af817b859e1c951827776407bf4c3dce577b860035507b |
| 合计 | 163.8 MB |
manifest.json 是同一份清单的副本,引擎读它得到 model_id / model_revision;
voices/*.mossclone 是 18 个内置音色(参考音频经编码器得到的 VQ 码,每个几 KB)。
用法
两条路,任选一条。
不想折腾:下 发布包 (
MossTTS-win-x64-full.zip,约 159 MB,程序 + 权重 + 音色),解压后双击moss_tts.exe。只要权重:把这个仓库下到任意目录当
models/用:git clone https://huggingface.co/litterbit/moss-tts-nano-moss models moss_tts.exe --models models --text "你好,世界。" --voice Junhao --out hello.wav moss_tts.exe --models models # 或者不带参数:起本地网页试听台也可以只下 lite 包 再把
models/放进去。
引擎的查找顺序是 --models → exe 同级的 models/ → %LOCALAPPDATA%\MossTTS\models,
所以把本仓库解到 exe 旁边的 models/ 里最省事。
校验
每个文件的 sha256 都在上表里,也写在 manifest.json。核对:
sha256sum -c sha256sums.txt # 从发布页取(Windows: certutil -hashfile <file> SHA256)
引擎自己也会校验吗?--selftest 会加载全部权重并合成一段做峰值检查;发布流水线在下载后
逐个文件比对 scripts/model_lock.json(仓库里的信任根,不是"下完再生成")。
量化与实测
| 部分 | 精度 | 体积 |
|---|---|---|
| LLM 权重 | int8 Q8_0(32 元素一组 scale,4 行一组重排) |
119.3 MB |
| LLM 激活 | 解码段 fp32(prefill 仍 int8) | — |
| 音频解码器 / 编码器 | fp16 | 22.3 / 21.8 MB |
| 分词词表 | 原始 | 427 KB |
精度(teacher forcing,和 fp16 参考比,同一段 in-domain 语料):
| 配置 | code 翻转 | KL | 说明 |
|---|---|---|---|
| int8 权重 + fp32 解码激活(发布默认) | 5.2% | 0.00145 | 听不出差别 |
| 激活也量化成 int8 | 8.7% | 0.0042 | 备选,快 15% |
| 权重再降到 Q4 | 64~86% | 0.44~1.16 | 不可用,响度都会变 |
速度(i5-14600KF,4+6 线程,纯粹在 CPU 上):LLM 7.4 ms/帧、解码器 6.2 ms/帧, 5.12 s 语音首块 93~114 ms、总共 764 ms(RTF 0.149);16.7 ms/帧是关闭 AVX2 的标量回退。
音色
- 18 个内置音色:
Junhao、Xiaoyu、Ava、Trump…… 都是上游自带参考音频编码出来的。 - 自己的音色:给一段 5~15 秒 WAV(PCM),网页上点"创建音色"或
moss_clone.exe --encoder models/encoder_f16.moss --in ref.wav --out voices/me.mossclone。 产物只有几 KB,和内置音色物理隔离存放,升级不会覆盖。
许可与归属
- 上游:MOSS-TTS-Nano-100M,Apache-2.0。
- 本仓库是它的量化/重排产物,同样适用 Apache-2.0;未对结构、训练数据或参数取值做再训练。
- 本项目与 MOSS 模型作者无隶属关系,未获其背书。完整声明见仓库根的
NOTICE/LICENSE。