当前位置: 首页 > news >正文

微软发布E2 TTS: 一种简单但效果优秀的文本转语音技术

468c919255464383a09ff4586cd856d2.jpeg

本文介绍了一种名为“Embarrassingly Easy Text-to-Speech(E2 TTS)”的文本转语音系统。

该系统通过将输入文本转换为填充标记字符序列,并基于音频填充值任务训练流匹配基mel频谱生成器,实现了人类水平的自然度和最先进的说话人相似性和可理解性。

与许多先前的工作不同,它不需要额外组件或复杂技术的支持。尽管简单,但E2 TTS在零样本TTS能力方面取得了与先前工作相当甚至超越的效果,包括Voicebox和NaturalSpeech 3。

此外,E2 TTS的简单性也允许灵活地表示输入。本文还提出了几种E2 TTS变体以提高推理时的可用性。

地址:https://arxiv.org/pdf/2406.18009

代码:https://aka.ms/e2tts/

方法改进

相较于传统的语音合成方法,E2 TTS 的改进主要体现在以下两个方面:

使用字符序列替代音素序列:E2 TTS 将音素序列替换为字符序列,避免了需要进行音素转写、音素对齐和音素时长模型等额外处理的需求。

增加了两个扩展功能:第一个扩展功能(E2 TTS X1)消除了在推理中对音频提示进行转录的需求;第二个扩展功能(E2 TTS X2)允许用户在句子中的特定单词上明确指定发音。

94d2e0b88e0a33c9d1477019c3b36abc.jpeg

解决的问题

E2 TTS 主要解决了以下几个问题:

零样本语音合成:传统的语音合成方法通常需要大量的样本数据进行训练,而 E2 TTS 可以在没有样本数据的情况下进行语音合成。

简化模型结构:E2 TTS 通过使用字符序列替代音素序列,简化了模型结构,减少了额外的处理需求。

支持新的单词发音:E2 TTS X2 扩展功能允许用户在句子中的特定单词上明确指定发音,从而满足个性化需求。

论文实验

E2 TTS模型使用了Transformer架构和U-Net风格的skip连接,具有出色的零样本语音合成能力。

实验数据和模型配置。

实验数据来源于Libriheavy和LibriSpeech-PC等数据集,包括50,000小时的英语语音和200,000小时的额外数据。模型采用了Transformer架构,其中包括24层、16个注意力头、1024维嵌入维度、4096维线性层维度和0.1的dropout率。该模型用于将log mel滤波器组特征转换为波形,使用的BigVGAN-vocoder模型在测试中表现良好。

评估数据和指标。

评估数据来源于LibriSpeech-PC数据集,包括1,132个音频样本和39个演讲者。评估指标包括单词错误率(WER)和相似度评分(SIM-o)。此外,还进行了客观和主观评估,分别通过计算平均值来得出结果。

实验结果和分析。

作者对四种模型进行了比较,包括Voicebox、VALL-E和NaturalSpeech 3。结果显示,E2 TTS模型在所有方面都优于这些基准模型,包括更好的WER、更高的自然度和更好的说话人相似度。此外,E2 TTS还可以扩展到不同的应用场景,例如不需要音频转录和指定新术语的发音。最后,作者还分析了E2 TTS模型的行为,包括训练进度、音频提示长度和改变语速的影响

相关文章:

微软发布E2 TTS: 一种简单但效果优秀的文本转语音技术

本文介绍了一种名为“Embarrassingly Easy Text-to-Speech(E2 TTS)”的文本转语音系统。 该系统通过将输入文本转换为填充标记字符序列,并基于音频填充值任务训练流匹配基mel频谱生成器,实现了人类水平的自然度和最先进的说话人相…...

python爬虫加入进度条

安装tqdm和requests库 pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simplepip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple带进度条下载 import time # 引入time模块,用于处理时间相关的功能 from tqdm import * # 从tqdm包中…...

力扣844.比较含退格的字符串

