kokoro 82M参数的声音模型kokoro-onnx,支持中文

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:

  1. Kokoro v0.19: 82M params, Apache, trained on <100 hours of audio
  2. XTTS v2: 467M, CPML, >10k hours
  3. Edge TTS: Microsoft, proprietary
  4. MetaVoice: 1.2B, Apache, 100k hours
  5. Parler Mini: 880M, Apache, 45k hours
  6. 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
    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文件重新下载了一遍。

问题解决

 

你可能感兴趣的:(人工智能,人工智能)