HiFi-GAN——基于 GAN 的声码器,能在单 GPU 上生成 22 KHz 音频

拟议的 HiFiGAN 可从中间表征生成原始波形

源码地址:https://github.com/NVIDIA/DeepLearningExamples
论文地址:https://arxiv.org/pdf/2010.05646.pdf

研究要点包括

  • **挑战:**基于 GAN 的语音波形生成方法在质量上不及自回归模型和基于流量的模型。
  • **解决方法:**提出 HiFi-GAN,以实现高效、高质量的语音合成。
  • **要点:**现在,单个 V100 GPU 就能生成 22.05 kHz 的高质量音频。

这意味着高质量的原始语音现在可以通过一种名为 "mel-spectrogram "的语音中间表示有效生成。

神经声码器和语音合成领域的背景

近年来,随着深度学习技术的发展,语音合成技术突飞猛进。

大多数神经语音合成模型采用两阶段管道

  1. 预测中间表征,如文本中的熔谱图。
  2. 从中间表征合成原始波形。

本文的重点是模型设计的第二阶段,即**“从熔体频谱图中高效生成高质量语音波形”**。

顺便提一下,这种第二阶段模型通常被称为 “神经译码器”,是许多研究的主题。

以前的工作问题
波网利用卷积神经网络实现高质量语音合成。
基于流量的模型,如 Parallel WaveNet 和 WaveGlow。并行计算实现更高速度
MelGAN 与 GAN结构紧凑,合成速度快。

顺便提一下,语音合成领域的一个共同问题是,由于语音是由不同周期的正弦信号组成的,因此必须对语音的周期模式进行建模

拟议方法:HiFi-GAN 概述

本研究中的 HiFiGAN 是一种基于 GAN 的生成模型,它可以

来源:https://pytorch.org/hub/nvidia_deeplearningexamples_hifigan/

具体来说,它由一个发生器和两个判别器组成:多周期判别器(MPD)和多尺度判别器(MSD)。

发电机

HiFi-GAN 生成器由一个全卷积神经网络组成。

将mel 频谱图作为输入,通过转置卷积重复进行升采样,并进行扩展,直到输出序列的长度与原始语音波形的时间分辨率相匹配。

每个转置卷积后还会有一个多感受场融合(MRF)模块。

多感知场融合(MRF)

MRF 模块旨在并行捕捉不同长度的模式。具体来说,MRF 模块返回多个残差块的输出总和。

每个残差块都有不同的内核大小和扩张率,以形成各种感受野模式。

鉴别器

HiFi-GAN 使用以下两个标识符。

  • 多周期判别器(MPD)
  • 多尺度判别器 (MSD)

MPD 由多个子识别器组成,每个子识别器只接收来自输入语音的等间距采样信号。这使得每个子识别器都能关注输入语音中的不同周期模式,从而捕捉语音中固有的各种周期结构。

MSD 还能通过连续评估不同尺度的输入语音,捕捉连续模式和长期依赖关系。具体地说,它由三个子鉴别器组成,有三种输入语音类型:原始语音、1/2 降低采样率的语音和 1/4降低采样率的语音。

因此,通过结合 MPD 和 MSD,HiFi-GAN 被认为能够从生成语音的详细周期特征和全局连续特征等多个角度进行评估

损失函数

HiFi-GAN 研究使用了四种损失函数

  • GAN 损失(对抗损失)
  • 梅尔谱仪损失
  • 特征匹配损失
  • 最终损失函数(最终损失)

GAN 损失(对抗损失)

在GAN Loss(对抗损失)中,MPD 和 MSD 被视为一个判别器,并使用 LSGAN 目标函数。鉴别器学会将真实语音分类为 1,将生成语音分类为 0,而生成器学会欺骗鉴别器。

梅尔谱仪损失

梅尔谱图损失(Mel-Spectrogram Loss)在GAN 损失的基础上引入了梅尔谱图损失,以提高生成器的训练效率和生成语音的质量。

具体来说,它的定义是发生器合成的波形与真实波形的熔谱图之间的 L1 距离。

这种损耗使发生器能够合成与输入条件相对应的自然波形,并从对抗学习的早期阶段开始稳定学习。

特征匹配损失

指真实样本和生成样本中鉴别器特征的相似度。

具体来说,提取判别器的中间特征,并计算每个特征空间中真实样本和条件生成样本之间的 L1 距离。

最终损失函数

最终的 HiFi-GAN 损失函数。

在这里,发生器的损失函数表示为上述三个损失函数的加权和。

效果

实验细节

