IndexTTS-2.5 GGUF(Q5/Q8 混合量化)
IndexTeam/IndexTTS-2.5 的 GGUF 量化转换,给 audio.cpp 用:audiocpp_cli --family index_tts2。
Any modifications made to the original model in this Derivative Work are not endorsed, warranted, or guaranteed by the original right-holder of the original model, and the original right-holder disclaims all liability related to this Derivative Work.
本页数字全部来自本机实测,不是官方 IndexTTS 论文数字。量化 没有重新训练。
1. 体积与显存(先看这个)
硬件:NVIDIA GeForce RTX 5070 Ti 16 GB,驱动 595.97,audio.cpp v0.7.1 CUDA 13.3。
原版:同一台机器、同一条参考音 ja_ref.wav、PyTorch FP16(IndexTTS2)。
| 项目 | 原版 IndexTTS-2.5 FP16 | 本仓库 GGUF |
|---|---|---|
| 权重文件 | 官方多文件 checkpoint(GPT / s2mel / codec / BigVGAN / CAMPPlus 等) | index-tts2_5-2060-textq8.gguf = 1.964 GiB(2,108,777,984 字节) |
| 推理后端 | PyTorch CUDA | audiocpp --backend cuda --device 0 |
| 合成期显存(本机测) | 未采到可靠值(torch.cuda.max_memory_allocated() 全程为 0;日志里 BigVGAN 有 CPU mode 提示,不能拿来当原版显存) | nvidia-smi memory.used 峰值 − 进程内已有 PyTorch 占用 |
| GGUF 显存 · bench 8 句 | — | 6.57–6.86 GiB,平均 6.68 GiB |
| GGUF 显存 · hold-out 16 句 | — | 7.08–7.38 GiB,平均 7.25 GiB |
| 官方卡面声明的原版显存 | IndexTeam 卡面写约 6 GB(未在本机用同一口径复测) | — |
| 磁盘旁路文件 | 官方 config.yaml + hf_cache | 同目录必须留 config.yaml、multilingual_zh_ja_yue_char_del.tiktoken、bigvgan/、qwen0.6bemo4-merge/、w2v-bert-2.0/(配置/分词,权重已进 GGUF) |
显存口径(GGUF):合成子进程跑起来之后,每 200 ms 读一次 nvidia-smi --query-gpu=memory.used,取峰值,再减去当时 Python 进程里已有的 torch.cuda.memory_allocated()(评测用的 ASR/MOS 模型)。这是 这块 5070 Ti 上、这条 GGUF 自己多占的板载显存,不是 PyTorch allocator。
原版显存:本轮对比 没有 可用的板载隔离数字。不要把「None」理解成原版更省。
2. 量化配方
| 模块 | 精度 |
|---|---|
GPT text_embedding / text_head / lang_embedding / 位置 / mel embed+head | Q8_0 |
| GPT 首尾各 2 层 | Q8_0 |
| 其余 GPT 二维矩阵 | Q5_K |
| QwenEmotion embed | Q8_0 |
| QwenEmotion 层 / wav2vec2bert | Q3_K |
| BigVGAN / s2mel / codec / CAMPPlus / speaker & emotion | F16 |
3. 对比协议(两套,都要看)
同一参考音、克隆模式、seed=42。CER 用日语/中/英 ASR;MOS 为 UTMOS;音色为说话人嵌入余弦相似。RTF = 墙钟合成时间 / 音频时长(含模型加载后的单句时间,首句会偏慢)。
| 套件 | batch | 文案 | 说明 |
|---|---|---|---|
| A. bench 日语 8 句 | idx_quant_1788422855 | bench_ja_*(angry/excited/happy/katakana/long/mixed/neutral/news) | 调过 GGUF 日英拆段适配器的那条 mixed 在这套里 |
| B. hold-out 16 句 | idx_holdout_1788425032 | 全新句子,不在 bench 里 | 泛化;没有训练 |
| (参考)CPU GGUF | idx_quant_1788408146 | 与 A 相同 8 句 | 当时 audiocpp 是 CPU 包,RTF 15.3,不要当 GPU 速度 |
日语 language=ja 时 audiocpp 会把拉丁词收成片假名。本仓库推荐推理时把 ≥4 字母或连续英文词拆成 language=en 再拼 wav。这是 前端拆句,不是量化训练。
4. 总表:原版 FP16 vs 本 GGUF(CUDA)
越低越好:CER、RTF、显存。越高越好:MOS、音色相似。
4.1 套件 A · bench 8 句(克隆)
| 成功率 | CER↓ | MOS↑ | 音色↑ | RTF↓ | 峰值显存 GiB | 平均延迟 ms | |
|---|---|---|---|---|---|---|---|
| 原版 FP16 | 1.0 | 0.0536 | 4.041 | 0.876 | 8.174 | 未测到 | 33847 |
| 本 GGUF CUDA | 1.0 | 0.0119 | 3.895 | 0.890 | 5.170 | 6.68 | 22153 |
差值(GGUF − 原版):CER −0.0417,MOS −0.146,音色 +0.014,RTF −3.003。
A 套 CER 优势几乎全来自 bench_ja_mixed(适配器拆句);不要单独拿 A 套平均 CER 宣传「量化更准」。
稳定性(4 句 × 3 次,指标标准差,越小越稳):
| CER std | MOS std | 音色 std | 时长 std | |
|---|---|---|---|---|
| 原版 FP16 | 0 | 0.072 | 0.006 | 0.108 |
| 本 GGUF | 0 | 0 | 0 | 0 |
4.2 套件 B · hold-out 16 句(未见过,泛化)
| 成功率 | CER↓ | MOS↑ | 音色↑ | RTF↓ | 峰值显存 GiB | |
|---|---|---|---|---|---|---|
| 原版 FP16 | 1.0 | 0.0650 | 3.948 | 0.878 | 7.467 | 未测到 |
| 本 GGUF CUDA | 1.0 | 0.0569 | 3.867 | 0.870 | 5.443 | 7.25 |
差值(GGUF − 原版):CER −0.0081,MOS −0.081,音色 −0.007,RTF −2.024。
分桶 CER:
| 桶 | n | 原版 CER | GGUF CER |
|---|---|---|---|
| 纯日语 | 4 | 0.0119 | 0.0000 |
| 长句 | 1 | 0.0000 | 0.0000 |
| 长拉丁夹杂(iPhone / GitHub / YouTube / timeout) | 4 | 0.0778 | 0.0178 |
| 短拉丁(AI / USB / 句首 OK) | 3 | 0.0327 | 0.0678 |
| 数字(汉字数字 vs ASR 阿拉伯数字,两边同高) | 2 | 0.2654 | 0.2654 |
| 英语 | 1 | 0.0000 | 0.0000 |
| 中文 | 1 | 0.0526 | 0.1053 |
稳定性(2 句 × 2 次 std):原版 MOS std 0.084;GGUF 各项 std 为 0。
4.3 CPU GGUF(不要当正式速度)
同一 8 句 bench、当时 --backend cpu:原版 RTF 7.38,GGUF RTF 15.32。量化版必须走 CUDA。
5. 套件 A 逐条(bench)
| id | 原版 CER | GGUF CER | 原版 MOS | GGUF MOS | 原版 音色 | GGUF 音色 | 原版 RTF | GGUF RTF | GGUF 显存 GiB |
|---|---|---|---|---|---|---|---|---|---|
| angry | 0 | 0 | 3.966 | 4.104 | 0.858 | 0.872 | 10.71 | 6.89 | 6.717 |
| excited | 0 | 0 | 4.220 | 3.934 | 0.859 | 0.872 | 7.22 | 5.61 | 6.568 |
| happy | 0.0952 | 0.0952 | 3.958 | 3.925 | 0.871 | 0.911 | 7.30 | 6.33 | 6.664 |
| katakana | 0 | 0 | 3.933 | 3.825 | 0.884 | 0.907 | 8.09 | 5.34 | 6.573 |
| long | 0 | 0 | 4.326 | 4.068 | 0.900 | 0.908 | 7.65 | 3.08 | 6.855 |
| mixed | 0.3333 | 0.0000 | 4.027 | 3.817 | 0.863 | 0.877 | 8.02 | 3.87 | 6.657 |
| neutral | 0 | 0 | 3.985 | 3.721 | 0.900 | 0.886 | 8.45 | 5.71 | 6.604 |
| news | 0 | 0 | 3.913 | 3.766 | 0.873 | 0.885 | 7.96 | 4.54 | 6.789 |
| 平均 | 0.0536 | 0.0119 | 4.041 | 3.895 | 0.876 | 0.890 | 8.174 | 5.170 | 6.678 |
mixed 原文:このアプリはAIでvoice cloneができて、本当に便利です。
原版这轮 ASR 把 English 听成片假名;GGUF 拆成 ja/en 后 CER=0。这条 调过适配器,泛化请看套件 B。
6. 套件 B 逐条(hold-out)
| id | 桶 | 原版 CER | GGUF CER | 原版 MOS | GGUF MOS | 原版 音色 | GGUF 音色 | 原版 RTF | GGUF RTF | GGUF 显存 GiB |
|---|---|---|---|---|---|---|---|---|---|---|
| holdout_pure_fridge | 纯日 | 0 | 0 | 4.016 | 4.018 | 0.877 | 0.881 | 7.91 | 6.05 | 7.302 |
| holdout_pure_report | 纯日 | 0.0476 | 0 | 4.038 | 3.910 | 0.862 | 0.899 | 7.10 | 5.60 | 7.113 |
| holdout_pure_sunset | 纯日 | 0 | 0 | 3.943 | 4.017 | 0.880 | 0.857 | 6.57 | 6.17 | 7.293 |
| holdout_pure_train | 纯日 | 0 | 0 | 3.926 | 3.916 | 0.856 | 0.862 | 6.88 | 6.96 | 7.312 |
| holdout_pure_long | 长句 | 0 | 0 | 3.960 | 3.897 | 0.909 | 0.903 | 6.46 | 3.63 | 7.380 |
| holdout_num_reiwa | 数字 | 0.2308 | 0.2308 | 3.892 | 3.869 | 0.910 | 0.893 | 7.01 | 4.04 | 7.329 |
| holdout_num_reserve | 数字 | 0.3000 | 0.3000 | 3.977 | 3.919 | 0.855 | 0.868 | 7.85 | 4.96 | 7.321 |
| holdout_mixed_iphone | 长拉丁 | 0 | 0 | 3.831 | 3.711 | 0.898 | 0.902 | 7.37 | 4.70 | 7.255 |
| holdout_mixed_github | 长拉丁 | 0.0312 | 0.0312 | 3.874 | 3.751 | 0.885 | 0.859 | 7.08 | 4.07 | 7.198 |
| holdout_mixed_youtube | 长拉丁 | 0 | 0 | 3.976 | 3.689 | 0.878 | 0.864 | 7.98 | 4.51 | 7.245 |
| holdout_mixed_timeout | 长拉丁 | 0.2800 | 0.0400 | 4.136 | 3.825 | 0.844 | 0.855 | 7.45 | 4.39 | 7.300 |
| holdout_mixed_ai | 短拉丁 | 0 | 0 | 3.990 | 3.853 | 0.895 | 0.890 | 8.51 | 7.21 | 7.084 |
| holdout_mixed_usb | 短拉丁 | 0.0455 | 0.0455 | 3.904 | 3.782 | 0.890 | 0.901 | 7.83 | 5.43 | 7.258 |
| holdout_mixed_ok | 短拉丁 | 0.0526 | 0.1579 | 3.828 | 3.758 | 0.899 | 0.859 | 7.58 | 5.80 | 7.099 |
| holdout_en_invoice | 英 | 0 | 0 | 3.848 | 3.921 | 0.825 | 0.797 | 8.42 | 7.87 | 7.204 |
| holdout_zh_meeting | 中 | 0.0526 | 0.1053 | 4.031 | 4.037 | 0.878 | 0.834 | 7.46 | 5.69 | 7.245 |
| 平均 | 0.0650 | 0.0569 | 3.948 | 3.867 | 0.878 | 0.870 | 7.467 | 5.443 | 7.246 |
短拉丁弱点:句首 OK 不足 4 字母,拆句规则没拆走,GGUF 前端按日语处理,CER 高于原版。
7. 怎么跑(必须 CUDA)
下载 audio.cpp v0.7.1 的 audio-v0.7.1-bin-windows-x64-cuda13.3.zip + 对应 cudart。
audiocpp_cli.exe --task tts --family index_tts2 --model index-tts2_5-2060-textq8.gguf --backend cuda --device 0 --mode offline --request-sequence sequence.json --out-dir out
[
{
"id": "s0",
"text": "こんにちは。",
"language": "ja",
"voice_ref": "prompt.wav",
"seed": 42
}
]
建议显卡预留 ≥ 8 GiB 空闲显存(本机峰值约 7.4 GiB,再加驱动/其它进程余量)。
8. 结论(按测量写)
- 速度:5070 Ti 上 GGUF CUDA RTF 约 5.2–5.4,原版约 7.5–8.2。
- 显存:GGUF 实测 6.6–7.4 GiB;原版本机未测到可比数字。
- 音质:MOS 原版略高约 0.08–0.15;音色接近。
- 内容:未见过纯日语和长英文夹杂与原版同级或更好;短拉丁、中文原版更好。数字句 CER 高是 ASR 记数方式,两边一样。
- 不要用 CPU 包跑这份 GGUF 再拿 RTF 15 去对比原版 GPU。
License
与基座相同:bilibili Model Use License Agreement。禁止用本转换去改进无关商用模型(许可证 §3.4.c)。