音频大模型导读

news2024/11/26 2:36:35

1 介绍

本次分享包含音频压缩,语音识别,语音合成,以及近两年来大模型在音频领域的应用,涉及八篇论文和一个近期github霸榜的语音合成工具。

结果如下图所示:(图链接:audio_llm)

  • 共涉及三种主要技术:音频压缩、音频表示、语音合成;
  • 主要技术来自:google(绿色),微软(紫色)、Facebook(黄色)、Suno-ai(红色)
  • 图中也大致描绘了各技术出现的先后顺序(从上到下)
  • 图中线条表示各技术的依赖和包含关系
  • 除了最近霸榜Bark,其它都能找到技术论文,并在下文中进行了简单介绍

2 基本概念

本部分介绍音频领域的基本概念。

2.1 音素

语音中最小的、不可再分的语音单元。在不同语言中,音素数量也有所不同,例如英语中有大约44个音素,中文普通话中有约20个声母和38个韵母。

2.2 语义特征与声学特征

语义特征是指语音合成的内容,如:音调、语速、语调;而声学特征则是指语音的物理属性,如基频、共振峰等。二者在不同场景及文章中定义也不完全一致。可以简单地理解为:语义与文本内容更相关,声学与声音更相关,即:文本->语义->声学->音频。

2.3 傅里叶变换

时域和频域之间进行转换。傅里叶级数则是将周期函数分解成谐波的和的形式。给音频编码、音频压缩、音频降噪等领域的应用提供了基础,同时,也应用于图像处理,时序等领域。

2.4 梅尔倒谱 MFCC

MFCC是从音频信号中提取语音特征的一种最常用方法。可以用于语音识别、语音合成、发音检测等应用。MFCC能够提取关于音频信号的有用信息、不受语调改变的影响、对于白噪声的干扰有强鲁棒性。
MFCC主要分为两步:首先,对音频信号应用快速傅里叶变换(FFT)将其变换到频域。然后在频域中,将频率轴转换为梅尔频率,更好地匹配人耳对声音的感知方式,得到其梅尔倒谱系数,这些系数可以看作是声谱图在梅尔频率轴上的投影。

3 近期主要技术

3.1 音频的表示学习

音频表示学习,指的是用相对短的数据描述音频,可理解为抽取音频特征,一般用于语音合成,语音识别等领域。

3.1.1 wav2vec_2.0

  • 时间:2020-10-22
  • 出处:Facebook AI
  • 贡献:从未标注的语音中学习音频的表示,然后通过少量标注数据精调。该方法一开始用于语音识别领域。
  • 结构:模型结构结合了CNN和Transformer。
    模型先使用卷积网络将输入音频X映射到隐空间Z,然后将Z送入Transformer网络构建表示C以便从上下文中提取相关信息;另外特征编码Z还被送入量化工具,以生成量化后的表示Q(离散)。

3.1.2 W2V-BERT

  • 时间:2021-12-13
  • 出处:MIT & Google Brain
  • 贡献:结合了对比学习和Mask语言模型,w2v-BERT 效果优于 wav2vec 2.0 30% 以上。
  • 结构:训练了End-to-end模型。
    特征编码器:由两个 2D 卷积层组成,使声学输入序列长度减少到1/4。
    对比学习模块:包含一个线性映射层,及多个Conformer层,每个块都是一系列多头自注意力、深度卷积和前馈层。对比模块涉及量化机制。
    Mask预测模块:使用BERT中的Mask方式,利用对比学习的输出,学习语音中高层的上下文之间的关系。

3.2 音频压缩和生成

本部分主要介绍基于深度学习的音频压缩技术,除压缩数据以外,该技术还被应用于生成高质量音频。

