简单介绍AudioLM

主要介绍AudioLM,学习资料为知乎文章。这里只介绍核心思想和模块。

AudioLM

基本信息

AudioLM: a Language Modeling Approach to Audio Generation
pdf: https://arxiv.org/pdf/2209.03143.pdf
参考资料:https://zhuanlan.zhihu.com/p/637196330

模型结构和原理(语音到语音)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 整体思路,语音到语音,语音续写。
  2. 两个前处理模块:第一张图中将一个语音处理成semantic tokens(w2v-bert)以及acoustic tokens(soundstream前部分模块)
  3. 三个核心模块:即最后三张图。Semantic modeling用于将语义信息进一步生成,生成新的语义,可以理解成续写的内容;Coarse acoustic modeling用于语音信息的生成,它的输入结合了前面生成的语义信息,生成新的语音信息包含了语义信息;Fine acoustic modeling模块将语音信息进一步精修,生成新的语音信息;精修的语音信息和精修之前的语音信息合在一起进行进行decoder,解码为wav。
  4. 上面第二张图,是论文中的原图,展示了三个模块和数据流向,看完最后三个图再理解这个图就很容易懂了。

适合任务

适合任务1:自由生成。随机输入一些semantic tokens。
适合任务2:语音续写。
适合任务3:钢琴曲学写。
适合任务4:speaker转换。也就是保持说的内容是given的,然后生成不同说话人音色的音频。
外接gpt模型t5,让audiolm具有tts的能力。

inference阶段

  1. unconditional generation
 这里可以理解为就是生成随机的内容,也不控制speaker音色。这里的输入描述是we sample unconditionally all semantic tokens。我的理解就是随机给一些semantic tokens作为输入,来启动semantic transformer的自回归输出不过这里没有提到第二阶段要用到的acoustic tokens这个输入从哪里来?

知乎中这段文字,我理解acoustic tokens也来自随机。

  1. acoustic generation
semantic tokens这次直接由某个固定的wav过w2v-bert得到。
这样可以实现合成和这个wav同样的内容但是音色和风格不同的其他说话人的语音。
相对第一种模式,这个模式下感觉就不需要用到semantic modeling这个过程了。
但是还是存在一个疑问,就是coarse acoustic modeling的过程中,acoustic tokens这个输入从哪里来?

知乎中这段文字,我理解acoustic tokens是来自外部给定的wav,可以参考这个wav的风格生成语音。

  1. generating continuations
这个模式是相对比较符合实际应用的,这个模式下会给定一个wav的prompt。
然后从prompt可以得到semantic tokens和acoustic tokens。
分别被用在第一阶段和第二阶段,最后可以实现一个语音续写的效果。
不过续写的内容是来自模型本身产生,无法人为控制。

备注:由于没有看原始论文,所以没太理解训练的时候的具体细节,每个模型有没有初始化,模型训练任务怎么设计的,以及loss是什么。
相关待学:soundstream、Vall-e、HifiGan、Vits、GPT-SoVITs、encodec

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

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

相关文章

Elasticsearch:向量相似度计算 - 可笑的速度

作者:Chris Hegarty 任何向量数据库的核心都是距离函数,它确定两个向量的接近程度。 这些距离函数在索引和搜索期间执行多次。 当合并段或在图表中导航最近邻居时,大部分执行时间都花在比较向量的相似性上。 对这些距离函数进行微观优化是值…

记录一次bug

Component inside renders non-element root node that cannot be animated. 这可能导致 页面切换过度动画失败,导致页面空白,需要有一个公共根组件 放在一个根元素下面即可

STM32利用标准库编写PA0和PA4中断proteus仿真

首先先看看结果吧:昨天学习的是5--9或10--15引脚的中断,如果选择的是0到4口应该怎么办呢?今天就学习的这个,特此记录一下: 整个工程打包好了,直接下载打开就能仿真了: 链接:https:/…

「Mybatis实战九」:Mybatis的dao层开发使用 - 代理开发方式

一、前言 ​ 本文将进一步探讨在之前“「Mybatis实战八」:传统开发方式下的Mybatis DAO层构建”所奠定的基础之上,如何运用Mybatis的接口代理开发模式来优化持久层的设计与实现,解决上文中的问题。 二、代理开发方式简介 Mybatis提供的基于…

前端部署真的不简单

公众号:程序员白特,欢迎一起交流学习~> 原文:前端部署真的不简单 - 掘金 (juejin.cn) 现在大部分的中小型公司部署前端代码都是比较简单的,主要步骤如下: 首先,通过脚手架提供的命令npm run build打包前端代码&…

【模型复现】自制数据集上复现目标检测域自适应 SSDA-YOLO

【模型复现】自制数据集上复现目标检测域自适应 SSDA-YOLO 1. 环境安装2. 数据集制作2.1 数据准备2.2 数据结构 3. 模型训练3.1 数据文件配置3.2 训练超参数配置3.3 模型训练 4. 模型验证4.1 验证超参数配置4.2 模型验证 5. 模型推理5.1 推理超参数配置5.2 模型推理 6. 踩坑记录…

【主题广范|见刊快】2024年可再生能源与智能电网国际学术会议(ICRESG 2024)

