语音语言模型最新综述! 关于GPT-4o背后技术的尝试

近期,大型语言模型(LLMs)在生成文本和执行各种自然语言处理任务方面展现出了卓越的能力,成为了强大的AI驱动语言理解和生成的基础模型。然而,仅依赖于基于文本模态的模型存在显著局限性。这促使了基于语音的生成模型的发展,使其能够更自然、直观地与人类互动。

为了实现语音交互,OpenAI前阵子发布的GPT-4o,它可以直接与用户进行低时延,高质量语音对话,并具有多种不同的能力,如对说话人的识别,语音情感的识别,甚至是生成特定风格的语音,如唱歌。语音语言模型 (SpeechLMs)正是朝着这个方向的一种尝试,近期也成为了研究热点。本文是对SpeechLMs研究的一篇全面综述。

  论文链接:https://arxiv.org/abs/2410.03751

Motivation 

由于基于文本的大语言模型的成功,一般的语音交互方案通常采用"自动语音识别(ASR) +大型语言模型(LLM) +文本到语音合成(TTS)"的级联式架构。这种方法需要将语音信号转换为文本,并通过LLM基于文本进行回答,最后再将回答的语音进行生成。然而,这种方法存在两大主要的局限性:

  1. 整个流程是基于文本语言模型的,所以首先需要将音频转换为文本再进行处理。这种方式会丢失掉很多包含在音频中但不包含在文本中的信息,导致了音频信息的部分丢失。

  2. 整个流程是将三个独立的模块拼接在一起的,因此三个阶段在处理时候的错误会进行累积。

图片

为了解决这些问题,SpeechLMs作为一种端到端的语音交互模型应运而生,它无需将语音转换为文本就能直接生成语音输出。SpeechLMs不仅可以执行传统的ASR、TTS任务,还能直接进行端到端的语音对话,以及实现更多复杂的功能,如编码说话人的音色信息和语音情感的细微差别。

那么,什么是SpeechLM呢?SpeechLM是一种自回归的基础模型(foundation model),能够处理和生成语音数据,利用上下文理解来生成连贯的序列。它通常支持语音,或语音和文本两个模态,如语音输入文本输出、文本输入语音输出或语音输入语音输出。这使其可以进行广泛的任务和具有上下文感知的能力。

以下是SpeechLMs的分类框架:

SpeechLM的组成部分 

SpeechLM主要由三个核心组件构成:

  1. 语音分词器(Speech Tokenizer):将连续的音频信号编码为离散的token。

  2. 语言模型(Language Model):对语音token进行自回归建模。

  3. Token到语音合成器(Vocoder):将生成的token合成为语音波形。

 

具体来说,SpeechLM在工作时,会先将输入的音频信号通过语音分词器处理成离散的token,再通过语言模型对这些语音token进行自回归建模,生成后续的语音token。最后,这些由语言模型生成出的语音token会经过语音合成器,再恢复成语音。

接下来让我们详细了解这三个组件:

  • 语音分词器:语音分词器的核心目标是如何有效的将语音信号通过离散的token进行表示。这些token需要包含语音里面的多种信息。语音分词器的设计遵循有三类目标 - 语义理解、声学生成和混合目标。

    • 语义理解型分词器,如HuBERT,专注于捕捉语音内容和含义。

    • 声学生成型分词器,如SoundStream,侧重保留生成高质量语音所需的声学特征。

    • 混合型分词器,如SpeechTokenizer,则平衡了语义理解和声学生成。

  • 语言模型大多采用Transformer或Decoder-Only架构,如OPT、LLaMA等。它们以自回归方式生成语音。SpeechLM中的语言模型通常可以将语音和文本的词表进行拼接,从而联合建模文本和语音模态。

  • 语音合成器:主要有GAN-based、Flow-based等多种类型。GAN-based如HiFi-GAN,是在SpeechLM中最为广泛使用的一类vocoder,因为其以快速且高保真的生成而著称。

SpeechLM的训练配方 

在训练方面,SpeechLMs的"配方"包括:

建模特征:这里表示的是SpeechLM的语言模型在训练时选择使用哪一类特征进行建模。一般可分为离散特征和连续特征。

  • 离散特征:这是最主要的SpeechLM所建模的特征,一般以token形式存在。这里一般主要包含语义token,副语言学(paralinguistic)token,和声学token。

    • 语义token:主要包含了语音里面语义信息。

    • 副语言学token:主要包含了语音里面出语义信息以外的信息,如音高,韵律等。

    • 声学token:主要包含语音信号中的声学信息。这些信息有助于将token恢复出高质量高保真语音。

  • 连续特征:当然也有极少部分SpeechLM选择对连续信号进行建模,如梅尔谱(mel-spectrogram)