为评估 HiFi-GAN 的语音合成质量和合成速度,我们进行了以下四项实验

  • 主观评估以及与其他先进模型(WaveNet、WaveGlow、MelGAN)的速度比较
  • 调查 HiFi-GAN 的每个组成部分(MPD、MRF、mel spectrogram loss)对质量的影响。
  • 研究语音合成中的泛化性能
  • 端到端语音合成实验

主观评价以及与其他现代模型的速度比较

我们从 LJSpeech 中随机抽取了 50 个语句来测量主观评价(平均意见分值,MOS)和合成速度。

结果表明,与 WaveNet、WaveGlow 和 MelGAN 等其他模型相比,HiFi-GAN 实现了更高的 MOS。至于 HiFiGAN 的 V3,其速度也比 CPU 上的实时合成快 13.44 倍。

-研究 HiFi-GAN 对单个组件质量的影响

为了研究每个分量(MPD、MRF、MelSpectrogram loss)对 HiFiGAN 中语音质量的影响,他们根据 V3 删除了每个分量,并比较了 MOS。他们还研究了在 MelGAN 中引入 MPD 的效果。

结果表明,MPD、MRF 和 mel spectrogram loss 都有助于提高性能。特别是当 MPD 被移除时,质量大大降低。

此外,当将 MPD 引入 MelGAN 模型时,也观察到了显著的改进。

研究语音合成中的泛化性能

数据集中剔除了九位发言者的语音数据,并通过对发言者的语音进行梅尔频谱图转换→使用 HiFiGAN 进行语音合成来测量 MOS。

结果表明,在所有三个变体中,HiFi-GAN 的性能均优于自回归模型和基于流量的模型。

结果表明,语音合成的泛化能力很强。

端到端语音合成实验

HiFi-GAN 与文本到谱模型 "Tacotron2 "相结合,用于评估端到端语音合成的性能。

具体来说,将 Tacotron2 生成的熔谱图输入 HiFi-GAN,并对 MOS 进行测量。此外,还验证了微调的效果。

结果表明,结合Tacotron2 和HiFi-GAN 的语音合成模型优于 WaveGlow。微调结果还显示,V1 的 MOS 达到了 4.18,几乎与人声质量相当。

总结

本文介绍了有关 HiFiGAN 的研究,这是一种用于高效、高质量语音合成的 GAN 模型。

本研究有三个局限性

  • 是否适用于更多的说话者和语言还不得而知。
  • 嗓音的情感和节奏表现力尚未得到充分测试。
  • 尚未对有限计算资源环境下的语音合成性能进行评估。

因此,在未来的研究中,他们计划开发一个 HiFi-GAN 的扩展模型来解决上述问题,并通过在小数据集上学习来缩小规模和提高效率。

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

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

相关文章

纯前端小游戏,4096小游戏,有音效,Html5,可学习使用

// 游戏开始运行create: function(){this.fieldArray [];this.fieldGroup this.add.group();this.score 0;//4096 增加得分this.bestScore localStorage.getItem(gameOptions.localStorageName) null ? 0 : localStorage.getItem(gameOptions.localStorageName);for(var …

vscode及pycharm配置Python文件模板