【主题广范|见刊快】2024年可再生能源与智能电网国际学术会议(ICRESG 2024) 2024 International Conference Renewable Energy and Smart Grid 本次会议汇聚了来自全球各地的专家学者,共同探讨可再生能源与智能电网领域的最新研究成果、技术进展和未来发展趋势。会…

数据结构.多项式加法

#include<iostream> using namespace std; int a[100][2], b[100][2], sum[100][2]; int n, m; int main() {cin >> n;//输入第一个多项式的项数for (int i 0; i < n; i){cin >> a[i][0] >> a[i][1];//分别输入系数和指数}cin >> m;//输入第…

递归学习资料

思路 例题 package 递归;public class 反向打印字符串 {public static void main(String[] args) {f("ABC",0);}static void f(String str,int n){if (nstr.length()){return;}f(str,n1);System.out.println(str.charAt(n)"");} }多路递归 递归优化 -剪枝…

建立网络防御时需要重点考虑的10个因素

互联网安全中心&#xff08;CIS&#xff09;建议企业可以从以下10个因素入手&#xff1a;资产管理、数据管理、安全配置、账户和访问控制管理、漏洞管理、日志管理、恶意软件防御、数据恢复、安全培训和事件响应。 1、资产管理 建立网络防御的第一步是制定企业资产和软件资产的…

【场景题】如何设计一个购物车功能?

本文参考文章&#xff1a;https://www.hollischuang.com/archives/6998 https://www.woshipm.com/pd/4115447.html https://zq99299.github.io/note-book/back-end-storage/01/03.html 首先我们要明白&#xff1a;购物车系统在电商系统中的角色是作为用户选购商品和最终下单的桥…

AI Icon Generator:免费的AI图标生成器,一键生成你想要的图标(附试用链接)

给大家推荐一个免费的AI图标生成器&#xff0c;只需要输入你想要生成的图标内容就可以一键生成图标&#xff0c;可以选择不同风格&#xff0c;完全免费&#xff0c;比如输入“一只在宇宙飞船上的猪&#xff01;”看看他能生成什么样的效果。 感兴趣的小伙伴快去试试吧&#xff…

C语言-两数组元素互换

#include <stdio.h> #include <string.h>//两数组元素互换 void swap(int ch1[],int ch2[],int sz) {int i 0;char ch 0;for(i 0;i < sz;i){ch ch1[i];ch1[i] ch2[i];ch2[i] ch;} } //打印数组元素 void print(int ch[],int sz) {int i 0;for(i 0;i <…

uniapp iOS 真机调试

一、下载爱思助手 二、打开爱思助手&#xff0c;把你的 苹果手机 用原装数据线连接至电脑&#xff1a; 找到 工具箱 > 搜索IPA > 打开IAP签名 三、添加 IPA 文件 mac&#xff1a;finder 》应用程序 》右键 HbuilderX 》显示包内容 》HbuilderX / plugins/ lau…

矩阵爆破逆向-条件断点的妙用

不知道你是否使用过IDA的条件断点呢&#xff1f;在IDA进阶使用中&#xff0c;它的很多功能都有大作用&#xff0c;比如&#xff1a;ida-trace来跟踪调用流程。同时IDA的断点功能也十分强大&#xff0c;配合IDA-python的输出语句能够大杀特杀&#xff01; 那么本文就介绍一下这…

Premiere Pro 2024:革新视频编辑,打造专业影视新纪元

在数字化时代&#xff0c;视频已经成为人们获取信息、娱乐消遣的重要媒介。对于视频制作者而言&#xff0c;拥有一款功能强大、易于操作的视频编辑软件至关重要。Premiere Pro 2024&#xff0c;作为Adobe旗下的旗舰视频编辑软件&#xff0c;凭借其卓越的性能和创新的特性&#…

Java 解决异步 @Async 失效问题

1.问题描述 使用Async进行异步处理时&#xff0c;异步没有生效 2.原因分析 经过排查后发现是因为使用Async的方法没有跨2个Service导致的 错误示例 控制器接口 > 直接调用 custAdminService.importCBuy() 3.解决方案 Controller接口不变&#xff0c;多添加一层Service&a…

基于机器学习的曲面拟合方法

随着科技的不断发展&#xff0c;机器学习成为了最近最热门的技术之一&#xff0c;也被广泛应用于各个领域。其中&#xff0c;基于机器学习的曲面拟合方法也备受研究者们的关注。曲面拟合是三维模型处理中的重要技术&#xff0c;其目的是用一组数据点拟合出平滑的曲面&#xff0…

Spring框架学习

Spring&#xff1a; &#xff08;1&#xff09;Bean线程安全问题 &#xff08;2&#xff09;AOP&#xff0c;事务原理&#xff0c;事务失败 &#xff08;3&#xff09;Bean的生命周期 &#xff08;4&#xff09;循环依赖 SpringMVC&#xff1a; &#xff08;1&#xff09…

5201B数据网络测试仪

|5201B数据网络测试仪| | 产品综述 | 电科思仪5201B便携式数据网络测试仪&#xff0c;集成高性能IP基础测试硬件平台&#xff0c;提供L2-L3流量测试及协议仿真解决方案&#xff0c;支持以太网报文线速生成与分析、统计、报文捕获&#xff0c;以及路由、接入、组播、数据中心等协…