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://xiahunao.cn/news/3249785.html

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

相关文章

排序系列 之 选择排序

!!!排序仅针对于数组哦本次排序是按照升序来的哦 介绍 快速排序英文名为SelectSort从数组中找到最小的放到前边 基本思路 1、默认待排序数组中第一个作为最小值2、找待排序数组(注意不是整个数组哦)中真正的最小值3…

Web前端Promise

Promise介绍与使用 Promise是什么? 1.抽象表达: Promise是一门新的技术(ES6规范)Promise是JS中进行异步编程的新解决方案备注:旧方案是单纯使用回调函数 2.具体表达: 从语法上来说:Promise…

基于语音识别的会议记录系统

文章目录 核心功能页面展示使用技术方案功能结构设计数据库表展示 核心功能页面展示 视频展示功能 1.创建会议 在开始会议之前需要管理员先创建一个会议,为了能够快速开始会议,仅需填写会议的名称、会议举办小组、会议背景等简要会议信息即可成功创建。…

Apache BookKeeper 一致性协议解析

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件,所以本文简单探讨一下 BookK…

利用patch-package补丁,解决H5预览PDF时电子签章不显示问题

利用patch-package补丁,解决H5预览PDF时电子签章不显示问题 一、问题描述 在生产环境中,遇到了一个紧急的技术问题:用户在移动端H5页面上查看电子票时,PDF文件预览功能正常,但其中的电子签章未能正常显示。这一问题直…

人工智能算法工程师高级课程1-单类目标识别之人脸检测识别技术MTCNN模型介绍与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师高级课程1-单类目标识别之人脸检测识别技术MTCNN模型介绍与代码详解。本文深入探讨了基于PyTorch的人脸检测与识别技术,详细介绍了MTCNN模型、Siamese network以及center loss、softm…

【操作系统】文件管理——文件共享与保护,文件系统的结构(个人笔记)

学习日期:2024.7.18 内容摘要:文件共享,文件保护,文件系统的层级结构和全局结构,虚拟文件系统 文件共享 操作系统提供的文件共享功能,可以让多个用户共享使用同一个文件。文件共享和文件复制是不一样的&a…

mac docker no space left on device

mac 上 docker 拉取镜像报错 Error response from daemon: write /var/lib/docker/tmp/docker-export-3995807640/b8464f52498789c4ebbc063d508f04e8d2586567fbffa475e3cd9afd3c5a7cf2/layer.tar: no space left on device解决: 增加 docker 虚拟磁盘大小。如下图

分(中)位数回归算法 -医学小样本数据回归分析的更佳选择 ?

分(中)位数回归算法 -医学小样本数据回归分析的更佳选择 ? 在医学研究中,小样本数据回归分析是一项常见且重要的任务。由于医学数据的复杂性、多样性和稀缺性,传统的回归分析方法如最小二乘法(OLS&#xf…

LeetCode 3112.访问消失节点的最少时间:单源最短路的Dijkstra算法

【LetMeFly】3112.访问消失节点的最少时间:单源最短路的Dijkstra算法 力扣题目链接:https://leetcode.cn/problems/minimum-time-to-visit-disappearing-nodes/ 给你一个二维数组 edges 表示一个 n 个点的无向图,其中 edges[i] [ui, vi, l…

大数据之数据抽取架构演变过程

架构演变之Flink架构的演变过程 一、 起初搭建整个大数据平台是基于CDH这一套资源管理和整合的CM资源管理器搭建的 整个平台包括了: HDFS,YARN,HIVE,zoozie,FLINK,Spark,Zookeeper等组件搭建而成, 刚开始搭建的时候&am…

Quartus II 13.1添加新的FPGA器件库

最近需要用到Altera的一款MAX II 系列EPM240的FPGA芯片,所以需要给我的Quartus II 13.1添加新的器件库,在此记录一下过程。 1 下载所需的期间库 进入Inter官网,(Altera已经被Inter收购)https://www.intel.cn/content…

人工智能导论-机器学习

机器学习概述 概述 本章主要介绍的机器学习的概念、发展历程、发展趋势、相关应用,着重拓展机监督学习和无监督学习的相关知识。 重点:机器学习的定义和应用; 难点:机器学习算法及分类。 机器学习 - 重要性 MachineLeaning出…

基于X86+FPGA+AI数字化医疗设备:全自动尿沉渣检测仪

助力数字医疗发展,信迈可提供全自动尿沉渣检测仪专用计算机 随着信息技术的不断进步,医疗也进入了一个全新的数字化时代。首先是医疗设备的数字化,大大丰富了医疗信息的内涵和容量,具有广阔的市场发展前景。 数字化医疗设备&…

[开源]语雀+Vercel:打造免费个人博客网站

大家好,我是白露。 今天我想和大家分享我的今年的第一个开源项目 —— 基于语雀+Nextjs+Vercel实现免费的博客系统。 简单来说,你在语雀写博客,然后直接一键同步到个人网站上,网站自动部署! 而且,整个过程几乎不需要额外的成本,也不用充值语雀超级会员,hh。这个项目…

IAR嵌入式开发解决方案已全面支持芯科集成CX3288系列车规RISC-V MCU,共同推动汽车高品质应用的安全开发

中国上海,2024年7月16日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与芯科集成电路(以下简称“芯科集成”)联合宣布,最新版本IAR Embedded Workbench for RISC-V 3.30.2功能安全版已全面支持芯科集成CX3288系列车规RISC-V…

分布式服务框架zookeeper+消息队列kafaka

一、zookeeper概述 zookeeper是一个分布式服务框架,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:命名服务,状态同步,配置中心,集群管理等。 在分布式环境下,经常需要对应用/服…

秋招突击——7/18——多线程编程(Java线程池和Executor框架的)

文章目录 引言基础知识线程池原理Executor框架Executor框架的两级调度模型Executor框架结构Executor框架成员ThreadPoolExecutor详解——这里简单过一下,知道原理即可FixedThreadPool简介SingleThreadExecutorCachedThreadPool ScheduledThreadPoolExecutor详解——…

【Docker】基于Docker-compose创建LNMP环境

目录 一.Docker-compose 概述 1.容器编排管理与传统的容器管理的区别 2.docker-compose 作用 3.docker-compose 本质 4.docker-compose 的三大概念 二.YML文件格式及编写注意事项 1.yml文件是什么 2.yml问价使用注意事项 3.yml文件的基本数据结构 三.Docker-compose …

Redis常用的5大数据类型

Reids字符串&#xff08;String&#xff09; 设置相同的key&#xff0c;之前内容会覆盖掉 Redis列表&#xff08;List&#xff09; 常用命令 从左往右放值 数据结构 Redis集合&#xff08;set&#xff09; sadd<key><value1><value2>...... 数据结构 Set数据…