Speech | 语音克隆Openvoice的论文解读及项目实现

news2024/11/19 1:38:16

本文主要介绍了语音克隆Openvoice的论文以及项目实现~

论文题目:OpenVoice: Versatile Instant Voice Cloning

论文地址:2312.01479.pdf (arxiv.org)

项目地址:https://github.com/myshell-ai/OpenVoice.git

官网:Home (myshell.ai)

1.论文详解 

1.1.论文概述 

论文介绍了 OpenVoice,这是一种通用的语音克隆方法,只需要参考说话者的简短音频剪辑即可复制他们的声音并生成多种语言的语音。OpenVoice 在解决该领域的以下开放挑战方面取得了重大进展:1) 灵活的语音风格控制。OpenVoice 支持对语音风格进行精细控制,包括情感、口音、节奏、停顿和语调,以及复制参考扬声器的音调颜色。语音样式不会直接从参考说话人的风格复制并受其约束。以前的方法缺乏在克隆后灵活操纵语音样式的能力。2)零样本跨语言语音克隆。OpenVoice 实现了零样本跨语言语音克隆,适用于未包含在大规模说话人训练集中的语言。与以前的方法不同,以前的方法通常需要针对所有语言的大量说话人多语言 (MSML) 数据集,OpenVoice 可以将语音克隆为一种新语言,而无需该语言的任何大规模说话人训练数据。OpenVoice 的计算效率也很高,其成本比性能较差的商用 API 低数十倍。为了促进该领域的进一步研究,公开了源代码和训练模型。演示网站中提供定性结果。在公开发布之前,内部版本的 OpenVoice 在 2023 年 5 月至 10 月期间被全球用户使用了数千万次,作为 MyShell 的后端。

1.2.OpenVoice的模型结构

主要包括两个组件:基础语音合成模型音色转换器。

基础语音合成模型可以是单一说话者或多说话者模型,允许控制风格参数(如情绪、口音、节奏、停顿和语调)、口音和语言。该模型生成的语音传递给音色转换器,将基础说话者的音色转换为参考说话者的音色。音色转换器采用编码-解码结构,并使用可逆归一化流来转换音色信息。

在基础语音合成模型中,可以选择各种灵活的模型,如VITS、InstructTTS或商业可用的模型(如Microsoft TTS)。论文中使用了VITS模型作为默认选择,但也提到其他选择完全可行。标记了基础模型输出为X(Lo, So, Co),表示语言、风格和音色三个参数。

音色转换器包含编码器和解码器,中间使用可逆的归一化流。编码器是一个一维卷积神经网络,接受基础模型输出的频谱作为输入,输出特征图Y(LI, SI, CI)。音色提取器则是一个简单的二维卷积神经网络,作用在输入声音的梅尔频谱上,输出一个编码了音色信息的单一特征向量。接着,归一化流层将特征Y(LI, SI, CI)和音色信息向量v(CI)作为输入,输出一个消除音色信息但保留所有其他风格属性的特征表示Z(LI, SI)。这个特征与国际音标(IPA)对齐,并且在接下来的步骤中,归一化流层逆向作用,将Z(LI, SI)和参考说话者的音色信息v(CO)转换为包含参考说话者音色的特征图Y(LI, SI, CO)。最后,Y(LI, SI, CO)被解码为包含目标音色的原始波形X(LI, SI, CO)。

作者提到了OpenVoice的创新之处在于其分离了语音风格和语言控制与音色克隆。这种分离的方法简单而有效,特别适合想要控制风格、口音或泛化到新语言的情况。相较于像XTTS这样耦合的框架,OpenVoice需要的数据和计算量更少,并且更容易实现流利的多语言语音合成。这种分离语音风格和语言生成与音色生成的核心理念是OpenVoice的特色。

项目复现

git clone https://github.com/myshell-ai/OpenVoice.git
cd OpenVoice
pip install -r requirements.txt


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

# 修改demo_part1.ipynb中的openai key就可以直接运行



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

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

相关文章

Prometheus监控遇上报错invalid is not a valid start token

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 使用prometheus采集java应用的metric指标数据,在prometheus界面pod状态为down,报…

云HIS系统源码,基层卫生HIS系统,云端SaaS模式多医院版

系统介绍: 基层卫生健康云HIS系统采用云端SaaS服务的方式提供,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医院的主要工作…

AQS应用之BlockingQueue详解

概要 AQS全称是 AbstractQueuedSynchronizer,中文译为抽象队列式同步器。BlockingQueue,是java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类,它的特性是在任意时刻只有一个线程可以进行take或者put操作&#xff0…

Cesium笔记 viewer控件隐藏

