当前位置: 首页 > news >正文

超详细Kokoro-82M本地部署教程

经测试,Kokoro-82M的语音合成速度相比于其他tts非常的快,本文给出Windows版详细本地部署教程。

这里提供原始仓库进行参考:https://github.com/hexgrad/kokoro

一、依赖安装

1.新建conda环境

conda create --n kokoro python=3.12
conda activate kokoro

2.安装GPU版本torch

由于要用到CUDA的模型能力生成语音,记得安装GPU版本的torch

记得按照自己电脑CUDA版本进行安装or向下兼容

安装网址:https://pytorch.org/

示例(CUDA12.4):

conda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=12.4 -c pytorch -c nvidia

3.手动安装espeak-ng依赖

前往espeak-ng的官方GitHub仓库地址:https://github.com/espeak-ng/espeak-ng

①点击Releases

②下翻找到1.51

③找到Assets

根据自己的电脑版本选择.msi文件,我的是X64的系统所以下载了espesk-ng-X64.msi

下载后直接双击运行即可,一直点同意就行,这个安装很简单且快

4.其他依赖安装

pip install kokoro
pip install ordered-set
pip install cn2an
pip install pypinyin_dict

 

二、模型下载

我下载了kokoro-v1.0和kokoro-v1.1,但是最后好像只用到了v1.1,可以根据需要进行选择

export HF_ENDPOINT=https://hf-mirror.com # 引入镜像地址
huggingface-cli download --resume-download hexgrad/Kokoro-82M --local-dir ./ckpts/kokoro-v1.0
huggingface-cli download --resume-download hexgrad/Kokoro-82M-v1.1-zh --local-dir ./ckpts/kokoro-v1.1

三、代码测试

官方仓库没有给单独测试的python代码,这里给出:

(可以修改sentence部分为自己想转语音的文字)

import torch
import time
from kokoro import KPipeline, KModel
import soundfile as sfvoice_zf = "zf_001"
voice_zf_tensor = torch.load(f'ckpts/kokoro-v1.1/voices/{voice_zf}.pt', weights_only=True)
voice_af = 'af_maple'
voice_af_tensor = torch.load(f'ckpts/kokoro-v1.1/voices/{voice_af}.pt', weights_only=True)repo_id = 'hexgrad/Kokoro-82M-v1.1-zh'
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model_path = 'ckpts/kokoro-v1.1/kokoro-v1_1-zh.pth'
config_path = 'ckpts/kokoro-v1.1/config.json'
model = KModel(model=model_path, config=config_path, repo_id=repo_id).to(device).eval()def speed_callable(len_ps):speed = 0.8if len_ps <= 83:speed = 1elif len_ps < 183:speed = 1 - (len_ps - 83) / 500return speed * 1.1zh_pipeline = KPipeline(lang_code='z', repo_id=repo_id, model=model)
sentence = '你好,这是一个语音合成测试。'
start_time = time.time()
generator = zh_pipeline(sentence, voice=voice_zf_tensor, speed=speed_callable)
result = next(generator)
wav = result.audio
speech_len = len(wav) / 24000
print('yield speech len {}, rtf {}'.format(speech_len, (time.time() - start_time) / speech_len))
sf.write('output.wav', wav, 24000)

生成的语音文件会保存到output.wav中,会出现一些红色的警告,如果不是error就不用管,会正常运行的。

运行结果如下:

测试结果:

“你好,这是一个语音合成测试。”生成时间0.32秒左右

相比于fish-speech和之前用的edgetts的3~4秒生成时间快了非常多,最终项目选择使用kokoro完成语音合成部分。

 

相关文章:

  • 自定义类型-结构体(二)
  • 本地大模型工具深度评测:LM Studio vs Ollama,开发者选型指南
  • Java多线程(超详细版!!)
  • C++STL——priority_queue
  • 【Redis】基础命令数据结构
  • 【C++】string类
  • Linux进程间通信(四)之补充【日志】
  • 算法训练营第十三天|226.翻转二叉树、101. 对称二叉树、 104.二叉树的最大深度、111.二叉树的最小深度
  • 使用 librosa 测量《忘尘谷》节拍速度
  • 人形机器人量产元年开启,AI与物理世界深度融合
  • 局域网常用的测速工具,Iperf3使用教程
  • 数仓-如何保障指标的一致性
  • U盘制作系统盘(含U盘恢复)
  • dockerfile编写入门
  • 正式部署abp vnext应用程序时,如何生成openiddict.pfx证书文件
  • Proser:在使用中改进
  • 21、DeepSeekMath论文笔记(GRPO)
  • 如何更改typora图片存储位置
  • 从前端视角看网络协议的演进
  • 【入门】数字走向II
  • 外交部就习近平主席将出席中拉论坛第四届部长级会议开幕式介绍情况
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 迪拜金融市场CEO:2024年市场表现出色,超八成新投资者来自海外
  • 正荣地产:前4个月销售14.96亿元,控股股东已获委任联合清盘人
  • 44岁街舞运动推广者、浙江省街舞运动协会常务理事钟永玮离世