【开源语音项目OpenVoice](一)——实操演示

news2024/10/7 13:18:04

目录

一、前菜

1、Python选择

2、pip源切换

3、ffmpeg配置问题

4、VSCode添加Jupyter扩展

 二、配置虚拟环境

1、下载源码

方法一 直接下载源码压缩包

方法二 使用git

1)git加入鼠标右键

2)git clone源码

2、VSCode出场

1)创建python虚拟环境

 2)安装所需插件

A、没有意外

B、若有意外

3)激活python虚拟环境

 4)安装ipykernel

5) 安装ipywidgets

6)下载checkpoints

3、操作模型

1)第一步

2)第二步 

3)第三步

4)第四步

5)第五步

 4、简单讲解

三、模型深度解析


一、前菜

开始之前,前菜是必备的,需要先设置好。

1、Python选择

本项目使用的python版本是3.9版,因此,实操之前需要安装python3.9.

这里简单说明即可。

官网Python Release Python 3.9.0 | Python.orgDownload Python | Python.org,系统为Windows版,点击如图windowsPython Release Python 3.9.0 | Python.org

这里就不纠结了,直接3.9.0版本即可。 

 安装时以管理员身份运行,选择自定义安装。以3.12.2为例,其实是一样的。

注意勾选将python加入环境变量,就不需要手动添加环境变量了。

 另外,选择自定义安装位置。其他默认即可。

2、pip源切换

勾选显示隐藏的项目

切到路径C:\Users\whyafer\AppData\Roaming\pip,其中,whyafer为自己的电脑用户名。记事本打开pip.ini文件,删除原有的代码,覆盖如下代码即可。

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

 这样可以一劳永逸地解决安装插件时网络问题。

3、ffmpeg配置问题

使用的python虚拟环境会用到ffmpeg,但需要环境变量的配置。

官网Builds - CODEX FFMPEG @ gyan.dev下载6.1.1即可

选择一个位置,解压,然后打开环境变量设置。

按win键,输入环境变量

双击系统变量,path 

 依次选择

 点击到ffmpeg解压的bin文件夹下

 

确定即可

 按win键,cmd,输入如下代码

ffmpeg -version

说明配置完成。

若还是不行,则需要另外的操作。

配合创建的python虚拟环境使用。找到路径:.venv\Lib\pydub\utils.py,找到which()函数下如下代码

 下一行添加:路径为自己解压路径。保存ctrl+s即可。

    envdir_list.append(r'D:\pythonvenv\ffmpeg\ffmpeg-7.0-full_build\bin')

4、VSCode添加Jupyter扩展

点击F1,选择Extensions:Install Extensions

 输入Jupyter搜索,安装第一个即可,会自动安装附带扩展。

 二、配置虚拟环境

1、下载源码

源码地址:myshell-ai/OpenVoice: Instant voice cloning by MyShell. (github.com)

两种方法

方法一 直接下载源码压缩包

建议使用此方法。如图下载压缩包,解压到你新建的空白项目文件夹下即可。

方法二 使用git

如果你电脑里有git,可以使用

首先,新建文件夹

在空文件夹下,右键鼠标选择Git Bash Here,前提是你已经将git加入鼠标右键了。如果没有的话,请将git加入鼠标右键。

1)git加入鼠标右键

win+R,输入regedit,打开注册表,收起计算机项目

 在地址栏输入如下代码,回车enter

\HKEY_CLASSES_ROOT\Directory\Background

 在Background\shell下,新建项“Git Bash Here”,名称随意。然后,在新建项下,新建项“command",我是已经新建好的。

 

 然后,点击新建项"Git Bash Here",随后注册表右侧空白处右键新建字符串值,命名为"Icon"。

还是在鼠标点击"Git Bash Here"的情况下,即上图1,双击右侧默认项,值为”Git Bash Here",即显示在鼠标右键的名称。

 双击"Icon",值为"E:\software\Git\mingw64\share\git\git-for-windows.ico",为鼠标右键的图标。

然后,鼠标点击"commond",双击右侧默认项,值为:" E:\software\Git\git-bash.exe"

2)git clone源码

在新建的空白项目文件夹下,右键鼠标,选择"Git Bash Here",若没有这个选择,可能需要点击"显示更多选项",在控制台输入如下代码,回车即可。

git clone https://github.com/myshell-ai/OpenVoice.git

 

2、VSCode出场

1)创建python虚拟环境

使用VSCode打开项目,按F1按钮,选择如图选项,Python:Select Interpreter

 选择新建虚拟环境

选择"Venv"

 选择3.9python

若没有3.9python选项,选择第一个"Enter interpreter path"

 点击"Find",选到你按照python3.9的文件夹下的python.exe即可。

 2)安装所需插件

A、没有意外

正确切换pip源之后,一般是不会出现意外的。

选好python编译器之后,勾选如图项,然后点击ok。过程需要些时间,耐心等待VSCode安装完成。

 不要动,等待就好。

B、若有意外

如果你没有勾选上一步,那么就需要手动操作安装了。

此步骤在激活python虚拟环境的情况下,在控制台,输入代码

pip install -r requirements.txt