Cesium初始化后,场景中会有时间轴,动画,home等控件显示,需要将这些控件隐藏,如下: init() {let viewer new Cesium.Viewer("cesiumContainer", {fullscreenButton: false, // 隐藏界面右下角全…

【日志】Alertmanager+Loki实现Teams告警

目录 简介一、配置Webhook二、安装msteams三、配置Alertmanager简介 在前面的文章我们实现了Loki日志告警,接下来新增一种告警媒介:微软Teams 一、配置Webhook 这块我们主要借助incoming Webhook应用来发送消息到团队,把它添加到团队里,参考:https://www.cnblogs.com/a…

【Proteus仿真】【Arduino单片机】智能感应温控风扇

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用LCD1602液晶显示模块、DS18B20温度、按键、声光报警、L293D电机驱动等。 主要功能: 系统运行后,LCD1602显示传感器检…

网络音频对讲广播模块-定时广播 ip网络广播音频模块SV-2401

1.模块介绍 SV-2400V网络音频模块是一款高性能的10/100M网络音频模块,采用高性能处理器及专业Codec,能接收网络音频数据流,转换成音频模拟信号输出。亦能采样本地的mic输入或linein输入,发送到网络上,供其他网络音频模…

Lumerical Examples------Ports

Lumerical Examples------Ports 引言正文示例引言 Ports 在 FDTD 工程中是一个很特别的组件,这里我们对它进行介绍 正文 虽然 Ports 不是严格意义上的 Monitor(监视器), 但是它也可以进行 S 参数提取。Ports 扮演着一个 frequency domain power monitor 的和 mode expan…

Mjdioureny练习二

(一)一个老人强烈的阳光照射 我跟他说:a old man strong sunlight 这四张照片都是很不错的 每一张都十分清晰而且十分真实逼真,细节把控的也十分完美。 (二)一个中国50岁的大叔,走在清晨的深林…

使用QPushButton实现计算机

1. 按钮类:QPushButton 1.1 信号 void clicked(bool checked false)//被点击触发void pressed()//当按下按钮时发出此信号void released()//当松开按钮时发出此信号void toggled(bool checked)//每当可检查按钮改变其状态时,都会发出此信号。1.2 实现按…

携程testab算法分析

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 这里只是我分析过程,以及一些重要点的记录,没有…

UE5 C++(十五)— TimerHandle(定时器)的使用

文章目录 设置定时器声明FTimerHandle定义执行函数设置定时器 清除定时器 定时器(Timer) 可用于执行延迟类型的操作,或让某些操作在一段时间内重复执行。 设置定时器 定时器的设置只需三步即可完成:声明定时器句柄 FTimerHandle…

固态硬盘只显示一半容量怎么办?

有时候我们会发现固态硬盘只显示一半容量,那么为什么会出现这个问题呢?下面我们就一起来了解一下。 为什么硬盘没有显示满容量? 在Windows 11/10/8/7中硬盘容量显示错误,有很多原因会导致这种情况发生。以下总结了一些常见的原因…

PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

我们可以用isset($arr[a]) 或者 array_key_exists(a, $arr) 来判断a键名是否存在与$arr数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: $array [a > 1, b > 2, c > 3];$start microtime(tru…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷③

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷3 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷3 模块一 …

《Shader开发实战》-笔记

一、初识游戏图形 1、什么是渲染? 渲染实际上就是创建图像的过程,在渲染过程中创建的图像被称为渲染或者帧,该图像(帧)以每秒多次在计算机屏幕上进行呈现,即帧率。 负责渲染图像(帧&#xff09…

美国证券交易委员会 X 账户被黑,引发比特币市场震荡

Bleeping Computer 网站消息,威胁攻击者成功“占领”了美国证券交易委员会的 X 账户,并发布一条关于批准比特币 ETF 在证券交易所上市的虚假公告。 帖子原文:今天,美国证券交易委员会批准比特币 ETF 在注册的国家证券交易所上市&a…

华为认证 | HCIP-Storage V5.5 认证正式发布!

华为认证存储高级工程师HCIP-Storage V5.5(中文版)自2023年12月28日起正式在中国区发布。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系,包含ICT基础…

自动化生产线-采用工业机器人比人工有哪些优势?

工业机器人相对于人工具有一些显著的优势,这些优势使它们在制造和生产领域得到广泛应用。以下是工业机器人相对于人工的一些主要优势: 1、精度和一致性: 机器人可以执行高精度的操作,确保产品的质量和规格一致,而且不容…

如何加密U盘数据?U盘数据加密软件怎么选?

U盘作为最常用的移动储存设备,是很多人储存数据的重要工具。而普通的U盘不具备保护数据的功能,很容易导致数据泄露。因此,我们需要使用专业的U盘加密软件来加密保护U盘数据。那么,U盘数据加密软件该怎么选择呢?下面我们…