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

news/2024/4/30 4:00:30/文章来源:https://blog.csdn.net/weixin_46248871/article/details/137434221

目录

一、前菜

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.luyixian.cn/news_show_1046164.aspx

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

相关文章

vue实现验证码验证登录

先看效果&#xff1a; 代码如下&#xff1a; <template><div class"container"><div style"width: 400px; padding: 30px; background-color: white; border-radius: 5px;"><div style"text-align: center; font-size: 20px; m…

鲨鱼恐怖的第六感

除了视觉、嗅觉、听觉、味觉、触觉这五种感官&#xff0c; 鲨鱼还有敏锐的「第六感」&#xff1a;电觉&#xff0c;可以侦测微弱电场&#xff0c;捕捉猎物。 恐怖的背鳍划破水面&#xff0c;直逼我们而来─一头三公尺长的硕大青鲨&#xff0c;正如鱼雷般朝血腥气味方向游去。…

基于SSM的周边乡村旅游小程序

系统实现 游客注册通过注册窗口&#xff0c;进行在线填写自己的账号、密码、姓名、年龄、手机、邮箱等&#xff0c;信息编辑完成后核对信息无误后进行选择注册&#xff0c;系统核对游客所输入的账号信息是否准确&#xff0c;核对信息准确无误后系统进入到操作界面。 游客登录通…

Lesson1--数据结构前言

1. 什么是数据结构&#xff1f; 2. 什么是算法&#xff1f; 3. 数据结构和算法的重要性 4. 如何学好数据结构和算法 5. 数据结构和算法书籍及资料推荐 1. 什么是数据结构&#xff1f; 数据结构(Data Structure) 是计算机存储、组织数据的方式&#xff0c;指相互之间存在一…

宁波银行交出2023年成绩单:高成长高质量,优质服务夯实金字招牌

撰稿 |多客 来源 | 贝多财经 4月9日&#xff0c;宁波银行&#xff08;SZ:002142&#xff09;交出了2023年的业绩答卷。透过财报不难发现&#xff0c;该行在业绩表现、资产质量、创新趋势、风控能力等方面均展现出了强韧的成长性&#xff0c;无愧城商行“优等生”之名。 进入2…

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时&#xff1a; 走正常页面的退出流程&#xff1a;onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时&#xff1a; 走正常页面的创建流程&#xff1a;onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…

鸿蒙实战开发-如何实现选择并查看文档与媒体文件

介绍 应用使用ohos.file.picker、ohos.multimedia.mediaLibrary、ohos.file.fs 等接口&#xff0c;实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。 效果预览 使用说明&#xff1a; 在首页&#xff0c;应用展示出最近打开过的文档信息&#xf…

算法打卡day29

今日任务&#xff1a; 1&#xff09;1005.K次取反后最大化的数组和 2&#xff09;134.加油站 3&#xff09;135.分发糖果 1005.K次取反后最大化的数组和 题目链接&#xff1a;1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 给定一个整数数组 A&…

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展&#xff0c;那这个网站流量也会增加&#xff0c;数据的压力也会随之而…

使用pytorch构建有监督的条件GAN(conditional GAN)网络模型

本文为此系列的第四篇conditional GAN&#xff0c;上一篇为WGAN-GP。文中在无监督的基础上重点讲解作为有监督对比无监督的差异&#xff0c;若有不懂的无监督知识点可以看本系列第一篇。 原理 有条件与无条件 如图投进硬币随机得到一个乒乓球的例子可以看成是一个无监督的GAN&…

Harmony鸿蒙南向驱动开发-UART

UART指异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;是通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输。 两个UART设备的连接示意图如下&#xff0c;UART与其他模块一般用2线&a…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

HWOD:投票统计

一、知识点 1、单词 候选人的英文是Candidate 投票的英文是vote 投票人的英文是voter 2、for循环 如果在for循环内将i置为n&#xff0c;结束该层循环后&#xff0c;for循环会先给i加1,然后再去判读i是否小于n&#xff0c;所以for循环结束后&#xff0c;i的值为n1 3、字符…

idm线程越多越好吗 idm线程数多少合适 IDM百度云下载 IDM下载器如何修改线程数

IDM&#xff08;Internet Download Manager&#xff09;是一款流行的网络下载器&#xff0c;它支持多线程下载&#xff0c;这意味着它可以同时建立多个连接来下载文件的不同部分&#xff0c;从而提高下载速度。我们在使用IDM的时候总是有很多疑问&#xff0c;今天我们学习IDM线…

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先&#xff0c;在界面上创建2个Image&#xff0c;一个命名Img_Mask,大小设置 400* 400&#xff0c; 一个命名Img_Show,大小设置500*500。 然后&#xff0c;给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…

数据可视化-ECharts Html项目实战(11)

在之前的文章中&#xff0c;我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECh…

基于springboot+vue实现新闻推荐系统项目【项目源码+论文说明】

基于springboot实现新闻推荐系统演示 摘要 随着信息互联网购物的飞速发展&#xff0c;国内放开了自媒体的政策&#xff0c;一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求&#xff0c;创建了一个计算…

文件输入/输出流(I/O)

文章目录 前言一、文件输入\输出流是什么&#xff1f;二、使用方法 1.FileInputStream与FileOutputStream类2.FileReader与FileWriter类总结 前言 对于文章I/O(输入/输出流的概述)&#xff0c;有了下文。这篇文章将具体详细展述如何向磁盘文件中输入数据&#xff0c;或者读取磁…

第37篇:分频器<四>

Q&#xff1a;介绍完计数器分频电路概念原理之后&#xff0c;本期我们设计实现四分频计数器分频电路。 A&#xff1a;使用DE2-115开发板的KEY[1]作为时钟i_clk输入&#xff0c;KEY[0]作为清零复位i_rst输入&#xff0c;LEDR[0]显示分频后的时钟o_clk输出值&#xff0c;LEDR[3:…

虚拟货币:数字金融时代的新工具

在数字化时代的到来之后&#xff0c;虚拟货币逐渐成为了一种广为人知的金融工具。虚拟货币是一种数字化的资产&#xff0c;它不像传统货币那样由政府或中央银行发行和监管。相反&#xff0c;虚拟货币通过密码学技术和分布式账本技术来实现去中心化的发行和交易。 虚拟货币的代…