3.2.1 SoundStream

  • 时间:2021-07-07
  • 出处:Google
  • 贡献:高效压缩语音、音乐和一般音频。
  • 结构:模型由编码器,量化器,解码器组成,主要使用了卷积技术。
    模型由组成:
    编码器:卷积Encoder将采样率为fs的输入音频x转换为嵌入序列。
    残差向量量化(RVQ):将嵌入通过codebooks,压缩成少量字节(目标位数)的表示,生成量化嵌入。
    解码器:从量化的嵌入中产生有损重建x^。
    其训练过程中还使用了判别器Discrminator,它结合了对抗和重建损失,并使用可选的条件输入,用于指示是否从音频中去除背景噪声(Denosing)。

3.2.2 Encodec

  • 时间:2022-10-24
  • 出处:FAIR Team
  • 贡献:相对SoundStream使用更复杂精细的结构,效果更好。
  • 结构:方法与SoundStream相似,模型主要使用了卷积,LSTM,还加入Transformer优化量化单元,以减少带宽。模型由编码器,量化器,解码器三部分组成。从图中可以看到,其目标函数考虑了更多因素:重建损失,对抗损失,量化损失,以及Transformer损失。

3.3 综合使用

本部分包含了生成音频和文本转换成语音两种主要应用场景。

3.3.1 AudioLM

  • 时间:2022-09-07
  • 出处:Google research
  • 贡献:模型用于生成音频,保持一致性和高音质;只需要3s语音作为提示,即可生成训练期间未见过的语音,并保持说话人的声音,韵律,录音条件(混响、噪音)。其贡献主要在于在大模型训练中解耦了语义标记和声学标记。
  • 结构:使用无监督数据训练,利用对抗音频压缩,自监督表示学习,语言建模。分层方式结合语义和声学标记;基于w2v-BERT & SoundStream。其工作过程如下:
    将输入音频x映射到离散的词表y:y=end(x)。
    使用仅有decoder的Transformer模型,操作y,用时间t-1预测t对应的词(预测阶段使用自回归)。
    解码模型 ,将预测出的y^映射回音频格式。 x=dec(y)

3.3.2 Spear-TTS

  • 时间:2023-02-07
  • 出处:Google research
  • 贡献:文本转语音系统,它是AudioLM的延展。多语言的语音合成系统,使用少量有监督数据训练(自监督音频+有监督TTS)
  • 结构:基于w2v-BERT & SoundStream。对于语音数据对儿比较少的小语种做了以下优化:

从左下开始看图-2,首先,利用有限数据的损坏方法(加噪再去噪)来预训练模型P,生成语义token表征音频数据;然后训练回译模块,利用少量的并行数据微调解码器,训练模型B;利用模型B的回译方法以及大量无标签数据生成大量可用于训练的并行数据(右上);最后用所有并行数据精调模型(右下)只精调编码器的下面几层。

3.3.3 VALL-E

  • 时间:2023-01-05
  • 出处:Microsoft
  • 贡献:用3s录音和文本对应的音素生成语音。
  • 结构:也是AudioLM的延展,比Spear-TTS早一些。

以分层的方式设计了两个条件语言模型,一个用于生成声音c1(自回归AR),一个用于精调声音c2-8(NAR非自回归)。AR 模型和 NAR 模型的结合在语音质量和推理速度之间提供了良好的折衷。

3.3.4 VALLE-X

  • 时间:2023-03-07
  • 出处:Microsoft
  • 贡献:以源语言语音和目标语言文本为提示,预测目标语言语音的声学标记序列,可用于从语音到语音的翻译任务。它可以生成目标语言的高质量语音,同时保留看不见的说话者的声音、情感和声学环境。有效缓解了外国口音问题,可以通过语言ID来控制。
  • 结构:与VALL-E基本一致,但使用多语言训练,并加入了语言ID。除了模型本身,结合使用 G2P Tool 将文本转换成音素,以及最后使用 Encodec 生成音频数据。