一、vscode配置方法 第一步,依次点击“File”->“preference”->“Configure User Snippets”,在弹出的框中输入Python,打开python.json 文件 第二步,python.json 文件中输入以下内容: {"Python Template…

QtC++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法,并不是一个固定使用的搭配,就算是普通switch语句,Map,乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多,主要是其的侧…

Java记事本工具Notepad++

常见的高级记事本 Editplus、Notepad、Sublime Notepad软件的安装和使用 安装:傻瓜式安装 1、选择中文-->【OK】 2、点击【下一步】 3、协议点击【我接受】 4、选择安装路径-->【下一步】 5、点击【下一步】 6、最后点击【安装】 7、将运行取消-->点击…

戴尔电脑开机出现no boot device found错误提示原因分析及解决方法

戴尔电脑是一款不的品牌,戴尔电脑一直以来都是以IT直销享誉全球的。而旗下的戴尔笔记本,更是深受用户们的追捧和喜爱。最近有网友反馈戴尔电脑开机出现no boot device found错误提示是怎么回事?后来发现有很多网友将引导模式改成legacymbr后发现启动时出…

2024-07-18 Unity插件 Odin Inspector8 —— Type Specific Attributes

文章目录 1 说明2 特定类型特性2.1 AssetList2.2 AssetSelector2.3 ChildGameObjectsOnly2.4 ColorPalette2.5 DisplayAsString2.6 EnumPaging2.7 EnumToggleButtons2.8 FilePath2.9 FolderPath2.10 HideInInlineEditors2.11 HideInTables2.12 HideMonoScript2.13 HideReferenc…

对消息队列进行深入学习

目录 1.什么是消息队列。1.1消息队列1.1.1同步的理解1.1.2异步的理解 1.2消息传递与消息队列 2. 消息队列应用场景2.1 异步处理2.2 流量削锋2.3 应用解耦2.4 日志处理2.5 消息通讯2.6 延时任务2.7 广播消费2.8 分布式事务 3. 主流消息队列3.1 RabbitMQ3.1.1 RabbitMQ工作原理3.…

仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测

7月16日,2024 可信数据库发展大会在北京隆重举行。大会以“自主、创新、引领”为主题,近百位数据库领域的专家、学者齐聚一堂,带来高质量的数据库技术洞察与实战经验。 本次可信数据库发展大会中,中国信通院正式公布 2024 年上半年…

紫光展锐5G安卓核心板T760__国产手机芯片方案

展锐T760安卓核心板是具备续航和性能更加均衡的5G移动平台。其主要特点包括主流的6400万像素摄像头和高达120Hz的刷新率。 平台采用多模融合的创新架构和AI智能调节技术,从而在5G数据场景下降低了37%的整体功耗,在5G待机场景下降低了18%的整体功耗。 多…

qml 实现一个listview

主要通过qml实现listvie功能&#xff0c;主要包括右键菜单&#xff0c;滚动条&#xff0c;拖动改变内容等&#xff0c;c 与 qml之间的变量和函数的调用。 main.cpp #include <QQuickItem> #include <QQmlContext> #include "testlistmodel.h" int main…

js vue axios post 数组请求参数获取转换, 后端go参数解析(gin框架)全流程示例

今天介绍的是前后端分离系统中的请求参数 数组参数的生成&#xff0c;api请求发送&#xff0c;到后端请求参数接收的全过程示例。 为何会有这个文章&#xff1a;后端同一个API接口同时处理单条或者多条数据&#xff0c;这样就要求我们在前端发送请求参数的时候需要统一将请…

C/C++ xml库

文章目录 一、介绍1.1 xml 介绍1.2 xml 标准1.3 xml 教程1.4 xml 构成 二、C/C xml 库选型2.1 选型范围2.2 RapidXML2.3 tinyxml22.4 pugixml2.5 libxml 五、性能比较5.1 C xml 相关的操作有哪些5.2 rapidxml、Pugixml、TinyXML2 文件读取性能比较 六、其他问题6.1 version和 e…

网络编程-TCP 协议的三次握手和四次挥手做了什么

TCP 协议概述 1. TCP 协议简介 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 协议提供可靠的通信服务&#xff0c;通过校验和、序列号、确认应答、重传等机制保证数据传输…

MYSQL——库表操作

MYSQL——库表操作 1.1 SQL语句基础1.1.1. SQL简介1.1.2. SQL语句分类1.1.3. SQL语句的书写规范 1.2数据库的操作1.2.1 数据库的登录及退出1.2.2查看数据库 作业 1.1 SQL语句基础 1.1.1. SQL简介 SQL:结构化查询语言(Structured Query Language)&#xff0c;在关系型数据库上…

【ffmpeg入门】安装CUDA并使用gpu加速

文章目录 前言CUDACUDA是什么CUDA 的主要组成部分CUDA 的优点CUDA 的基本编程模型安装CUDA ffmpeg使用gpu加速为什么需要使用gpu加速1. 提高处理速度2. 减少 CPU 负载3. 提高实时处理能力4. 支持高分辨率和复杂编码格式5. 提供更好的可扩展性6. 提高能效 ffmpeg使用gpu加速常用…

【CMU博士论文】结构化推理增强大语言模型(Part 0)

问题 &#xff1a;语言生成和推理领域的快速发展得益于围绕大型语言模型的用户友好库的普及。这些解决方案通常依赖于Seq2Seq范式&#xff0c;将所有问题视为文本到文本的转换。尽管这种方法方便&#xff0c;但在实际部署中存在局限性&#xff1a;处理复杂问题时的脆弱性、缺乏…

单片机主控的基本电路

论文 1.复位电路 2.启动模式设置接口 3.VBAT供电接口 4.MCU 基本电路 5.参考电压选择端口

python处理彩色图像通道拆分与合并

彩色图像通道拆分与合并 1. 使用 opencv2. 使用 numpy 待处理图像 ML.jpg 1. 使用 opencv import cv2 import matplotlib.pyplot as plt import numpy as np # 读取图像 # 读取图像 image cv2.imread(ML.jpg) plt.imshow(image) print(type(image)) # 输出&#xff1a;<…

Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的以太网方案本博已有的FPGA图像缩放方案本方案的缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡…

【BUG】已解决: KeyboardInterrupt

已解决&#xff1a; KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 擅长.net、C…