3)激活python虚拟环境

选择Terminal->New Terminal

 下方输入代码,回车enter即可。

.\.venv\Scripts\activate

 4)安装ipykernel

激活虚拟环境的情况下,控制台输入代码

pip install ipykernel

5) 安装ipywidgets

激活虚拟环境的情况下,控制台输入代码

pip install ipywidgets

6)下载checkpoints

网址:

https://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip

直接下载压缩包,解压之后放在项目根目录下。

 checkpoints包含中文ZH和英文EN两种语言的模型处理文件。

3、操作模型

A、操作demo_part1.ipynb

点击左侧文件demo_part1.ipynb,然后点击右侧红框部分选择虚拟环境。

 选择Python Environments

选择我们创建的虚拟环境.venv 

注意:每次关闭项目或者demo_part1.ipynb文件,要依次重新执行。每个都可多次点击,以消除警告信息。

1)第一步

 点击下面的三角按钮

2)第二步 

点击Initialization下的三角按钮。

3)第三步

 执行source_se,可省略。

4)第四步

执行reference_speaker,可多点击几次,便不会出现问题。

5)第五步

执行Inference,挑选一个执行即可。默认情况下,选择英文例子。

注意:运行英文代码最好加一句,避免出错中英文checkpoints不对应。

ckpt_base = 'checkpoints/base_speakers/EN'

第一个是默认英文例子。

第二个也是英文,修改了语气与语速。

语气speaker="whispering",其余可选friendly, cheerful, excited, sad, angry, terrified, shouting

语速speed=0.9,可尝试自己。

语言language='English',为英文,切换中文为'Chinese’。

base_speaker_tts.tts(text, src_path, speaker='whispering', language='English', speed=0.9)

 第三个是中文,只有默认语气。

B、操作demo_part2.ipynb 

这个要使用OPENAI_API_KEY,如果你有的话,那么,应该就不需要我来实操演示了,请根据demo_part2.ipynb说明操作即可。

 4、简单讲解

要使用的训练语音为:

reference_speaker = 'resources/example_reference.mp3'

 更改自己的语音,将自己的语音文件,如"ky_kk.mp3",放在项目路径resources文件夹下,注意,为mp3后缀文件。将example_reference更改为自己语音的名称即可。刚更改好,最好重启VSCode,以防报错找不到文件。更改完毕,然后执行这一步。

以中文为例 ,但是中文不能选择语气,只有默认的。

 变量ckpt_base表示语音模仿对象语种模型处理的文件夹位置。中文ZH,英文则为EN。

ckpt_base = 'checkpoints/base_speakers/ZH'

 变量source_se用于模仿语音语调的提取训练,区分中英文。中文为zh_default_se.pth,英文为en_default_se.pth。

source_se = torch.load(f'{ckpt_base}/zh_default_se.pth').to(device)

 变量save_path表示输出的语音文件存档位置,output_chinese.wav为输出文件名,每次运行可更改,即可不断生成不同语音文件。

save_path = f'{output_dir}/output_chinese.wav'

变量text表示要输出的语音内容。 

text = "今天天气真好,我们一起出去吃饭吧。"

 变量src_path与变量save_path作用相同,使用语调为默认。默认音色输出为tmp.wav。

src_path = f'{output_dir}/tmp.wav'

因此,对于输出的语音文件,你有两个选择

output_chinese.wav和tmp.wav,随自己选择。

三、模型深度解析

敬请期待。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#操作MySQL从入门到精通(5)——查询数据

前言 在和MySql数据库交互的过程中,查询数据是使用最频繁的操作,本文详细介绍了查询数据的各种操作,包括查询一列数据、 查询两列数据、查询所有列数据、查询不重复的数据、查询指定行数据,绝对是C#操作MySql数据库史上最详细教程,能够帮助小白快速入门以及将这些功能迅速…

闪站侠洗护管理系统,洗衣洗鞋小程序软件定制,干洗连锁店软件系统搭建;

闪站侠洗护管理系统,洗衣洗鞋小程序软件定制,干洗连锁店软件系统搭建; 为了让每一个洗衣洗鞋工厂与门店的连接更加高效便捷,送洗流程更加简单轻松,拽牛科技倾心打造洗衣洗鞋管理软件。我们的目标是通过高效和优质的服务…

栈的详解和例题(力扣有效括号)

感谢各位大佬的光临,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 收入专栏:初阶数据结构_LaNzikinh篮子的博客-CSDN博客 文章目录 前言一.什么是栈二.栈的实现三.例题&#xff…

爬取学习强国视频小示例

因为需要爬取的视频数量并不是很大,总共需要将131个视频下载下来,所以就直接去手动找找视频的地址和名称保存下来的。由于页面是动态加载的,所以我们无法在网站源码中直接找到视频的超链接。设想是可以用Selenium模拟浏览器点击进行动态加载获…

excel统计分析——多项式回归

参考资料:生物统计学 多项式回归属于单变量曲线回归,但其形式和求解方法与多元线性回归相似。多项式回归的数学模型为: 令,,,,则 由于X不可逆,两边同时乘以X得,&#xff…

