最近几个月,ChatGPT、GPT-4横空出世,火爆出圈,大型语言模型 (LLM) 在语言理解、生成、交互和推理方面表现出的非凡能力,引起了学界和业界的极大关注,也让人们看到了LLM在构建通用人工智能 (AGI) 系统方面的潜力。
现有的GPT模型具有极高的语言生成能力,是目前最为先进的自然语言处理模型之一,广泛应用于对话、翻译、代码生成等的自然语言处理领域。除了书面语言,用户在自然对话中主要使用口语(Spoken Language),而传统大语言模型却无法胜任音频理解与生成任务:
GPT模态限制。用户在自然对话中主要使用口语,对口语理解与合成有极大需求,而单模态GPT不能满足对音频(语音、音乐、背景音、3D说话人)模态的理解、生成需求。
音频数据、模型相对少。基础模型(Foundation Model)少或交互性差。相较于文本模态,用于重新训练语音多模态GPT的数据较少。
用户交互性差。用户广泛的使用语音助手如Siri, Alexa基于自然对话高效地完成工作。然而目前GPT之间的交互大多根据键盘输入的文本,交互性差,口语交互更能拉进和用户之间的关系,提升模型易用性。
最近,浙江大学、北京大学、卡内基梅隆大学和中国人民大学的研究人员针对性的解决以上难题,提出了全新的音频理解与生成系统AudioGPT。AudioGPT以ChatGPT充当负责对话与控制的大脑,语音基础模型协同以完成跨模态转换、以及音频(语音、音乐、背景音、3D说话人)模态的理解、生成,能够解决20+种多语种、多模态的AI音频任务。

论文地址:
Github:
Huggingg Face:
https://huggingface.co/spaces/AIGC-Audio/AudioGPT

话不多说,咱们直接看一个AudioGPT对话的例子,包括里面保含了文本、图像和语音三种模态的输入,AudioGPT能理解不同模态的输入,生成结果也能以文本、图像、音频相结合的方式展现给用户。
Q1: "Generate a speech with text "here we go"."
A1:
Q2: "Transcribe this speech."
A2:Here we go.
A4:
Q5: "Generate an audio of a piano playing."
A5:
Q6: Give me the description of this audio.
Q7: Generate a talking human portrait video.
A7:视频

AudioGPT语音模型在现有模型中具有不同的优势:
相较于文本GPT:ChatGPT、GPT4等语言模型侧重于自然语言处理领域,在多模态理解与合成上福利少了一些,AudioGPT则将重点放在了音频多模态的理解与生成。
相较于Siri等检索模型:与简单检索并以语音回复检索模型相比,AudioGPT强大的生成式对话,使得用户能够更加实时地获取和处理与内容相关的音频。
相较于视觉任务GPT:图像不存在像音频一样的语种分类,音频中存在不同语种:如中文、英文、法语等,AudioGPT还需要进行语种管理。
AudioGPT在收到用户请求时使用ChatGPT进行任务分析,根据语音基础模型中可用的功能描述选择模型,用选定的语音基础模型执行用户指令,并根据执行结果汇总响应。借助ChatGPT强大的语言能力和众多的语音基础模型,AudioGPT能够完成几乎所有语音领域的任务。
AudioGPT为走向语音通用人工智能开辟了一条新的道路。AudioGPT运行过程可以分成4个阶段:模态转化、任务分析、模型分配和回复生成。

目前多模态的LLM层出不穷,Visual ChatGPT,HuggingGPT等模型吸引了越来越多的关注,然而如何测评多模态LLM模型也成了一大难点。为了解决这一难点,研究人员为多模态LLM的性能评估设计了测评准则和测评过程。具体来说,AudioGPT提出从三个方面测评多模态LLM:
一致性(Consistency):度量AudioGPT是否正确的理解用户意图,并为之分配所需的模型;
稳定性(Capabilitity):度量基础的语音模型在其特定任务上的性能表现;
鲁棒性(Robustness):度量AudioGPT是否能正确的处理一些极端的例子。
针对一致性,研究人员设计了一套基于人工测评的流程。如下图所示:


多轮对话的稳定性:多模态LLM应该具备处理多轮对话的能力并且能处理上下文关系;
不支持的任务:目前多模态LLM并非万能的,当收到无法解决的请求时,多模态LLM也应该给予用户反馈;
错误处理:多模态基础模型可能由于不同的原因而失败,例如不支持的参数或不支持的输入格式。在这种情况下,多模态 LLM需要向用户提供合理的反馈,以解释遇到的问题并提出潜在的解决方案;
上下文中断:多模态LLM被期望处理不在逻辑序列中的查询。例如,用户可能会在查询序列中提交随机查询,但会继续执行具有更多任务的先前查询。



