Kokoro TTS 指南 2026
过去的本地 TTS 一听就是机器。Kokoro 用一个 8200 万参数的模型改变了这件事:笔记本 CPU 上就能实时合成,听感接近付费人声。这篇给安装、最小代码、音色与参数选择,以及它真实的短板。
Kokoro TTS 指南 2026:8k stars 的本地语音模型,价格上打败云 TTS
过去的本地 TTS 有个共同问题:一听就是机器。断句怪、语调平、重音乱,做视频旁白必须人工返工。
Kokoro 打破了这个印象。它只有约 8200 万参数,小到能在笔记本 CPU 上实时跑,听感却接近付费人声模型。开源、本地、无调用次数限制,这是它最有价值的地方。
为什么这么小的模型能打得过大的
多数小 TTS 是自回归的:一帧一帧预测音频,误差累积,最后漂成机器人腔。Kokoro 走的是另一条路——基于高质量人声训练的风格迁移式架构,一次生成整段声学表示,语调的连贯性来自训练数据的韵律分布,不靠逐帧预测去猜。
结果就是:参数量小、推理快、长句不飘。代价是情感表现力和音色多样性不如大模型。
安装
pip install kokoro soundfile
# Linux 上通常还需要 espeak-ng,用于文本规范化
sudo apt install espeak-ng
Windows 用户注意:soundfile 依赖系统的音频库,装不上时改用 pip install soundfile --only-binary :all: 或先装 libsndfile。
最小可跑代码
from kokoro import KPipeline
import soundfile as sf
pipe = KPipeline(lang_code="a") # a = 美式英语
text = "本地语音合成的质量,已经够用了。"
for i, (gs, ps, audio) in enumerate(pipe(text, voice="af_heart", speed=1.0)):
sf.write(f"out_{i}.wav", audio, 24000)
输出采样率 24kHz。KPipeline 会自动按标点切句,每个句子产出一段音频,所以循环里要按序号写文件,再用 ffmpeg 拼起来。
拼装命令:
ffmpeg -f concat -safe 0 -i list.txt -c copy full.wav
音色怎么选
音色代码有规律:第一位是语言,第二位是性别。比如 af_heart 是美式英语女声,am_michael 是美式英语男声,bf_emma 是英式英语女声,bm_george 是英式英语男声。
| 代码 | 语言/性别 | 听感 |
|---|---|---|
af_heart |
美式女声 | 最常被推荐的默认音色,平稳 |
af_bella |
美式女声 | 略亮,适合短视频 |
am_michael |
美式男声 | 中性、播报感 |
am_fenrir |
美式男声 | 偏低沉 |
bf_emma |
英式女声 | 英音明显,适合课程 |
bm_george |
英式男声 | 稳重,适合纪录片式旁白 |
音色对最终听感的影响比参数大得多。同一句话换音色,效果可能从"可以发"变成"必须重做"。批量生产前先拿三五个音色做 A/B。
参数
| 参数 | 作用 | 建议 |
|---|---|---|
voice |
音色 | 先定音色,再调其他 |
speed |
语速倍率 | 0.9-1.1;中文旁白常用 0.95 |
lang_code |
语言 | a 美式英语、b 英式英语,其他以官方说明为准 |
split_pattern |
分句规则 | 默认按标点,长句可自定义 |
语速是最容易被滥用的旋钮。把 speed 调到 0.8 听着"沉稳",实际会让听众疲劳;短视频的加速感则来自剪辑,不是 1.3 倍的语速。
长文本怎么处理
一段几千字直接丢进去,内存占用会明显上去,出错也不好定位。做法是先按段落切,逐段合成,再拼接:
import re
paras = [p.strip() for p in re.split(r"\n\s*\n", article) if p.strip()]
for idx, p in enumerate(paras):
for i, (gs, ps, audio) in enumerate(pipe(p, voice="af_heart", speed=1.0)):
sf.write(f"seg_{idx:03d}_{i:02d}.wav", audio, 24000)
文件按序号命名,拼接顺序就不会乱。有声书这类长内容,建议同时记一份"段落-文件"映射表,后期改一句只需要重合成那一段。
中文能用吗
能,但要装对应的语言依赖(中文需要额外的文本前端包),并且中文音色的自然度目前不如英语。中文场景的实际建议:先试听官方提供的音色样例,确认可接受再投入生产;对语气要求高的商业配音,仍然要人工或云端方案兜底。
成本对比
本地合成的边际成本是零:不限字数、不限次数、不按字符计费,也不上传文本。云端 TTS 按字符计费,长内容成本线性增长,且文本要出机器。
对批量做视频旁白、有声书、课程音频的人来说,这个差别在量上去以后非常明显。对只需要偶尔合成几句的人,云端更省事。
短板
- 情感与重音控制弱:想表达"讽刺""激动"这类语气,它给不了。
- 多语言不均衡:英语最强,其他语言以官方支持为准。
- 音色数量有限:需要品牌统一音色或定制声音时,云厂商的工具更成熟。
- 没有原生流式低延迟优化到极致:实时对话场景要自己做缓冲。
常见问题
Q:需要显卡吗? A:不需要。模型小,CPU 上可接近实时,有 GPU 更快但非必需。
Q:商用可以吗? A:模型许可证允许商用(以模型卡与仓库 LICENSE 为准),但训练数据来源和音色相似性问题要自己评估,尤其是模仿真人声音的场景。
Q:能克隆我的声音吗? A:Kokoro 本身是预训练音色模型,不是声音克隆工具。要做音色克隆,得用支持少样本微调的方案,或在 Kokoro 上做额外训练。
Q:生成的音频有杂音或截断? A:多半是分句太长或文本里有异常字符。缩短单次输入、清理特殊符号,再试。
Q:能直接输出 mp3 吗? A:库输出的是 numpy 数组,先写 wav,再用 ffmpeg 转 mp3。
注:安装依赖、支持的语种与音色列表随版本变化,以 Kokoro 官方仓库说明为准;听感描述为主观评价。
相关文章
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。