VALL-E:Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers

news2025/2/26 19:17:04

文章目录

  • NLP中Bert的进展历史
    • word embedding
    • ELMO
    • GPT
    • Bert
  • AudioLM: a Language Modeling Approach to Audio Generation
    • abstract
    • intro
    • related work
  • VALL-E:Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers
    • abstract
    • speech quantization
    • training:conditional codec LM
      • AR-codec LM:acoustic prompt
      • NAR-codec LM:fine acoustic prompt

NLP中Bert的进展历史

  • 从Word Embedding到Bert模型——自然语言处理中的预训练技术发展史

word embedding

  • word embedding:每个单词one-hot编码的向量矩阵,在大语言训练之后,该矩阵可以直接提取出来,作为word embedding提取器,用于计算单词的相似度等;其中提取word embedding的方式word2vec的训练有两种:(1)提供上下文,预测目标单词,CBOW(continuous bag-of-word model);(2)当前单词预测前后的单词。
  • 缺点:当同一单词有不同含义的时候无法区分

ELMO

  • 在word embedding的基础上,对上下文信息进行编码,对于当前单词提供出来的是word embedding, 双向LSTM前向编码的结果,反向编码的结果(其中后两项有比较强的语义信息)。

GPT

  • 使用transformer结构,长距离编码的能力显著优于BLSTM
  • 但是只提供了前向编码的结果,没有考虑上下文信息

Bert

  • 使用transformer结构,且使用了双向编码的结果
  • 使用了CBOW的方法,训练的时候,对于一个句子,随机mask一定比例的单词,作为预测目标。(为了避免训练把mask映射,部分mask不是替换成【mask】的方式,而是随机换成其他的单词,或者不做mask)
  • in-context学习的能力,对于下游任务,只需要对数据结构作一定的修改,仍然使用此结构,在重多任务上都取得比较好的结果。

AudioLM: a Language Modeling Approach to Audio Generation

  • google

abstract

  • motivation:生成高质量的音频,且具有长时相关性。speech2speech
  • speech量化成discrete tokens,然后恢复成音频。

intro

  • 在没有condition的情况下(linguistic features, MIDI seq),即使强如wavenet,也只能生成噪声。
  • 之前的方法:使用自监督语言模型方法预训练的模型得到semantic tokens。这些token捕捉了local dependencies(phn, 音乐中局部的旋律),长时特征(speech中的语言句法信息,钢琴曲中的harmony,rhythm)。——重建质量不高。
  • 本文:(1)semantic tokens和fine-level acoustic tokens,保证高质量生成和长时依赖。且两部分互为补充(音素信息和生成质量);(2)AudioLM音色复刻:acoustic prompt来自3s unspseech speaker的时候,可以实现音色、韵律以及录制环境的复刻。(3)AudioLM音乐生成:给了prompt之后,可以生成旋律、节奏、乐器音色一致的音乐。(4)为了防止语言延续(speech continuation)滥用,训练一个很高精度的判别器,用于判别语音是否是audioLM生成的。

related work

  • neutral codec:AudioLM使用SoundStream neutral codec提取的tokens(降采样),作为序列建模的target,而且tokens可以被重建为语音。
    在这里插入图片描述

VALL-E:Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers

abstract

  • motivation:将大数据训练语言模型的方法引入到TTS中,通过极大的数据量进行in-context learning,使用prompt-based approaches方法做zero-shot TTS
  • 效果demo
    在这里插入图片描述

speech quantization

在这里插入图片描述

  • 使用neutral codec对speech进行量化成离散的tokens,此过程可逆,也可以将discrete tokens反变换成高质量音频。neutral codec相比于其他量化方法优点在于:(1)包含充分的说话人信息和声学信息。(2)有现成的codec decoder,不需要重新训练;(3)相比于 μ − l a w \mu-law μlaw变换,所需的steps更少,效率更高。
  • 使用预训练的EnCodec作为tokenizer。输入speech采样率24kHz,经过模型将采样320倍,变成75Hz。模型是8个层级结构的CNN-residualVQ。第一维是global信息(音色,声道),后7维是细粒度的phn以及其他相关的信息,这么说是与使用的预训练模型自己训练时候的8维target提取方式有关(audioLM图,SoudnStream+wav2vecBERT)
  • 输入10s的音频,输出是75*10=750 * 8的离散特征矩阵

