支持跨语言、人声狗吠互换,仅利用最近邻的简单语音转换模型有多神奇

news2024/11/20 6:31:33

AI 语音转换真的越复杂越好吗?本文就提出了一个方法简单但同样强大的语言转换模型,与基线方法相比自然度和清晰度毫不逊色,相似度更是大大提升。

AI 参与的语音世界真神奇,既可以将一个人的语音换成任何其他人的语音,也可以与动物之间的语音互换。

我们知道,语音转换的目标是将源语音转换为目标语音,并保持内容不变。最近的任意到任意(any-to-any)语音转换方法提高了自然度和说话者相似度,但复杂性却大大增加了。这意味着训练和推理的成本变得更高,使得改进效果难以评估和建立。

问题来了,高质量的语音转换需要复杂性吗?在近日南非斯坦陵布什大学的一篇论文中,几位研究者探究了这个问题。

  论文地址:https://arxiv.org/pdf/2305.18975.pdf

  GitHub 地址:https://bshall.github.io/knn-vc/

研究亮点在于:他们引入了 K 最近邻语音转换(kNN-VC),一种简单而强大的任意到任意语音转换方法。在过程中不训练显式转换模型,而是简单地使用了 K 最近邻回归。

具体而言,研究者首先使用自监督语音表示模型来提取源话语和参照话语的特征序列,然后通过将源表示的每个帧替换为参照中的最近邻来转换成目标说话者,最后使用神经声码器对转换后的特征进行合成以获得转换后的语音。

从结果来看,尽管 KNN-VC 很简单,但与几个基线语音转换系统相比,它在主观和客观评估中都能媲美甚至提高了清晰度和说话者相似度。

我们来欣赏一下 KNN-VC 语音转换的效果。先来看人声转换,将 KNN-VC 应用于 LibriSpeech 数据集中未见过的源说话者和目标说话者。

源语音:戳我可听音频

合成语音1:戳我可听音频

合成语音2:戳我可听音频

KNN-VC 还支持了跨语言语音转换,比如西班牙语到德语、德语到日语、汉语到西班牙语。

源汉语:戳我可听音频

目标西班牙语:戳我可听音频

合成语音3:戳我可听音频

更令人称奇的是,KNN-VC 还能将人声与狗吠声互换。

源狗吠:戳我可听音频

源人声:戳我可听音频

合成语音4:戳我可听音频

合成语音5:戳我可听音频

我们接下来看 KNN-VC 如何运行以及与其他 jixian 方法的比较结果。

方法概览及实验结果

kNN-VC 的架构图如下所示,遵循了编码器 - 转换器 - 声码器结构。首先编码器提取源语音和参照语音的自监督表示,然后转换器将每个源帧映射到参照中它们的最近邻,最后声码器根据转换后的特征生成音频波形。

其中编码器采用 WavLM,转化器采用 K 最近邻回归、声码器采用 HiFiGAN。唯一需要训练的组件是声码器。

对于 WavLM 编码器,研究者只使用预训练的 WavLM-Large 模型,并在文中不对它做任何训练。对于 kNN 转换模型,kNN 是非参数,不需要任何训练。对于 HiFiGAN 声码器,采用原始 HiFiGAN 作者的 repo 对 WavLM 特征进行声码处理,成为唯一需要训练的部分。

在实验中,研究者首先将 KNN-VC 与其他基线方法进行比较,使用了最大可用目标数据(每个说话者大约 8 分钟的音频)来测试语音转换系统。

对于 KNN-VC,研究者使用所有目标数据作为匹配集。对于基线方法,他们对每个目标话语的说话者嵌入求平均。

下表 1 报告了每个模型的清晰度、自然度和说话者相似度的结果。可以看到,kNN-VC 实现了与最佳基线 FreeVC 相似的自然度和清晰度,但说话者相似度却显著提高了。这也印证了本文的论断:高质量的语音转换不需要增加复杂性。

此外,研究者想要了解有多少改进得益于在预匹配数据上训练的 HiFi-GAN,以及目标说话者数据大小对清晰度和说话者相似度的影响有多大。