训练阶段:包括语言模型预训练和指令微调两个主要阶段。

  • 语言模型预训练:此阶段主要关注如何让SpeechLM中的语言模型有效学习到语音token之间的上下文关系,从而让模型能够输出上下文相关的且连贯的语音。此阶段可以选择使用随机初始化的参数开始训练,但研究人员一般会更愿意选择基于文本训练好的LLM checkpoint进行继续预训练。研究人员发现采用文本预训练的checkpoint继续预训练使得SpeechLM效果更好,且能够更快拟合。

  • 语言模型指令微调:此阶段主要关注让SpeechLM中的语音模型能够有效的进行指令跟随,从而更好的与人类对话或回答人类提出的问题。

语音生成范式:除传统生成方式外,还包括实时交互和静默模式等高级语音交互技能。

  • 实时交互:一般的语言模型在交互时遵循回合制(turn-based),即每一轮的输入输出需要等上一轮的输入输出结束后才能进行。然而,这并不符合人类说话(语音交互)的范式。人类语音交互时,通常可以不等待上一个人说话结束后就会说话,或者在他人说话时自己同时开始说。这催生了SpeechLM的实时交互模式的探索。

  • 静默模式:静默模式指的是当模型识别到,当人类没有与其对话的时候(如在和其他人对话时),选择不进行回应的能力。

下游任务与能力 

SpeechLMs能够执行多种下游任务,大致可分为三类:

  1. 语义相关应用:如口语对话、语音翻译、自动语音识别等;

  2. 说话人相关应用:如说话人识别、验证、分离等。此能力可以让SpeechLM分辨出多个说话人,从而可以处理更加复杂的场景,如在参与会议并与多人同时进行讨论;

  3. 语音学应用:如情感识别、语音分离、增强语音学生成等。此能力能使得SpeechLM识别并生成带有特定风格的语音,如使用不同情感说话,甚至是唱歌。

评 估 

在评估方面,SpeechLMs采用自动(客观)评估和人工(主观)评估两种方法。

  • 自动(客观)评估:通过自动化指标来评判SpeechLM的好坏。自动评估通常从多个角度去衡量SpeechLM的性能:

    • 特征评估:衡量SpeechLM所输出的特征;

    • 语言学评估:衡量SpeechLM对于词法,句法,语义的理解与生成;

    • 副语言学评估:衡量SpeechLM对于副语言学特征的理解与生成质量。

  • 人工(主观)评估:通过人工评估来评判SpeechLM的好坏。人工评估主要依赖平均意见得分(MOS)。

未来研究方向 

尽管SpeechLMs展现出令人印象深刻的能力,但这一领域的研究仍处于起步阶段。未来的研究方向包括:

  1. 深入理解不同组件(语音分词器,语言模型,语音合成器)选择的优劣;

  2. 探索端到端训练方法:当前的SpeechLM在训练时通常会选择分开对三个组件训练,而将三个组件合在一起进行端到端训练的策略值得研究;

  3. 继续增强SpeechLM的实时语音生成能力;

  4. 解决SpeechLMs中的安全风险:语音生成模型中同时有与文本生成模型相似的和独立的安全风险。例如,SpeechLM可能会生成有毒性的文本(制作炸弹的教学),不合规的语音(如色情语音),和对说话人的偏见(对不同口音的语音输入产生不同的输出)。因此,解决SpeechLM中的安全风险至关重要;

  5. 提升在稀有语言上的表现:对于稀有语言(小语种)来说,通常在互联网上能够获取到的文本资料很少,但语音数据却相对较多。因此,研究者可以关注如何提升SpeechLM在稀有语言上的表现。

总结 

SpeechLMs作为一种新兴的语音交互技术,展现出了巨大的潜力。它不仅能够克服传统ASR+LLM+TTS方案的局限性,还能实现更自然、更丰富的人机语音交互。随着研究的深入,我们有理由相信SpeechLMs将在未来的AI语音交互中扮演越来越重要的角色。

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

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

相关文章

任务看板是什么?如何选择合适的任务看板工具?

一、任务看板是什么? 任务看板是一种可视化的项目管理工具,它通常以板状的形式呈现,将任务以卡片的形式展示在不同的列中,每一列代表任务的不同状态。例如,待办事项、进行中、已完成等。任务看板能够帮助团队成员清晰…

Linux: network: wireshark IO图的一个问题

今天遇到一个问题,发现wireshark画的IO图,前几秒没有数据,但是根据Raw的pcap看,是有包的,这就迷惑了。 经同事提醒,这个IO在设置了多个画图filter的时候,可能导致开始前几秒没有输出。如下图 这…

LLM | 论文精读 | 基于大型语言模型的自主代理综述

