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

超详细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完成语音合成部分。

 

http://www.xdnf.cn/news/5386.html

相关文章:

  • JavaScript基础-switch分支流程控制
  • 3498. 字符串的反转度
  • MATLAB安装常见问题及解决方案详解(含代码示例)
  • 抖音app 抓包分析
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(18):条件形 文法
  • AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
  • 【python】json解析:invalid literal for int() with base 10: ‘\“\“‘“
  • 模型 启动效应
  • python如何提取Chrome中的保存的网站登录用户名密码?
  • 【日撸 Java 三百行】综合任务 1
  • Spark流水线在线演示
  • 小程序初始化加载时间优化 步骤思考与总结
  • (二)Linux下基本指令 2
  • 碰一碰发视频源码搭建的定制化开发指南,支持OEM
  • Vue v-model 深度解析:实现原理与高级用法
  • 【c++】多态详解
  • 【MySQL】数据表插入数据
  • 基于python的少儿兴趣班推荐系统的设计与实现
  • 微服务6大拆分原则
  • C++修炼:stack和queue
  • 服务器综合实验(实战详解)
  • 【新教程】Linux服务器ssh启用两步验证
  • 什么是深拷贝什么是浅拷贝,两者区别
  • PPO近端策略优化算法
  • Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨
  • shell 编程之正则表达式与文本处理器
  • JS逆向-7881游戏平台Lb-Sign参数和Lb-Timestamp参数
  • SaaS场快订平台项目说明【持续更新】
  • ensp的华为小实验
  • 管道-验证和转换