自回归和非自回归模型的输入不同;右侧显示了语音到语音翻译的过程。
给定源语音 Xs,语音识别和翻译模型首先从语义编码器生成源音素 Ss,从语义解码器生成目标音素 St。此外,使用 EnCodec 编码器将 X 压缩为源声学标记 As。然后,将 Ss、St 和 As 连接起来,作为 VALL-E X 的输入,以生成目标语音的声学标记序列。使用 EnCodec 的解码器将生成的声学标记转换为最终的目标语音。

3.3.5 BARK

  • 时间:2023-04
  • 出处:suno-ai
  • 贡献:开包即用的多语言语音合成器,可在本地部署使用。
  • 结构:

Bark通过三个Transformer模型,将文本转换为音频。

  • 文本到语义Token
    输入:由Hugging Face的BERT标记器分词的文本
    输出:编码生成音频的语义Token
  • 语义到粗略Token
    输入:语义Token
    输出:来自Facebook的EnCodec编解码器的前两个codebooks的Token
  • 粗略到细节Token
    输入:EnCodec的前两个codebooks
    输出:EnCodec的8个codebooks

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

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

相关文章

Grafana 系列-统一展示-2-Prometheus 数据源

系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持。本文会介绍 Grafana Prometheus(也包括 Prometheus 的兼容实现,如 Thanos, Mimir 等) 数据源的部分选项、变量 (Variable)、查询 (Query) …

API接口获取商品数据

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

文献阅读:LaMDA: Language Models for Dialog Applications

文献阅读:LaMDA: Language Models for Dialog Applications 1. 工作简介2. 具体工作 1. 模型训练 1. 模型预训练2. finetune 2. 模型评估 1. SSI2. Safety3. Groundness4. Helpfulness5. Role Consistency 3. 实验结果整理4. 结论 & 思考 https://arxiv.org/a…

软件架构与设计模式复习笔记

