开源项目OpenVoice的本地部署

前言

  本文介绍开源项目OpenVoice的本地部署,基于VsCodeAnaconda(提供python虚拟环境),来进行部署的。下述不介绍Anaconda的安装流程,要自行安装。且只截图演示关键部分图文演示。

官方项目介绍:OpenVoice:多功能即时语音克隆 |MyShell 人工智能

材料

  • Anaconda的官网以及教程:Anaconda,Anaconda 菜鸟教程,上述教程不清楚的话,可在搜索其它相关教程,本文不在赘述。
  • VsCode可以到官网直接下载,不过想必要用到开源项目的人都会人手装有了吧。Visual Studio Code

步骤

除了上述说所的软件外,下述中还需要下载ffmpeg,和在VsCode添加Jupyter扩展

下载ffmpeg

ffmpeg官网目前发布到了7.1了,但是我看都多选择6.1.1版本,所以可以去它的GitHub上找到指定的版本。CODEX FFMPEG,Releases · GyanD/codexffmpeg (github.com)

下载解压包后,可以在搜索栏搜索打开编辑系统环境变量 ->点击右下角 环境变量 -> 在下栏的环境变量中选择变量Path,选中后点击编辑 -> 然后新建,把解压的路径放进去,例如我的是D:\my\ffmpeg\ffmpeg-6.1.1-full_build\bin。

在这里插入图片描述

win(微软图标)+R,输入cmd,进入命令行,验证是否成功安装:

ffmpeg -version

在这里插入图片描述

VsCode添加Jupyter扩展

在VsCode的插件中搜索Jupyter扩展,下载即可。

在这里插入图片描述

VsCode打开项目

获取OpenVoice项目,在GitHub - OpenVoice,下载项目ZIP压缩包,或者Git拉取都可以,这里也不赘述了。并在VsCode中打开,创建并选择python虚拟环境。

创建python虚拟环境

该步骤的前提是确保Anaconda以及被安装在电脑上了。