training:conditional codec LM

在这里插入图片描述

AR-codec LM:acoustic prompt

在这里插入图片描述

  • phn序列和acoustic prompt拼接,经过AR-transformer序列化的预测 c t c_t ct,时长对齐也是在这个阶段完成的。类似于tacotron。

NAR-codec LM:fine acoustic prompt

在这里插入图片描述

  • 对于第i个codec,输入是在这里插入图片描述

  • 其中, e c e_c ec是前(i-1) c i c_i ci和project weight乘积的累加和。
    在这里插入图片描述

  • 预测好的8维codec,送入decodec中,用于波形重建。

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

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

相关文章

程序的机器级表示part2——访问信息

目录 1. 整数寄存器 2. 操作数指示符与寻址模式 3. 数据传送指令 4. 压入和弹出栈数据 1. 整数寄存器 一个x86-64的CPU包含一组16个存储64位值的通用目的寄存器(general-purpose registers) 整型寄存器x86-64的CPU是64位的,因此相应的寄存器长度与机器字长(数据…

基于matlab实现的水果识别系统+源码+代码注释

水果识别 摘要: 本项目针对多种常见水果混合的图像,利用 Matlab 软件,对水果的识别进行研究。根据水果和背景的差别选取阈值,对去噪增强对比度后的图像进行二值化处理。再对图像进行边缘检测,选定连通区域&#xff0…

仅需一个注解,实现springboot项目中的隐私数据脱敏

文章参考: 仅是为了方便查看,因此在此记录一下​​​​​​​ 目录 1. 创建隐私数据类型枚举:PrivacyTypeEnum 2. 创建自定义隐私注解:PrivacyEncrypt 3. 创建自定义序列化器:PrivacySerializer 4. 隐私数据隐藏工…

高德地图开发之地图配置及vue上初始化创建地图

开门见山地说,现如今地图相关的开发业务在工作中越来越常见,目前市面上主流的地图开发还是以百度和高德为主,今天就来讲一下高德地图的配置和在vue上的初始化创建,帮助大家更好更快的了解高德地图开发相关的内容。 一. 注册地图 …

Python协程的四种实现方式

今天继续给大家介绍Python关知识,本文主要内容是Python协程的四种实现方式。 一、yield关键字实现方式 以yield关键字方式实现协程代码如下所示: def fun1():yield 1yield from fun2()yield 2def fun2():yield 3yield 4f1fun1() for item in f1:print…

steam搬砖项目靠谱吗?怎么样?

Steam搬砖’通俗来讲:小白都可以轻松上手,不需要会玩游戏,项目就是利用低价美金充值卡,从国外Steam平台购买CS:GO游戏装备回来,在国内网易BUFF平台售卖,低买高卖,产生利润的一个项目 首先&…

javascript实现版本号自增打包vue写入版本号

文章目录Preface代码方法一:兼容多长版本号。如:1.0.0.0.0.0方法二:只针对3位版本号打包时写入版本号Preface 前段时间出差去帮忙别的项目,项目中有前端更新提醒用户更新。 更新提示是放在了axios请求中。 这个需求是别人做的&…

再学C语言34:数组

数组(array)由一系列类型相同的元素构成 数组的声明:包括数组元素的数目和元素的类型,编译器根据这些信息创建合数的数组,数组元素可以具有同普通变量一样的类型: int main(void) {int a[5]; // 包含5…

ESP32-C3 迷你智能语音照明

一、概述二、硬件原理图设计三、硬件PCB软件设计四、软件设计五、结构设计六、总结一、概述本设计是使用ESP32-C3芯片,结合TP4057锂电池充电管理芯片、SIQ-02FVS3旋转编码器、离线语音识别模块、无源蜂鸣器、TYPE-C接口设计的一款迷你智能照明产品。功能特点&#x…

vue组件传值方式有哪些

Vue 作为一个轻量级的前端框架,核心两大特性就是响应式编程和组件化。 本文针对组件之间传值做详细讲解。 Vue就是由一个一个的组件构成的,组件化是它的精髓,也是最强大的功能之一。而组件实例的作用域是相互独立的,这就意味着不…

priority_queue 接口使用(仿函数、函数指针解决优先级队列存放自定义类型元素、指针类型元素)

一、priority_queue 优先队列本质就是 堆 堆&#xff1a; 完全二叉树&#xff0c;任意结点比其孩子结点小->小根堆, 任意结点比其孩子结点大->大根堆, 头文件包含&#xff1a;#include<queue> 二、优先级队列的模板参数列表&#xff1a; template <class …

钓鱼邮件有哪些特征?

钓鱼邮件以其极具迷惑的特性&#xff0c;让很多人都上当受骗。一般的钓鱼邮件都有哪些特征呢&#xff1f; 1、一般像邮件中带有链接很可能是钓鱼邮件&#xff0c;收到不明邮件不要打开&#xff0c;更不能点击不明链接。 2、邮件中携带可疑附件&#xff0c;并且邮件正文具有引导…

Unity——新输入系统Input System

1.安装 安装&#xff1a; 直接到包管理器Window > Package Manager安装即可&#xff0c;安装后提示需要重启&#xff0c;重启后即可使用。 注意&#xff1a; 在Project Settings中的Player设置里将Active Input Handling设置为Input System。 需要将默认场景中的EventSyst…

线程安全☞有序性

什么是有序性&#xff1f; 在开发中&#xff0c;我们通常按照从上到下的顺序编写程序指令&#xff0c;并且希望cpu和编译器按照我们预先编写的顺序去执。但往往cpu和编译器为了提高性能、优化指令的执行顺序&#xff0c;会将我们编写好的程序指令进行重排序。 此时如果是在单…

如何将as代码上传到Gitee

一、Git的安装 1.这个直接到官网上下载&#xff0c;不多说了。Git - Downloads (git-scm.com) 2.在AS中添加Git的位置 二、AS中Gitee插件的安装 ⒈点击File中的Settings 2.安装插件 三.Gitee中账号的注册以及相关操作 1.注册账号 2.新建仓库 3. 在插件中注册Gitee账号 注…

声音经济@2023: 「夹缝」求生,「希望」不远

【潮汐商业评论/ 原创】“明明很困&#xff0c;但怎么也睡不着了。”Andy如是说。每每此刻&#xff0c;Andy便轻车熟路地拿起身旁的手机&#xff0c;随机打开音频APP&#xff0c;或是广播剧&#xff0c;或是播客节目&#xff0c;亦或是音乐和相声。伴随着声音的“催眠”&#x…

Cadence PCB仿真使用Allegro PCB SI元器件模型配置DevicesModels使用默认参数配置方法图文教程

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,配置方法3,总结1,概述 本文简单介绍使用Allegro PCB SI元器件模型配置DevicesModels使用默认参数配置的方法。 2,配置方法 第1步:打开待仿真的PCB文件,并确认软件为Allegro PCB SI 如果,打开软件不是A…

将微信小程序转换uniapp进行迁移的步骤以及遇到的问题总结

目录 前言 一、迁移步骤 第一步&#xff1a;安装miniprogram-to-uniapp 插件 第二步&#xff1a;查看是否安装成功 第三步&#xff1a;使用插件进行转换 第四步&#xff1a;使用hbuilder X运行转换后的项目并在微信小程序编辑器查看 第五步&#xff1a;调试修改 二、处…

黑马学ElasticSearch(九)

目录&#xff1a; &#xff08;1&#xff09;数据聚合-聚合的分类 &#xff08;2&#xff09;数据聚合-DSL实现Bucket聚合 &#xff08;3&#xff09; 数据聚合-DSL实现Metrics聚合 &#xff08;4&#xff09;数据聚合-RestClient实现聚合 &#xff08;5&#xff09;数据聚…

重复生成数据itertools.repeat()

【小白从小学Python、C、Java】【计算机等级考试500强双证书】 【Python-数据分析】 重复生成数据 itertools.repeat() [太阳]选择题 以下python代码结果错误的一项是? import itertools print("【执行】xitertools.repeat(abc,3)") xitertools.repeat(abc,3) print…