考纲(张友生版本软件架构 考试题型: 10*3单选 5*3简答题 5*3设计图(含画图) 10*2 论述题 10*2综合题 复习以课件为主,书为辅 第一章 (软件危机) ? ? 构造模型与实现 掌握软件结构体系核心模型 第二章 软件体…

PBDB Data Service:Icon images of lifeforms(生命形式的图标图像)

Thumbnail images of lifeforms(生命形式的图标图像) 描述用法参数方法响应值格式术语表 描述 此操作返回表示指定分类的图像,或关于图像的信息。如果后缀是 .png,则返回图像内容数据。否则,将以指定的格式返回一个描…

【力扣-232.】用栈实现队列

🖊作者 : D. Star. 📘专栏 : 数据结构 😆今日分享 :“多看效应”-----对越熟悉的东西越喜欢的现象,心理学上称为“多看效应”。多看效应不仅仅是在心理学实验中才出现,在生活中,人们也常常能发现这种现象。…

HashMap 底层原理///HashMap详解

HashMap超详细探讨 总述从集合出发探讨HashMapCollection接口继承树Map接口继承树 从Map接口来,一步一步深入其中Map接口概述Map接口:常用方法Map接口 Map实现类之一:HashMapHashMap的存储结构HashMap源码中的重要常量JDK 1.8之前JDK 1.8总结…

阿里云CPU性能AMD EPYC Genoa 9T34处理器主频3.4 GHz

阿里云AMD服务器CPUAMD EPYC Genoa 9T34处理器,主频3.4 GHz,单核睿频最高3.75 GHz,计算性能稳定,阿里云服务器网分享AMD EPYC Genoa 9T34性能测评: AMD EPYC Genoa 9T34 阿里云AMD服务器性能增强通用型g8ae、计算平衡…

【容器化】Docker 简介和安装

【容器化】Docker 简介和安装 DockerDocker的应用场景Docker 的优点1、快速,一致地交付您的应用程序2、响应式部署和扩展3、在同一硬件上运行更多工作负载 Docker 架构Docker 安装Ubuntu Docker 、Debian Docker 安装使用官方安装脚本自动安装手动安装使用 Shell 脚…

渲染流水线 相关知识总结

目录 抽象理解渲染过程详细介绍各个渲染步骤1. 应用阶段1.1设置场景数据1.2 Culling 粗粒度剔除1.3 渲染设置1.4 传递几何信息1.5 调用DrawCall 2. 几何阶段2.1 几何着色器2.2 可选着色器2.3 投影变换 projection2.4 裁切 Clipping2.5 屏幕映射 ScreenMapping 3. 光栅化阶段3.1…

C++ Primer阅读笔记--返回类型和return语句

1--返回引用 同其他引用类型一样,如果函数返回引用,则该引用仅是所引对象的一个别名;则返回结果时不会发生拷贝操作; 不能返回局部对象的引用或指针;因为局部对象在函数结束后会被释放,从而其引用或指针将指…

【第六篇:测试左移-研发流程优化】

(1)规范了技术需求的研发流程(和产品需求一样走相同的流程,只不过需求的主R变为了RD) (2)规范了需求变更流程:需求变更要合理并做到全员周知; (3)强调冒烟不过,提测打回流程; (4)增加交互视觉评审环节,方便RD更合理估时; (5)规范回归测试流程,回归测试时需…

PbootCMS Sqlite数据库转Mysql数据库教程 sqlite转mysql

PbootCMS默认采用的是Sqlite数据库,系统自带完整后台以及一套响应式模板,放入PHP(5.3+)环境即可直接使用 线上搭建简易环境为:Apache 、 PHP5.6-PHP7.3 、 Mysql5.5+ 所以如果已经上线一段时间了,网站已经有较多内容后要想换成Mysql版本是很不方便的,以下就是快速将Mys…

WebSocket的那些事(2-实操篇)

目录 一、概述二、Websocket API1、引入相关依赖2、配置WebSocket处理器3、WebSocket配置4、测试 三、总结 一、概述 在上一节 WebSocket的那些事(1-概念篇)中我们简单的介绍了关于WebSocket协议的相关概念、与HTTP的联系区别等等。 这一节将会带来Web…

BM59-N皇后问题

题目 N 皇后问题是指在 n * n 的棋盘上要摆 n 个皇后。 要求:任何两个皇后不同行,不同列也不在同一条斜线上。 求给一个整数 n ,返回 n 皇后的摆法数。 数据范围: 1≤n≤9。 要求:空间复杂度 O(1) ,时间复杂度 O(…

牛客 NC24724 Feb S]Chocolate Eating 解题报告

原题链接&#xff1a; 登录—专业IT笔试面试备考平台_牛客网 题目描述&#xff1a; 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 Bessie has received N (1 < N < 50,000) chocolates from the bulls, but doesnt want to …

Notepad++ 配置python环境及虚拟环境

背景&#xff1a; 在执行某些项目的时候&#xff0c;经常会否遇到这样一种情况(以python语言为例)&#xff1a;不想在python的基础环境下运行&#xff0c;创建了虚拟环境来装相关项目的包&#xff0c;但是每次使用都要切换到虚拟环境下面使用"activate "命令激活环境…

C++linux高并发服务器项目实践 day8

Clinux高并发服务器项目实践 day8 内存映射内存映射相关系统调用例子思考问题案例2案例3 信号信号的5中默认处理动作信号相关函数kill、raise和abort函数alarm函数案例 setitimer函数 signal信号捕捉函数 内存映射 内存映射是将磁盘文件的数据映射到内存&#xff0c;用户通过修…

Spring MVC数据格式化与验证以及国际化和中文乱码处理

目录 Spring MVC数据格式化 基本介绍 ConversionService converters 基本数据类型和字符串自动转换 代码实例 -页面演示方式 创建Monster 类 创建data_valid.jsp 创建MonsterHandler类 创建monster_addUI.jsp 解读: 说明 阶段测试一下 ​编辑 继续完成功能 创建s…

springboot+vue校园疫情防控系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园疫情防控系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…