下图 2 展示了两种 HiFi-GAN 变体在不同目标说话者大小时的 WER(越小越好)和 EER(越高越好)关系图。

网友热评

对于这个「仅利用最近邻」的语音转换新方法 kNN-VC,有人认为,文中使用了预训练语音模型,因此用「仅」不太准确。但不可否认,kNN-VC 仍然要比其他模型简单。

结果也证明了,与非常复杂的任意到任意语音转换方法相比,kNN-VC 即便不是最好,也同样有效。

还有人表示,人声与狗吠互换的例子非常有趣。

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

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

相关文章

express框架中间件

1.介绍 说明:Express框架中间件是指在处理HTTP请求前或后对请求和响应进行处理的函数。具体而言,中间件可以: 执行一些公共的逻辑,比如身份验证、日志记录、错误处理等。修改请求和响应,比如缓存、压缩等。控制请求流…

ModaHub魔搭社区:基于 Amazon EKS 搭建开源向量数据库 Milvus

目录 01 前言 02 架构说明 03 先决条件 04 创建 EKS 集群 05 部署 Milvus 数据库 06 优化 Milvus 配置 07 测试 Milvus 集群 08 总结 01 前言 生成式 AI(Generative AI)的火爆引发了广泛的关注,也彻底点燃了向量数据库&…

Ubuntu中删除LibreOffice方法

目录 删除LibreOffice套件 删除所有与LibreOffice相关的软件包 删除与LibreOffice相关的配置文件 删除LibreOffice套件 1、打开终端。您可以使用快捷键Ctrl Alt T来打开终端。 2、输入以下命令以卸载LibreOffice套件: sudo apt-get remove libreoffice* 删…

[管理与领导-7]:新任管理第1课:管理转身--从技术业务走向管理 - 管理常识1

目录 第1章 管理基本概念 1.1 什么是管理? 1.2 管理的要素与职能 第2章 管理是什么? 2.1 以终为始 2.2 资源的优化配置 2.3 分而治之:分目标、分任务、分权力、分利益 2.4 目标明确 2.5 优先级 2.6 知人善用,人尽其才 …

【零基础入门学习Python---Python与其他技术的整合之快速入门实践】

🚀 零基础入门学习Python🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜…

2023和鲸夏令营创作活动【黄金价格分析预测】

2023和鲸夏令营创作活动【黄金价格分析预测】 文章目录 2023和鲸夏令营创作活动【黄金价格分析预测】一、项目背景二、数据说明三、数据预处理四、数据探索性分析五、构建LSTM模型预测1、构建LSTM模型2、绘制loss的变化曲线3、进行预测 一、项目背景 本项目的目标是分析并预测…

SpringBoot——在测试阶段验证Web表现层的接口是否正常

验证请求状态 之前我们实现了在测试环境中开启Web环境,并且在测试阶段发送虚拟请求,并看到了返回的结果,这次我们不止要看他的请求结果,还要看他的请求过程和请求状态 匹配请求状态 首先就是查看请求的状态。主要介绍的就是一个…

基于 Arduino 库实现 ESP32 使能 WiFi AP + TCP Server 的应用

实现步骤&#xff1a; ESP32 开启 WiFi AP 模式创建 WiFi 热点定义 IP 地址创建 TCP Server 测试代码如下&#xff1a; #include <WiFi.h> #include <WiFiClient.h>const char* ssid "cc123"; const char* password "espressif";WiFiServ…

Python-年会抽奖

#!/usr/bin/python # coding:utf-8 # Author:Rauckimport randomclass WhoIsLuck:"""年会抽奖"""# 奖品gift [{name: 一等奖, limit: 3, desc: 泰国5日游手术费报销},{name: 二等奖, limit: 6, desc: iPhone14手机},{name: 三等奖, limit: 30, …

【Linux OS】华为openEuler操作系统与openGauss数据库安装及使用入门