论文标题:A Survey on Large Language Model based Autonomous Agents 作者:Lei Wang, Chen Ma, Xueyang Feng, 等 期刊:Frontiers of Computer Science, 2024 DOI:10.1007/s11704-024-40231-1 一、引言 自主代理(…

找不到包的老版本???scikit-learn,numpy,scipy等等!!

废话不多说 直接上链接了: https://pypi.tuna.tsinghua.edu.cn/simple/https://pypi.tuna.tsinghua.edu.cn/simple/https://pypi.tuna.tsinghua.edu.cn/simple/xxx/ 后面的这个xxx就是包的名字 大家需要什么包的版本,直接输进去就可以啦 举个栗子&#…

关于Docker的docker engine stopped问题解决

问题图: 主要检查这两块 启用或关闭Windows功能如下图(将没开启的开启特别是Hyper-V,Linux,虚拟机等): 然后打开任务管理器搜索Docker service将关闭状态打开 运行管理员CMD执行如下命令 重启!&#xff01…

ClickHouse在百度MEG数据中台的落地和优化

导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题,导致开发效率低下、学习成本高,业务需求响应迟缓。为了解决这些问题,百度MEG内部开发了图灵3.0生态系统,包括Turing Data Engine(TDE)计算引擎、Turing Dat…

个性化头像新选择:A1快速定制你的专属头像

个性化头像是彰显个人特色的绝佳方式,许多人为了表达自我,都会选择定制专属头像。然而,传统的定制头像服务往往价格不菲,且效果难以预测。幸运的是,AI绘画技术的发展为这一问题提供了解决方案。尽管许多AI绘画平台需要…

useEffect简单介绍

react组件生命周期 比如说,某些操作就只在初始渲染后执行,我们就可以使用useEffect。 useEffect(function () {fetch(http://www.omdbapi.com/?apikey${KEY}&sinterstellar).then((res) > res.json()).then((data) > setMovies(data.Search)…

fpga系列 HDL: 竞争和冒险 01

卡诺图是一种逻辑化简工具,用来在布尔函数的最小项和形式中,找到冗余项并实现逻辑化简。也可用于HDL中竞争和冒险的判断。 最小项 任何一个逻辑函数都能化简为最小项的和的形式对于 n 个变量的布尔表达式,每个变量都必须以原变量&#xff0…

Pyramidal Flow使用指南:快手、北大、北邮,开源可免费商用视频生成模型,快速上手教程

什么是 Pyramidal Flow? Pyramidal Flow 是由快手科技、北京大学和北京邮电大学联合推出的开源视频生成模型,它是完全开源的,发布在 MIT 许可证下,允许商业使用、修改和再分发。该模型能够通过文本描述生成最高10秒、分辨率为128…

10分钟使用Strapi(无头CMS)生成基于Node.js的API接口,告别繁琐开发,保姆级教程,持续更新中。

一、什么是Strapi? Strapi 是一个开源的无头(headless) CMS,开发者可以自由选择他们喜欢的开发工具和框架,内容编辑人员使用自有的应用程序来管理和分发他们的内容。得益于插件系统,Strapi 是一个灵活的 C…

数字IC后端实现 | Innovus各个阶段常用命令汇总

应各位读者要求,小编最近按照Innovus流程顺序整理出数字IC后端项目中常用的命令汇总。限于篇幅,这次只更新到powerplan阶段。有了这份Innovus常用命令汇总,学习数字IC后端从此不再迷路!如果大家觉得这个专题还不错,想继…

[Redis] Redis数据持久化

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

C#与C++交互开发系列(十):数组传递的几种形式

前言 在C#和C的交互开发中,数组传递是一个非常常见且实用的场景。数组可以作为方法的参数,也可以作为响应结果返回。在本篇博客中,我们将探讨几种常见的数组传递方式,展示如何在C#与C之间进行有效的数据交换。我们将主要介绍以下…

【HarmonyOS Next】原生沉浸式界面

背景 在实际项目中,为了软件使用整体色调看起来统一,一般顶部和底部的颜色需要铺满整个手机屏幕。因此,这篇帖子是介绍设置的方法,也是应用沉浸式效果。如下图:底部的绿色延伸到上面的状态栏和下面的导航栏 UI 在鸿蒙…

爱奇艺大数据多 AZ 统一调度架构

01# 导语 爱奇艺大数据技术广泛应用于运营决策、用户增长、广告分发、视频推荐、搜索、会员营销等场景,为公司的业务增长和用户体验提供了重要的数据驱动引擎。 多年来,随着公司业务的发展,爱奇艺大数据平台已积累了海量数据,这…

crc, md5 和 sha的区别

效率不同: 直接看代码 import zlib import hashlib import timewith open(rD:\data., rb) as f:x f.read()s time.time() for i in range(100000):d zlib.crc32(x) print(time.time() - s)s time.time() for i in range(100000):m hashlib.md5()m.update(x)d m.hexdige…

边缘计算路由网关R40钡铼技术3LAN口1WAN口Modbus协议

在当今快速发展的工业互联网时代,随着物联网(IoT)与大数据分析的日益融合,边缘计算成为了提高数据处理效率、降低延迟的关键技术。 产品特点: 多接口支持:R40B拥有3个LAN口和1个WAN口的设计,能…

鸿蒙next之导航组件跳转携带参数

官方文档推荐使用导航组件的形式进行页面管理,官方文档看了半天也没搞明白,查了各种文档才弄清楚。以下是具体实现方法: 在src/main/resources/base/profile下新建router_map.json文件 里边存放的是导航组件 {"routerMap" : [{&q…

创建型模式-----建造者模式

目录 背景: 构建模式UML 代码示例 房子成品: 构建器抽象: 具体构建器: 建筑师: 测试部…