打开VsCode的终端(Ctrl+ `)或者打开系统的CMD命令行。

查看是否安装了Anaconda

Anaconda -V

在这里插入图片描述

创建python虚拟环境,有[y]/n的选项,y下载就行了。

conda create --name OpenVoice python=3.9

是否创建成功可以,用下述命令查看:

conda env list

VsCode中载入虚拟环境

在选择环境时会搜索出虚拟环境,选择就好了。

在这里插入图片描述

在这里插入图片描述

选择好后,自动激活环境了

在这里插入图片描述

然后在继续执行,下述命令从文件中下载指定依赖版本(这里我好像没改过源,下载还是要一定时间的):

pip install -r requirements.txt

部署问题

在完成上述步骤后,想开始运行demo_part1.ipynb,因为是国内网络环境,所以下述两个文件在运行时的下载,几乎必定会出现的问题,参考网上的解决方案,要通过提前下载导入的方式。

  1. huggingface文件无法下载

    在itialization段代码中,报错问题截选:
    '(MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /M4869/WavMark/resolve/main/step59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model.pkl (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001AADD964790>, 'Connection to huggingface.co timed out. (connect timeout=10)'))"), '(Request ID: 012bc077-12af-441a-8b68-571f9aa0da2d)')' thrown while requesting HEAD https://huggingface.co/M4869/WavMark/resolve/main/step59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model.pkl
    

    step59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model.pkl将文件放到C:\Users\XYZ\.cache\huggingface\hub\models--M4869--WavMark文件夹下。XYZ为电脑用户名,models--M4869--WavMark为下载时生成的文件夹。

    且,在D:\my\Anaconda\envs\OpenVoice\Lib\site-packages\wavmark\__init__.py中,将代码改成手动读取,然后把项目代码保存重启:

    def load_model(path="default"):
        if path == "default":
        #     # resume_path = hf_hub_download(repo_id="M4869/WavMark",
        #     #                               filename="step59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model.pkl",
        #     #                               )
            resume_path = "C:/Users/XYZ/.cache/huggingface/hub/models--M4869--WavMark/step59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model.pkl"
        # else:
        #     resume_path = path
        model = my_model.Model(16000, num_bit=32, n_fft=1000, hop_length=400, num_layers=8)
        checkpoint = torch.load(resume_path, map_location=torch.device('cpu'))
        model_ckpt = checkpoint
        model.load_state_dict(model_ckpt, strict=True)
        model.eval()
        return model
    
  2. silero无法下载

    这个忘记记录问题片段了。

    将目标文件snakers4-silero-vad-v5.1.2-5-ge531cd3.zip,解压到该文件夹下C:\Users\XYZ\.cache\torch\hub\snakers4_silero-vad_master,注意只是将内容解压进去,不要包含压缩包文件的名称文件夹。

基本使用

如果按照上述流程,那么应该是能跑通demo_part1.ipynb,文件了。跑通了,会输出生成消息,音频信息会在/outputs下。

替换训练者的音频

reference_speaker = 'resources/ky_kk.mp3' # This is the voice you want to clone

替换输入音频文本

# Run the base speaker tts
text = """今天天气很好!"""

总结

初次体验:用的是默认demo_part1.ipynb的配置,配出来的人声确实一股外国腔,部分语句还有点模糊。不知道是有什么还没有配置好。

ffmpeg-6.1.1-full_buildOpenVoice-mainsnakers4-silero-vad-v5.1.2-5-ge531cd3.zipstep59000_snr39.99_pesq4.35_BERP_none0.30_mean1.81_std1.81.model

文中所用到的资源链接:https://pan.baidu.com/s/1EO53Gnb1pJOp22CcJT7-2g  提取码:6p5t

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909857.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue 全家桶】2、Vue 组件化编程

目录 模块与组件、模块化与组件化 component模块组件 非单文件组件单文件组件 .vue 模块与组件、模块化与组件化 component 模块 组件 局部功能代码和资源的集合 非单文件组件 // 1、创建组件 const school Vue.extend({data(){return {}} }) const student Vue.extend(…

11.6 校内模拟赛总结

打的很顺的一场 复盘 7:40 开题&#xff0c;看到题目名很interesting T1 看起来很典&#xff0c;中位数显然考虑二分&#xff0c;然后就是最大子段和&#xff1b;T2 构造&#xff1f;一看数据范围这么小&#xff0c;感觉不是很难做&#xff1b;T3 神秘数据结构&#xff1b;T…

nacos本地虚拟机搭建切换wiff问题

背景 在自己的电脑上搭建了vm虚拟机&#xff0c;安装上系统&#xff0c;设置网络连接。然后在vm的系统上安装了中间件nacos&#xff0c;mysql&#xff0c;redis等&#xff0c;后续用的中间件都是在虚拟机系统上安装的&#xff0c;开发在本地电脑上。 我本地启动项目总是请求到…

深入探讨钉钉与金蝶云星空的数据集成技术

钉钉报销数据集成到金蝶云星空的技术案例分享 在企业日常运营中&#xff0c;行政报销流程的高效管理至关重要。为了实现这一目标&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将钉钉的行政报销数据无缝对接到金蝶云星空的付款单系统。本次案例将重点介绍如何通过API接…

Rust 力扣 - 3090. 每个字符最多出现两次的最长子字符串

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 本题使用滑动窗口进行求解&#xff0c;使用左指针和右指针分别表示窗口的左边界和窗口的右边界&#xff0c;使用哈希表记录窗口内的字符及其对应数量 我们首先向右移动右指针&#xff0c;将字符加入到哈希表中进…

Jekins篇(搭建/安装/配置)

目录 一、环境准备 1. Jenkins安装和持续集成环境配置 2. 服务器列表 3. 安装环境 Jekins 环境 4. JDK 环境 5. Maven环境 6. Git环境 方法一&#xff1a;yum安装 二、JenKins 安装 1. JenKins 访问 2. jenkins 初始化配置 三、Jenkins 配置 1. 镜像配置 四、Mave…

uniApp使用canvas制作签名板

插件市场大佬封装好的 组件 可以直接拿过去 <template><viewclass"whole canvas-autograph flexc"touchmove.prevent.stopwheel.prevent.stopv-show"modelValue"><canvasclass"scroll-view"id"mycanvas"canvas-id&quo…

解决Knife4j 接口界面UI中文乱码问题

1、查看乱码情况 2、修改 编码设置 3、删除 target 文件 项目重新启动 被坑死了

FFmpeg 4.3 音视频-多路H265监控录放C++开发八,使用SDLVSQT显示yuv文件 ,使用ffmpeg的AVFrame

一. AVFrame 核心回顾&#xff0c;uint8_t *data[AV_NUM_DATA_POINTERS] 和 int linesize[AV_NUM_DATA_POINTERS] AVFrame 存储的是解码后的数据&#xff0c;&#xff08;包括音频和视频&#xff09;例如&#xff1a;yuv数据&#xff0c;或者pcm数据&#xff0c;参考AVFrame结…

【算法】递归+深搜+哈希表:889.根据前序和后序遍历构造二叉树

目录 1、题目链接 相似题目: 2、题目 ​3、解法&#xff08;针对无重复值&#xff0c;哈希表递归&#xff09; 函数头-----找出重复子问题 函数体---解决子问题 4、代码 1、题目链接 889.根据前序和后序遍历构造二叉树&#xff08;LeetCode&#xff09; 相似题目: 105.…

基于SpringBoot的“乐校园二手书交易管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“乐校园二手书交易管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 二手…

“高效开发之路:用Spring MVC构建健壮的企业级应用”

一、SpringMVC框架概念&#xff1a; &#xff08;一&#xff09;概述 SpringMVC是Spring框架的一个模块&#xff0c;Spring和SpringMVC无需中间整合层整合。该模块是一个基于MVC的web框架。 作用&#xff1a;只要需要前后端通信&#xff0c;就需要springMVC帮我完成&#xff…

练习LabVIEW第四十一题

学习目标&#xff1a; 编写一个程序测试自己在程序前面板上输入一段文字“CSDN是一个优秀的网站”所用的时间。 开始编写&#xff1a; 前面板放置一个数值显示控件&#xff0c;程序框图添加顺序结构共三帧&#xff0c;第一帧放一个获取日期/时间&#xff08;秒&#xff09;函…

编程之路:蓝桥杯备赛指南

文章目录 一、蓝桥杯的起源与发展二、比赛的目的与意义三、比赛内容与形式四、比赛前的准备五、获奖与激励六、蓝桥杯的影响力七、蓝桥杯比赛注意事项详解使用Dev-C的注意事项 一、蓝桥杯的起源与发展 蓝桥杯全国软件和信息技术专业人才大赛&#xff0c;简称蓝桥杯&#xff0c…

Cofounder:全栈 AI 应用开发 Agent,基于单一提示生成完整的应用程序

❤️ 如果你也关注大模型与 AI 的发展现状&#xff0c;且对大模型应用开发非常感兴趣&#xff0c;我会快速跟你分享最新的感兴趣的 AI 应用和热点信息&#xff0c;也会不定期分享自己的想法和开源实例&#xff0c;欢迎关注我哦&#xff01; &#x1f966; 微信公众号&#xff…

神奇!KMeans也可以进行图像语义分割?基于k-Means的遥感图像语义分割实战

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

2.2、软件生命周期模型介绍

软件生命周期模型 1. 传统软件过程模型1.1 瀑布模型Waterfall model1.2 V模型1.3 原型模型&#xff08;降低需求不明确的风险&#xff09;1.4 增量模型&#xff08;降低需求变化风险&#xff09;1.5 螺旋模型1.6 喷泉模型 2. 现代模型2.1 基于构件的开发模型2.2 统一过程RUP:Ra…

推荐程序员好用的浏览器插件

推荐程序员好用的浏览器插件 1. 网页颜色控制&#xff1a;Dark Reader安装效果 2. 前端助手&#xff1a;FeHelper安装效果 3. markdown可视化&#xff1a;Markdown Reader安装效果 4. ES插件&#xff1a;Multi Elasticsearch Heads安装效果 1. 网页颜色控制&#xff1a;Dark Re…

使用Jest进行JavaScript单元测试

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…

白杨SEO:百度在降低个人备案类网站搜索关键词排名和流量?怎样应对?【参考】

很久没有写百度或者网站这块内容了&#xff0c;一是因为做百度网站朋友越来越少&#xff0c;不管是个人还是企业&#xff1b;二是百度上用户搜索与百度给到网站的流量都越来越少。 为什么想到今天又来写这个呢&#xff1f;因为上个月有个朋友来咨询我说网站百度排名全没了&…