《QT实用小工具·十五》多种样式的开关控件

1、概述 源码放在文章末尾 目前实现了三种样式的开关控件按钮&#xff0c;如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef IMAGESWITCH_H #define IMAGESWITCH_H/*** 图片开关控件 * 1. 自带三种开关按钮样式。* 2. 可自定义开关图片。*/#include <QWid…

使用Android完成案例教学

目录 题目&#xff1a;完成在Android平台下2个玩家分别利用2个手机连接在同一局域网下通过滑动摇杆分别使红飞机和黄飞机移动的开发。&#xff08;全代码解析&#xff09; 题目&#xff1a;完成在Android平台下2个玩家分别利用2个手机连接在同一局域网下通过滑动摇杆分别使红飞…

利用native的方式实现跨线程调用

简介 在OpenHarmony应用开发实践中&#xff0c;经常会遇到一些耗时的任务&#xff0c;如I/O操作、域名解析以及复杂计算等。这些任务如果直接在主线程中执行&#xff0c;将会严重阻塞主线程&#xff0c;影响后续任务的正常流程&#xff0c;进而导致用户界面响应延迟甚至卡顿。…

基于沙漏 Tokenizer 的高效三维人体姿态估计框架HoT

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;基于沙漏 Tokenizer 的高效三维人体姿态估计框架HoT1、研究背景2、提出方法3、模块详细3.1、什么是HoT3.2、HoT 框架3.3、Token 剪…

JS 利用 webcam访问摄像头 上传到服务器

webcam JS 较为详细的指南 定义标题 <!doctype html> <html> <head><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>How to capture picture from webcam with Webcam.js</title></…

【UnityRPG游戏制作】Unity_RPG项目之界面面板分离和搭建

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

计算机视觉——基于傅里叶幅度谱文档倾斜度检测与校正

概述 在计算机视觉领域&#xff0c;处理文档数据时&#xff0c;OCR算法的性能往往会受到文档的倾斜度影响。如果文档在输入到模型之前没有经过恰当的校正&#xff0c;模型就无法期待模型能够提供准确的预测结果&#xff0c;或者模型预测的精度会降低。例如&#xff0c;在信息提…

python上传以及下载AWS S3上的文件

​ 免死金牌 由于本人平常是做NodeJS开发的&#xff0c;本次做的任务含有 Scheduled Job &#xff0c;所以选择了使用Python作为这次开发的语言&#xff0c;毕竟跑脚本还是这玩意适合。 其中有一个任务是要从S3上拉下一些文件来处理&#xff0c;处理完成后再push 上去的需求…

深入浅出 -- 系统架构之负载均衡Nginx动静分离

一、Nginx动静分离 动静分离应该是听的次数较多的性能优化方案&#xff0c;那先思考一个问题&#xff1a;为什么需要做动静分离呢&#xff1f;它带来的好处是什么&#xff1f; 其实这个问题也并不难回答&#xff0c;当你搞懂了网站的本质后&#xff0c;自然就理解了动静分离的重…

【学习分享】小白写算法之选择排序篇

【学习分享】小白写算法之选择排序篇 前言一、什么是选择排序算法二、选择排序算法如何实现三、C语言实现算法四、复杂度计算五、算法稳定性六、小结 前言 简单排序有三种&#xff0c;冒泡排序&#xff0c;插入排序和选择排序。这三种排序的算法算是入门级别的&#xff0c;打好…

torchvision中的数据集使用

torchvision中的数据集使用 使用和下载CIFAR10数据集 输出测试集中的第一个元素&#xff08;输出img信息和target&#xff09; 查看分类classes 打断点–>右键Debug–>找到classes 代码 import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./data…

显示学习1(基于树莓派Pico) -- 基础

先上图为敬。 驱动的是0.96寸的OLED&#xff0c;SSD1315。使用的I2C接口驱动。 有一说一树莓派Pico用来学习底层真的太好了&#xff0c;没有之一。首先是价格便宜&#xff0c;10块钱包邮还要什么自行车。然后底层封装很完备&#xff0c;接近闭源。最后是用的python&#xff0c…

4.2.k8s的pod-标签管理、镜像拉取策略、容器重启策略、资源限制、优雅终止

一、标签管理 1.标签在k8s中极其重要&#xff0c;大多数资源的相互关联就需要使用标签&#xff1b;也就是说&#xff0c;资源的相互关联大多数时候&#xff0c;是使用标签进行关联的&#xff1b; 2.其他作用&#xff0c;在k8s集群中&#xff0c;node节点的一些操作比如污点及污…

Python向带有SSL/TSL认证服务器发送网络请求小实践(附并发http请求实现asyncio+aiohttp)

1. 写在前面 最近工作中遇到这样的一个场景&#xff1a;给客户发送文件的时候&#xff0c;为保证整个过程中&#xff0c;文件不会被篡改&#xff0c;需要在发送文件之间&#xff0c; 对发送的文件进行签名&#xff0c; 而整个签名系统是另外一个团队做的&#xff0c; 提供了一…

c# wpf XmlDataProvider 简单试验

1.概要 2.代码 <Window x:Class"WpfApp2.Window12"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend…