News Hacker|极客洞察

385 9 小时前 github.com
😅Kitten TTS 发布 3 个 <25MB 新模型,安装依赖却膨胀到数 GB
25MB 是模型,7GB 依赖是赠品吗?

🎯 讨论背景

Kitten TTS 是一套主打超小体积的 text-to-speech 模型,这次发布了 3 个新版本,最小不到 25MB,目标是让语音合成能在手机、浏览器、树莓派甚至更小的设备上本地运行。评论里很多人先被模型大小吸引,但很快把焦点转到真实可用性:模型质量、韵律、数字/专有词读法,以及能不能通过 expressive tags、custom voices 或 voice cloning 做到更自然的输出。另一个反复出现的背景是 Python 依赖链问题:虽然模型很小,但默认安装可能把 torch、NVIDIA CUDA、spaCy 等大包一起拉进来,导致 Linux/macOS/Windows 上出现数 GB 的安装体积和环境报错。帖子相关 demo 还延伸到 Discord 机器人、HuggingFace Spaces(Hugging Face 的在线演示平台)、iOS/Android SDK、ONNX、Wasm 和 C++ 推理等落地方向。

📌 讨论焦点

安装依赖过重

很多人被“<25MB”吸引,但真正装起来却发现 Python 依赖链会把 torch、NVIDIA CUDA、spaCy 等一并拉下,Linux 上甚至能涨到 7GB 级别。有人直接写了 CLI wrapper 来绕开不必要的包,并指出 misaki、curated-tokenizers、spacy-curated-transformers 之类依赖既臃肿又会触发编译、版本不兼容、PortAudio 缺失等问题。评论里反复出现 uv、venv、Conda、Nix Flakes 等环境方案,说明这个项目最大的痛点不是模型,而是“安装能不能先跑起来”。作者多次回应会尽快清理冗余依赖、补 CPU/GPU 例子并修复相关 bug。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9]

小模型质量与韵律表现

尽管安装抱怨很多,大家对小模型本身的质量普遍很惊讶,尤其是 15M/25MB 级别已经能接近甚至超过上一版 80M。评论里反复比较了 Kokoro TTS、Qwen3-TTS 等小模型,认为它们常见的问题不是“会不会发声”,而是韵律、重音和长尾词的读法。具体例子包括数字和单位读得像噪声、SECDED 这类领域词发音错误、以及日文/中文混读把可用性拉低。作者承认 80M 在罕见词和稳定性上更强,但 15M 对资源受限设备和浏览器更有吸引力。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]

可控表达、专业音色与 voice cloning

不少人最看重的是可控性,而不是单纯的自然度。有人希望用 pitch/speed/volume、[sarcastically]、[laughs] 之类的 expressive tags 来指导发音,也有人提议把 emotion、pause、laughter 分成更明确的标签体系。另一条线是自定义声音和 voice cloning:有人想把它用于商业外呼、播客式阅读和个人助手,作者则表示会推出 DIY custom voices、专业音色版本,以及更大范围的 voice cloning 模型。整体上,社区想要的是能被产品化的“专业声线”,而不是只会卖萌的卡通声音。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]

本地部署与多端场景

讨论很快从模型本身扩展到落地形态:有人已经把它接进 Discord 机器人 OpenClaw,几分钟内就能把 GitHub URL 变成可听的语音消息和 demo。移动端和浏览器也是高频需求,评论里有人问 iPhone、Android、JS package、Wasm、C++ ONNX 和 mobile SDK,目标是把文章、epub、语音回复和屏幕阅读器都放到本地跑。还有人明确提到无障碍场景、Home Assistant、树莓派和未来的 MCU 芯片,说明“离线、低延迟、无云端依赖”是这类模型的核心卖点。作者也提到会补 chunk streaming、输出文本对齐和 STT 模型,让它更像完整语音栈而不是单点 TTS。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15] [来源16] [来源17] [来源18] [来源19] [来源20] [来源21] [来源22]

多语言支持与本地化细节

当前版本主要是 English-only,所以日语、法语、西语、德语等需求都被集中提出来。日语讨论尤其具体,因为纯 hiragana 虽然能减少 Mandarin 混入,但会丢失 pitch accent,像 飴/雨 这种同形异音很难靠简单预处理解决。作者回应说下一版会支持 Japanese,Spanish 也会很快发布,French、German 也在路线图上,但低资源语言会更慢。这个话题显示出:小体积模型想走向实用,语言覆盖和本地化细节几乎和音质同等重要。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11]

训练数据与开放性追问

也有人对训练数据和授权提出直接追问,想知道模型是不是 open-source、open-weights,还是只是一段 demo 包装。最敏感的问题是声音来源:有人怀疑 demo 里的某些声音和特定播音员或配音演员非常像,甚至拿其他模型被质疑训练未授权声音的案例来类比。还有人直接问训练语料是否来自创作者本人、互联网抓取还是档案数据,但帖子正文没有给出足够细节,因此这部分评论更像是在补“模型从哪来”的信息空白。作者对个别声音相似性给出了否认,但整体透明度仍是讨论焦点。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

📚 术语解释

TTS: Text-to-Speech,文本转语音技术。

prosody: 语音的韵律、重音和节奏,直接影响 TTS 是否自然。

ONNX: 跨框架的神经网络模型格式,便于在 C++、mobile 或 browser 中部署推理。

uv: Python 的包与环境管理工具,常用于更快地创建和锁定可复现环境。

CUDA: NVIDIA 的 GPU 计算平台/运行时,常让 Linux 端依赖体积显著变大。

voice cloning: 用少量样本模仿特定说话人的音色和说话风格。

Wasm: WebAssembly,一种可在浏览器中运行的低级字节码格式。

spaCy: 一个 Python NLP 库,这次讨论里它的依赖和版本 bug 影响了安装体验。