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

目录

一、前菜

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,随自己选择。

三、模型深度解析

敬请期待。

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

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

相关文章

VC++ 错误 Compiler Error C2018 unknown character ‘hexnumber‘

如下图,不能识别的字符0xa1, 这是代码中出现了全角空格,如下图标识的一行,等号前面出现了全角空格;改为半角空格; 如果是未知字符0xa3,则是程序中有中文符号,如程序中的引号&#xf…

【C++算法竞赛 · 图论】图论基础

前言 图论基础 图的相关概念 图的定义 图的分类 按数量分类: 按边的类型分类: 边权 简单图 度 路径 连通 无向图 有向图 图的存储 方法概述 代码 复杂度 前言 图论(Graph theory),是 OI 中的一样很大…

小米造车,特斯拉销量不满人意,马斯克坐不住了:将于8月8日推出自动驾驶出租车

在Elon Musk声称路透社关于“放弃2.5万美元低成本电动汽车计划,而将所有精力集中于Robotaxi(自动驾驶出租车)”上的报道“撒谎”仅几小时后,特斯拉首席执行官在X社交平台上宣布,他将在8月8日的活动中揭示这款所谓的Rob…

Android APP加固利器:深入了解混淆算法与混淆配置

Android APP 加固是优化 APK 安全性的一种方法,常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆,使得反编译出来的代码很难阅读和理解&#xff…

相对论中关于光速不变理解的补充

近几个月在物理直播间聊爱因斯坦相对论,发现好多人在理解爱因斯坦相对论关于基本假设,普遍认为光速是不变的,质能方程 中光速的光速不变的,在这里我对这个假设需要做一个补充,他是基于质能方程将光速C 在真是光速变化曲…

JavaEE 初阶篇-生产者与消费者模型(线程通信)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 生产者与消费者模型概述 2.0 在生产者与消费者模型中涉及的关键概念 2.1 缓冲区 2.2 生产者 2.3 消费者 2.4 同步机制 2.5 线程间通信 3.0 实现生产者与消费者模…

【Python】 小顶堆:困难 Leetcode 23. 合并 K 个升序链表 -- Python中heapq对于自定义数据类型的比较

描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 代码 代码1 由于可能存在相同…

构造函数和析构函数

目录 一:类的六个默认函数 二:构造函数 2.1概念 2.2特性 三:析构函数 3.1概念: 3.2特性 一:类的六个默认函数 如果一个类中什都没有,称为空类 空类中真的什么都没有吗?并不是,任何类在…

MySQL客户端安装并配置免密登录

最近在写脚本时需要向MySQL数据库中存储数据,且脚本运行的服务器与MySQL服务器不是同一台服务器,而且需要保证MySQL密码的安全性,不能在脚本中暴露,所以就需要在服务器上安装MySQL客户端,并配置免密登录。 一、虚拟机…

C++ List 到 Python List 的转换

当我们编写 C 库的封装器通常涉及使用一种跨语言的接口技术,比如使用C接口或者使用特定的跨语言库,比如SWIG(Simplified Wrapper and Interface Generator)或者Pybind11。这里我将简要介绍如何使用Pybind11来封装一个C库&#xff…

jenkins+docker实现可持续自动化部署springboot项目

目录 一、前言 二、微服务带来的挑战 2.1 微服务有哪些问题 2.2 微服务给运维带来的挑战 三、可持续集成与交付概述 3.1 可持续集成与交付概念 3.1.1 持续集成 3.1.2 持续交付 3.1.3 可持续集成与交付核心理念 3.2 可持续集成优点 3.3 微服务为什么需要可持续集成 四…

金三银四面试题(十五):Java基础问题(6)

这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。 HashMap与ConcurrentHashMap 都是key-value 形式的存储数据; HashMap 是线程不安全的,ConcurrentHashMap 是JUC 下的线程安全的; HashMap 底层…

降低笔记本电脑噪音的七种方法,看下有没有适合你的

序言 无论是玩游戏、浏览网络还是做严肃的工作,差不多都有这么一台笔记本电脑,它有足够的处理能力来处理几乎任何事情。不幸的是,它可能会变得非常大声,但有办法来遏制这种噪音。 清洁通风口和风扇,并使用硬表面 如果你的笔记本电脑现在比过去运行同样的软件时声音更大…

docker笔记(二):镜像、容器数据卷

四、 docker镜像 4.1 镜像 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、库、环境变量和配置文件 所有的应用,直接打包docker镜像就可以直…

深度学习500问——Chapter05: 卷积神经网络(CNN)(4)

文章目录 5.18 卷积神经网络凸显共性的方法 5.18.1 局部连接 5.18.2 权值共享 5.18.3 池化操作 5.19 全连接、局部连接、全卷积与局部卷积 5.20 局部卷积的应用 5.21 NetVLAD池化 参考文献 5.18 卷积神经网络凸显共性的方法 5.18.1 局部连接 我们首先了解一个概念&#xff0c…

Office办公软件之Excel的使用(一)

1、“开始”菜单中的部分属性 2、制作斜线表头 ctrl1,弹出设置单元格格式,选择“边框”,点击右下角有斜线的即可。 3、冻结窗口 一般冻结首列或首行,当我们翻页的时候,也能看到每一行的描述。 4、快捷键 1、 Ctrl1 设置单元格格…

【Java基础知识总结 | 第十篇】HashSet底层实现原理

文章目录 10.HashSet底层实现原理10.1HashSet特点10.2HashSet源码10.3 add流程10.4总结 10.HashSet底层实现原理 10.1HashSet特点 存储对象:HashSet 存储对象采用哈希表的方式,它不允许重复元素,即集合中不会包含相同的元素。当向 HashSet …

C语言实现快速排序算法

1. 什么是快速排序算法 快速排序的核心思想是通过分治法(Divide and Conquer)来实现排序。 算法的基本步骤是: 1. 选择一个基准值(通常是数组中的某个元素),将数组分成两部分,使得左边的部分所有元素都小于…

2024.4.1-[作业记录]-day06-认识 CSS(三大特性、引入方式)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! day06-认识 CSS(三大特性、引入方式) 文章目录 day06-认识 CSS(三大特性、引入方式)作业…

xss.pwnfunction-Ma Spaghet!

根据代码得知 这个是根据get传参的并且是由someboby来接收参数的 所以 <script>alert(1137)</script> js并没有执行因为 HTML5中指定不执行由innerHTML插入的<script>标签 所以 ?somebody<img%20src1%20onerror"alert(1337)"> 这样就成…