华为openEuler操作系统与openGauss数据库安装及使用入门 1、软件下载1.1、openEuler1.2、openGauss1.3、Data Studio 2、系统安装2.1、创建虚拟机2.2、安装操作系统2.3、登录系统 3、数据库安装及设置3.1、数据库安装3.2、数据库管理3.3、数据库设置 4、数据库访问4.1、Navicat…

Redis:IO多路复用深度解析

目录 一、Multiplexing&#xff08;IO多路复用&#xff09;1.是什么2.能干嘛3.Reactor设计模式4.select, poll, epoll 都是I/O多路复用的具体的实现4.1 select方法4.2 poll方法4.3 epoll方法4.4 三个方法对比 5.5种 I/O 模型总结6.为什么3个都保有 一、Multiplexing&#xff08…

关于如何使用 python 下载 json 格式数据

本章节内容节自《python编程从入门到实践》第十六章&#xff0c;我们将从网络上下载数据&#xff0c;并对数据进行可视化。就可以对其进行分析甚至观察其规律和关联。 学习目标 我们将访问并可视化以下两种常见格式存储的数据&#xff1a; CSV 使用 Python 模块 CSV 来处理以 C…

SpringBoot整合EasyExcel 3.x

文章目录 1 EasyExcel 3.x1.1 简介1.2 引入依赖1.3 简单导出1.3.1 定义实体类1.3.2 自定义转换器1.3.3 定义接口 1.4 简单导入1.5 复杂导出1.5.1 引言1.5.2 自定义注解1.5.3 定义实体类1.5.4 数据映射与平铺1.5.5 自定义单元格合并策略1.5.6 定义接口 1 EasyExcel 3.x 1.1 简介…

string容器语法

文章目录 string容器string基本概念本质&#xff1a;string和char * 区别&#xff1a;特点&#xff1a; string构造函数示例 string赋值操作示例&#xff1a; string字符串拼接示例&#xff1a; string查找和替换示例&#xff1a; string字符串比较示例&#xff1a; string字符…

第六章 rabbitmq高可用集群

在服务之间会采用mq进行消息通信,而rabbitmq本身也如同consul一样,如果只有一个节点那么就可能出现宕机的问题,并且基于mq的特点我们是可以在多个服务之间使用同一个mq来相互通信,因此高可用的架构设计就必不可少 1、rabbitmq集群方案 主备 远程 镜像 多活 构建 2、…

[uni-app]设置运行到微信小程序

1、设置微信小程序开发工具路径 2、检查微信小程序开发工具是否开启了服务端口 服务端口要是没有开启&#xff0c;会报 initialize。 3、在uni-app开发工具中点击运行微信开发者工具&#xff0c;微信开发工具运行成功。

Spark架构体系

StandAlone模式是spark自带的集群运行模式&#xff0c;不依赖其他的资源调度框架&#xff0c;部署起来简单。 StandAlone模式又分为client模式和cluster模式&#xff0c;本质区别是Driver运行在哪里&#xff0c;如果Driver运行在SparkSubmit进程中就是Client模式&#xff0c;如…

谷歌Med-PaLM 2霸榜医学问答领域

谷歌IO大会上&#xff0c;谷歌CEO桑达尔・皮查伊&#xff08;Sundar Pichai&#xff09;向全世界AI开发者发布了谷歌最新的大型语言模型&#xff08;LLMs&#xff09;PaLM 2&#xff0c;作为对标OpenAI最新大模型GPT-4的竞品&#xff0c;PaLM 2展现出了强大的多语言和推理能力。…

概率论与数理统计发展历史简介

概率论与数理统计发展历史简介 1 介绍1.1 概述1.2 概率论发展历史1.3 统计学发展历史1.4 概率论演化 2 在线学习在线 概率与统计 视觉化学习 -- 布朗大学何志坚老师的数理统计讲义鸢尾花书--统计至简 参考 1 介绍 1.1 概述 概率论是与概率有关的数学分支。虽然有几种不同的概…

Linux内核模块开发 第 8 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09;源 LKMPG 8 sysfs: 与模块交互 sysfs 允许用户通过读写模块中的变量实现与内核模块的交互。这个特性在…