力扣844.比较含退格的字符串 栈模拟 class Solution {public:bool backspaceCompare(string s, string t) {int n s.size(),m t.size();stack<char> s1,s2;for(int i0;i<n;i){s1.push(s[i]);if(s[i] #){if(s1.size() 1) s1.pop();else s1.pop(),s1.pop();}}for(i…...

用户特征和embedding层做Concatenation

要将用户特征与嵌入层进行连接&#xff0c;可以使用深度学习框架&#xff08;如TensorFlow或PyTorch&#xff09;中的基本操作。以下是使用PyTorch的示例代码&#xff0c;展示了如何将用户特征与嵌入层连接起来。 示例代码&#xff08;使用PyTorch&#xff09; 安装 PyTorch 如…...

Ubuntu20.04下修改samba用户密码

Ubuntu20.04下修改samba用户密码 在Ubuntu系统中&#xff0c;修改samba密码通常涉及到两个方面&#xff1a;更改samba用户的密码和重置samba服务的密码数据库。以下是如何进行操作的步骤&#xff1a; 1、更改samba用户密码&#xff1a; 打开终端&#xff0c;使用以下命令更改…...

PHP老照片修复文字识别图像去雾一键抠图微信小程序源码

&#x1f50d;解锁复古魅力&#xff0c;微信小程序黑科技大揭秘&#xff01;老照片修复&更多神奇功能等你来试&#xff01; &#x1f4f8; 【老照片修复&#xff0c;时光倒流的美颜术】 你是否珍藏着一堆泛黄的老照片&#xff0c;却因岁月侵蚀而模糊不清&#xff1f;现在…...

识别色带详解解释

这段代码主要用于检测图像中的绿色区域&#xff0c;并在检测到特定数量的绿色像素时采取相应的动作。下面是每行代码的详细解释&#xff1a; if (divergerColor "green") {目的: 检查当前 divergerColor 是否为 “green”。如果是&#xff0c;则进入代码块进行绿色…...

如何用 Python 绕过 cloudflare(5秒盾) 抓取数据:也不是很难嘛!

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你全面了解 cloudflare(5秒盾) 以及如何绕过使用 cloudflare 服务…...

掌握Conda配置术:conda config命令的深度指南

掌握Conda配置术&#xff1a;conda config命令的深度指南 引言 Conda是一个功能强大的包管理器和环境管理器&#xff0c;广泛用于Python和其他科学计算语言的依赖管理。conda config命令是Conda套件中用于配置和自定义Conda行为的关键工具。通过这个命令&#xff0c;用户可以…...

MySQL:left join 后用 on 还是 where?

在MySQL中&#xff0c;LEFT JOIN用于返回左表&#xff08;即LEFT JOIN关键字左边的表&#xff09;的所有记录&#xff0c;即使在右表中没有匹配的记录。对于那些右表中没有匹配的记录&#xff0c;结果集中右表的部分会被填充为NULL。关于ON和WHERE子句的使用&#xff0c;它们在…...

openfoam生成的非均匀固体Solid数据分析、VTK数据格式分析、以及paraview官方用户指导文档和使用方法

一、openfoam生成的非均匀固体Solid数据分析 二、VTK数据格式分析 三、paraview官方用户指导文档和使用方法 官网文档链接&#xff1a;在paraview软件中&#xff0c;点击工具栏中的help->paraview guide 即可直接跳转到浏览器打开官网指导页面。 官网链接如下&#xff1a;…...

JVM:类的生命周期

文章目录 一、介绍二、加载阶段三、连接阶段1、验证阶段2、准备阶段3、解析阶段 四、初始化阶段 一、介绍 类的生命周期描述了一个类加载、连接&#xff08;验证、准备和解析&#xff09;、初始化、使用、卸载的整个过程。 二、加载阶段 加载&#xff08;Loading&#xff09…...

几种不同的方式禁止IP访问网站(PHP、Nginx、Apache设置方法)

1、PHP禁止IP和IP段访问 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.1.4");if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ){die ("您的IP禁止访问&#xff01;");}//禁止某个IP段…...

经典 SQL 数据库笔试题及答案整理

最近有蛮多小伙伴在跳槽找工作&#xff0c;但对于年限稍短的软件测试工程师&#xff0c;难免会需要进行笔试&#xff0c;而在笔试中&#xff0c;基本都会碰到一道关于数据库的大题&#xff0c;今天这篇文章呢&#xff0c;就收录了下最近学员反馈上来的一些数据库笔试题&#xf…...

JS代码动态打印404页面源码

JS代码动态打印404页面源码&#xff0c;适合做网站错误页&#xff0c;具有js动态打印效果&#xff0c;喜欢的朋友可以拿去 源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务…...

从“钓”到“管”:EasyCVR一体化视频解决方案助力水域安全管理

一、背景 随着城市化进程的加快&#xff0c;越来越多的市民热衷于钓鱼活动。钓鱼活动在带来乐趣的同时&#xff0c;也伴随着一定的安全隐患。尤其是在一些危险水域&#xff0c;也经常出现垂钓者的身影&#xff0c;非法垂钓&#xff0c;这给城市管理带来了不小的阻力。传统的人…...

springboot大学生竞赛管理系统-计算机毕业设计源码37276

摘 要 随着教育信息化的不断发展&#xff0c;大学生竞赛已成为高校教育的重要组成部分。传统的竞赛组织和管理方式存在着诸多问题&#xff0c;如信息不透明、效率低下、管理不便等。为了解决这些问题&#xff0c;提高竞赛组织和管理效率&#xff0c;本文设计并实现了一个基于Sp…...

提高LabVIEW软件的健壮性

提高LabVIEW软件的健壮性&#xff0c;即增强其在各种操作条件下的可靠性和稳定性&#xff0c;是开发过程中非常重要的一环。健壮的软件能够在面对意外输入、极端环境和系统故障时依然表现出色&#xff0c;确保系统的连续性和可靠性。以下是详细的方法和策略&#xff0c;从多个角…...

不同深度的埋点事件如何微妙地改变广告系列的成本

/ 作者简介 / 本篇文章来自现金贷领域市场投放大佬 亮哥 的投稿&#xff0c;主要分享了在广告投放过程中&#xff0c;不同深度的埋点事件如何微妙地改变广告系列的成本的相关经验&#xff0c;相信会对大家有所帮助&#xff01;同时也感谢作者贡献的精彩文章。 / 前言 …...

Perl 语言进阶学习

Perl 语言进阶学习 在掌握 Perl 的基础知识后&#xff0c;进一步学习 Perl 的高级特性和应用&#xff0c;将有助于提升编程效率和解决复杂问题的能力。本文将详细介绍 Perl 语言的高级功能、最佳实践以及实际应用案例。 目录 高级数据结构 多维数组复杂数据结构 引用与匿名数…...

动手实现一个简易的RS纠删码:用Python从GF(2^8)有限域到编解码全流程

动手实现一个简易的RS纠删码&#xff1a;用Python从GF(2^8)有限域到编解码全流程 在分布式存储和通信系统中&#xff0c;数据可靠性始终是核心挑战之一。想象一下&#xff0c;当你将文件上传到云端或通过网络传输重要数据时&#xff0c;如何确保即便部分数据丢失或损坏&#xf…...

GP8892SEH贴片SOP7省外围5V2A隔离型原边反馈芯片直接替代MT3723

GP8892SEH 是一款自供电原边反馈 PWM 控制芯片&#xff0c;采用 SOP7 贴片封装&#xff0c;主打"省外围、高精度、低待机"路线。它内置功率三极管&#xff0c;无需外置功率管&#xff0c;同时集成了 FB 下偏电阻和 CS 采样电阻&#xff0c;外围元件极少&#xff0c;特…...

保姆级教程:用PyTorch复现STANet遥感变化检测模型(附LEVIR-CD数据集下载与配置)

从零实现STANet&#xff1a;基于PyTorch的遥感变化检测实战指南 开篇&#xff1a;为什么选择STANet进行遥感变化检测&#xff1f; 当我们需要监测城市扩张、灾害评估或基础设施变化时&#xff0c;遥感变化检测技术显得尤为重要。传统方法往往受限于光照变化和配准误差&#xff…...

浏览器高阶使用指南:从基础操作到效率系统构建

1. 项目概述&#xff1a;浏览器&#xff0c;远不止是“上网”那么简单“abczsl520/browser-use-skill”这个项目名&#xff0c;乍一看可能会觉得有点“标题党”——浏览器使用技巧&#xff1f;这谁不会啊&#xff1f;点开、输入网址、回车&#xff0c;不就完了吗&#xff1f;如…...

RCX自定义主题和外观设置:如何打造个性化的云管理界面

RCX自定义主题和外观设置&#xff1a;如何打造个性化的云管理界面 【免费下载链接】rcx Rclone for Android 项目地址: https://gitcode.com/gh_mirrors/rc/rcx RCX作为一款功能强大的Android云管理工具&#xff0c;不仅提供了全面的Rclone功能支持&#xff0c;还允许用…...

Vue3 + Vite项目集成vue-particles避坑指南:从安装到性能优化全流程

Vue3 Vite项目集成vue-particles全流程实战&#xff1a;从安装到性能调优 在Vue3和Vite构建的现代前端项目中&#xff0c;集成像vue-particles这样的视觉特效组件往往会遇到意想不到的兼容性问题。不同于传统的Webpack环境&#xff0c;Vite的ES模块系统和Vue3的组合式API带来了…...

SubLens:AI订阅管理浏览器插件,一站式聚合账单与扣款提醒

1. 项目概述&#xff1a;一个帮你管好AI订阅账单的浏览器插件 如果你和我一样&#xff0c;订阅了不止一个AI服务——比如ChatGPT Plus用来日常对话和写作&#xff0c;Claude Pro用来处理长文档&#xff0c;GitHub Copilot写代码&#xff0c;Cursor辅助开发&#xff0c;再加上G…...

InjectFix实战解析:在Unity IL2CPP环境下实现C#热修复的权衡与策略

1. InjectFix在IL2CPP环境下的核心价值 当你的Unity手游在应用商店上线后突然出现致命Bug&#xff0c;传统解决方案往往需要重新打包、提交审核、等待上架&#xff0c;这个过程可能耗时数天。而InjectFix提供的C#热修复能力&#xff0c;可以在不更新客户端的情况下快速修复线上…...

从荧光灯到充电器:剖析MJE13001高压小功率三极管的实战选型与参数验证

1. MJE13001三极管的前世今生 第一次见到MJE13001这颗三极管是在修理一台老式荧光灯电子镇流器时。当时电路板上那颗黑乎乎的小元件已经烧得发黄&#xff0c;但依稀能看到"13001"的标识。拆下来用万用表测量发现CE结已经击穿&#xff0c;换上新的MJE13001后&#xf…...

Linux桌面便签工具终极指南:Sticky如何重新定义你的信息管理方式

Linux桌面便签工具终极指南&#xff1a;Sticky如何重新定义你的信息管理方式 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 你是否曾在忙碌的工作中突然闪现一个灵感&#xff0c;却因为切换…...