kokoro大约是官网:github.com
onnx推理官网:GitHub - thewh1teagle/kokoro-onnx: TTS with kokoro and onnx runtime
可以参考这个文档使用:Kokoro-82M 实战:最强 TTS 开源模型 Windows 本地极简部署完全攻略_kokoro tts 本地部署-CSDN博客
实践下来英文不错,中文还欠缺些。
kokoro 82M参数的声音模型介绍
❤️ Kokoro Discord Server: https://discord.gg/QuGxSWBfQy
📣 Got Synthetic Data? Want Trained Voicepacks? See https://hf.co/posts/hexgrad/418806998707773
Kokoro is a frontier TTS model for its size of 82 million parameters (text in/audio out).
On 25 Dec 2024, Kokoro v0.19 weights were permissively released in full fp32 precision under an Apache 2.0 license. As of 2 Jan 2025, 10 unique Voicepacks have been released, and a .onnx
version of v0.19 is available.
In the weeks leading up to its release, Kokoro v0.19 was the #1🥇 ranked model in TTS Spaces Arena. Kokoro had achieved higher Elo in this single-voice Arena setting over other models, using fewer parameters and less data:
- Kokoro v0.19: 82M params, Apache, trained on <100 hours of audio
- XTTS v2: 467M, CPML, >10k hours
- Edge TTS: Microsoft, proprietary
- MetaVoice: 1.2B, Apache, 100k hours
- Parler Mini: 880M, Apache, 45k hours
- Fish Speech: ~500M, CC-BY-NC-SA, 1M hours
Kokoro's ability to top this Elo ladder suggests that the scaling law (Elo vs compute/data/params) for traditional TTS models might have a steeper slope than previously expected.
Kokoro Discord服务器:https://discord.gg/QuGxSWBfQy
📣 有合成数据吗?想要训练有素的语音包吗?看见https://hf.co/posts/hexgrad/418806998707773
Kokoro是一个具有8200万个参数(文本输入/音频输出)的前沿TTS模型。
2024年12月25日,Kokoro v0.19砝码在Apache 2.0许可证下以完全fp32精度获准发布。截至2025年1月2日,已经发布了10个独特的语音包,并且提供了v0.19的.onx版本。
在发布前的几周里,Kokoro v0.19排名第一🥇 TTS Spaces Arena排名第一的模特。Kokoro在这个单一语音竞技场设置中比其他型号获得了更高的Elo,使用了更少的参数和更少的数据:
Kokoro v0.19:82M params,Apache,经过<100小时的音频训练
XTTS v2:467M,CPML,>10k小时
Edge TTS:微软,专有
MetaVoice:1.2B,Apache,10万小时
Parler Mini:880M,阿帕奇,45000小时
鱼语:~500M,CC-BY-NC-SA,1M小时
Kokoro超越Elo阶梯的能力表明,传统TTS模型的缩放定律(Elo vs compute/data/params)可能比之前预期的斜率更陡。
onnx推理实践
安装
下载源代码
git clone https://github.com/thewh1teagle/kokoro-onnx
常规安装需要,如果后面使用uv来安装,那么就不需要这个源代码了
安装依赖库
pip install kokoro-onnx uv
创建工作目录并创建工作环境
cd work
mkdir kokoro
进入kokoro目录,执行
uv init -p 3.12
uv add kokoro-onnx soundfile
uv是一个类似pip但是比pip快很多的一个安装python依赖库的软件,如果刚开始接触uv有些不习惯,那么多用用,慢慢就习惯了。
如果后面报错说找不到kokoro_onnx或soundfile库,那么就用uv重新装一下:
uv pip install kokoro_onnx soundfile
安装完毕:
uv add kokoro-onnx soundfile
warning: `VIRTUAL_ENV=/home/skywalk/py312` does not match the project environment path `/home/skywalk/.venv` and will be ignored; use `--active` to target the active environment instead
Resolved 7 packages in 11ms
Prepared 1 package in 1m 33s
Installed 4 packages in 277ms
+ cffi==1.17.1
+ numpy==2.2.3
+ pycparser==2.22
+ soundfile==0.13.1
开始实践
英文实践
下载文件
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.onnx
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/voices-v1.0.bin
复制文件
将源代码example/save.py文件放置到工作目录(可选:改名为hello.py)
执行uv run save.py 或者:
uv run hello.py
如果不行,直接用python启动也可以
python save.py
英文的效果不错!
中文支持
本来以为源代码里一个参数改成zh-ch就行了,原来中文不能这么简单的用,需要使用中文例子程序,装misak库,下载中文onnx库
使用中文例子example/chinese.py,将其复制到工作目录
cp ~/github/kokoro-onnx/examples/chinese.py .
安装中文依赖库,主要是增加misak[zh]
uv pip install -U kokoro-onnx==0.4.4 soundfile==0.13.1 'misaki[zh]==0.8.4'
下载中文onnx库
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.1/kokoro-v1.1-zh.onnx
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.1/voices-v1.1-zh.bin
测试了一下,中文效果比英文差了很多。
总结
总体部署非常简单,普通cpu机器也可以较快速的推理。
由于项目使用了uv进行包依赖管理,所以对uv不熟悉的地方可能有些坑,至少我这边就不太顺利。
uv不行就使用pip安装也可以,其实uv主要在于速度快,节省时间。但是对于国内网络的现状,坑占用了一些时间,并不比直接使用pip快。
整体kokoro-onnx推理英文比较惊艳,中文比较拉....还需加强。
调试
报错没有库ModuleNotFoundError: No module named 'kokoro_onnx'
from kokoro_onnx import Kokoro
ModuleNotFoundError: No module named 'kokoro_onnx'
ModuleNotFoundError: No module named 'soundfile'
用uv或pip重新装一下:
uv pip install kokoro_onnx soundfile
转存中文报错language "zh-cn" is not supported by the espeak backend
File "/home/skywalk/py312/lib/python3.12/site-packages/phonemizer/backend/base.py", line 100, in _init_language
raise RuntimeError(
RuntimeError: language "zh-cn" is not supported by the espeak backend
原来中文不能这么简单的用,需要使用中文例子程序,装misak库,下载中文onnx库
uv pip install -U kokoro-onnx==0.4.4 soundfile==0.13.1 'misaki[zh]==0.8.4'
中文报错: Load model from kokoro-v1.1-zh.onnx failed:Protobuf parsing failed
File "/home/skywalk/work/kokoro/chinese.py", line 28, in <module>
kokoro = Kokoro("kokoro-v1.1-zh.onnx", "voices-v1.1-zh.bin")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/skywalk/py312/lib/python3.12/site-packages/kokoro_onnx/__init__.py", line 54, in __init__
self.sess = rt.InferenceSession(model_path, providers=providers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/skywalk/py312/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 465, in __init__
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/skywalk/py312/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 526, in _create_inference_session
sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from kokoro-v1.1-zh.onnx failed:Protobuf parsing failed.
把中文onnx文件重新下载了一遍。
问题解决