Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)
随着人工智能技术的不断进步,音频语言模型(Audio-Language Models)在人机交互领域变得越来越重要。然而,由于缺乏能够处理多样化音频类型和任务的预训练模型,该领域的进展受到了限制。为了克服这一挑战,研究者们开发了Qwen-Audio模型,这是一个能够覆盖超过30种任务和各种音频类型的统一大规模音语预训练模型。
Qwen-Audio模型介绍
Qwen-Audio模型通过扩展Qwen-7B语言模型,连接单一音频编码器,有效地感知音频信号。与以往主要处理特定音频类型(如人类语音)或专注于特定任务(如语音识别和字幕生成)的模型不同,Qwen-Audio在多任务学习框架中进行了扩展,涵盖了多种语言和音频类型,以促进通用音频理解能力的发展。
模型架构
Qwen-Audio模型的核心架构包括一个音频编码器和一个大语言模型(LLM)。音频编码器基于Whisper-large-v2模型初始化,能够处理各种类型的音频,如人类语音、自然声音、音乐和歌曲。该编码器将原始音频波形转换为80通道的melspectrogram,并通过池化层降低音频表示的长度,使得编码器输出的每一帧大约对应原始音频信号的40毫秒段。
大型语言模型部分则初始化自Qwen-7B模型,这是一个包含7.7亿参数的32层Transformer解码器模型。Qwen-Audio的训练目标是最大化给定音频表示和之前文本序列的下一个文本标记概率。
多任务学习框架
为了在多任务学习中有效地训练Qwen-Audio,研究者提出了一个多任务训练格式框架。该框架通过一系列层次化标签来指导解码器,包括转录标签、音频语言标签、任务标签、文本语言标签、时间戳标签和输出指令。这样的设计不仅促进了类似任务之间的知识共享,还通过区分不同任务和输出格式来避免模型的多对一映射问题。
实验结果
Qwen-Audio在不需要任何任务特定微调的情况下,在多个基准测试任务上取得了令人印象深刻的性能,超越了其同类模型。特别是在Aishell1、cochlscene、ClothoAQA和VocalSound测试集上,Qwen-Audio实现了最先进的性能。
实验设置
- 研究者们对Qwen-Audio进行了多任务预训练,并在随后的监督微调阶段创建了Qwen-Audio-Chat模型。
基准测试任务
- Qwen-Audio在多个基准测试任务上进行了评估,这些任务包括自动语音识别(ASR)、语音到文本翻译(S2TT)、自动音频字幕生成(AAC)、声学场景分类(ASC)、语音情感识别(SER)、音频问答(AQA)、声乐声音分类(VSC)和音乐音符分析(MNA)。
实验结果
- Qwen-Audio在没有进行任何任务特定微调的情况下,就在多个任务上取得了优异的性能。
- 具体来说,Qwen-Audio在以下测试集上实现了最先进的性能:
- Aishell1:这是一个中文普通话的自动语音识别数据集,Qwen-Audio在开发和测试集上均取得了最低的词错误率(WER)。
- cochlscene:声学场景分类任务的数据集,Qwen-Audio在测试集上达到了最高的准确率(ACC)。
- ClothoAQA:一个音频问答任务的数据集,Qwen-Audio在测试集上展现了最高的准确率。
- VocalSound:声乐声音分类任务的数据集,Qwen-Audio同样在测试集上取得了最高的准确率。
性能对比
- Qwen-Audio的性能不仅在上述提到的数据集上超越了其他模型,而且在其他多个任务和数据集上也展现了强劲的性能,这证明了其通用音频理解能力的广泛性和有效性。
Qwen-Audio-Chat
基于Qwen-Audio的能力,研究者进一步开发了Qwen-Audio-Chat,它允许来自各种音频和文本输入的输入,支持多轮对话,并支持各种以音频为中心的场景。Qwen-Audio-Chat 的目标是创建一个能够理解音频和文本输入、并支持多轮对话的模型。该模型旨在模拟人类对话的方式,能够根据用户的指令进行有效的互动。
指令微调过程
- Qwen-Audio-Chat 的开发涉及到使用指令微调技术,这是在多任务预训练的基础上进行的。具体来说,研究者们手动创建了每个任务的示例,包括原始文本标签、问题和答案。
- 利用 GPT-3.5 生成基于提供文本标签的更多问题和答案,以增强模型的对话能力。
数据集构建
- 为了有效地训练 Qwen-Audio-Chat,研究者们构建了一个包含音频对话数据的数据集。这个数据集通过手动注释、模型生成和策略串联来创建,帮助模型整合推理、故事生成和多图像理解能力。
多音频输入处理
- Qwen-Audio-Chat 能够处理多音频对话和多个音频输入,为此引入了使用 "Audio id:" 标记不同音频的约定,其中 id 对应于音频输入对话的顺序。
对话格式
- 在对话格式方面,Qwen-Audio-Chat 使用 ChatML 格式构建指令调优数据集。在这种格式中,每个交互的语句都标记有特殊的开始和结束标记(例如
<im_start>
和<im_end>
),以便于对话的终止。
结论
Qwen-Audio系列模型展示了作为通用音频理解模型的潜力。通过大规模的端到端训练,Qwen-Audio成功地弥合了音频和文本模态之间的差距,并在多种任务上展现了卓越的性能。
[1]论文链接:https://arxiv.org/pdf/2311.07919.pdf
[2]开源代码:https://github.com/QwenLM/Qwen-Audio
相关文章:

Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)
随着人工智能技术的不断进步,音频语言模型(Audio-Language Models)在人机交互领域变得越来越重要。然而,由于缺乏能够处理多样化音频类型和任务的预训练模型,该领域的进展受到了限制。为了克服这一挑战,研究…...
杭州破冰之举:全面取消住房限购,激发市场新活力
在房地产市场调控的浪潮中,杭州再次走在了前列,于2024年3月14日宣布全面取消二手房限购政策,此举在行业内引发了广泛关注。作为中国经济活力较强的二线城市之一,杭州的这一决策不仅体现了地方政府在房地产市场调控上的灵活应变,也释放出对市场流动性和经济发展的积极信号。…...

ICode国际青少年编程竞赛- Python-1级训练场-变量练习
ICode国际青少年编程竞赛- Python-1级训练场-变量练习 1、 a 8 for i in range(8):Dev.step(a)Dev.turnRight()a - 12、 a 3 for i in range(4):Dev.step(a)Dev.turnRight()a a 1 Dev.step(5)3、 a 4 for i in range(4):Dev.step(2)Dev.step(-5)Dev.step(3)Spaceship.…...

学习STM32第二十天
低功耗编程 一、修改主频 STM32F4xx系列主频为168MHz,当板载8MHz晶振时,系统时钟HCLK满足公式 H C L K H S E P L L N P L L M P L L P HCLK \frac{HSE \times PLLN}{PLLM \times PLLP} HCLKPLLMPLLPHSEPLLN,在文件stm32f4xx.h中可修…...

智能BI(后端)-- 系统异步化
文章目录 系统问题分析什么是异步化?业务流程分析标准异步化的业务流程系统业务流程 线程池为什么需要线程池?线程池两种实现方式线程池的参数线程池的开发 项目异步化改造 系统问题分析 问题场景:调用的服务能力有限,或者接口的…...

AI绘画Stable Diffusion 插件篇:智能标签提示词插件sd-danbooru-tags-upsampler
大家好,我是向阳。 关于智能标签提示词插件,在很早之前就介绍过很多款了,今天再给大家介绍一款智能标签提示词插件sd-danbooru-tags-upsampler。该智能提示词插件是今年2月23号才发布的第一版V0.1.0,算是比较新的智能提示词插件。…...
Android OpenMAX(六)OMXStore
在前面两节的学习中我们知道了OMX Core是用来管理(查询/创建/销毁)Android平台上的硬件编解码组件的。这一节我们再向上一层,Android平台除了提供有硬件编解码组件支持,还内置了一些软件编解码组件,为了统一管理所有(软/硬)编解码组件,Android在OMX Core之上又抽象了一…...

Ubuntu下halcon软件的下载安装
由于工作需求,点云配准需要使用halcon进行实现,并且将该功能放入QT界面中 1.下载halcon 进入halcon官网进行下载 官网链接:https://www.mvtec.com/products/halcon/ 注意:要注册登陆之后才能进行下载 接着点击Downloads->H…...

『ZJUBCA Collaboration』WTF Academy 赞助支持
非常荣幸宣布,浙江大学区块链协会收到WTF Academy的赞助与支持,未来将共同开展更多深度合作。 WTF Academy是开发者的Web3开源大学,旨在通过开源教育让100,000名开发者进入到Web3。截止目前,WTF开源教程在GitHub收获超15,000 ⭐&a…...

Python开源工具库使用之运动姿势追踪库mediapipe
文章目录 前言一、姿势估计1.1 姿态关键点1.2 旧版 solution API1.3 新版 solution API1.4 俯卧撑计数 二、手部追踪2.1 手部姿态2.2 API 使用2.3 识别手势含义 参考 前言 Mediapipe 是谷歌出品的一种开源框架,旨在为开发者提供一种简单而强大的工具,用…...

【Android Studio】开启真机调试
1 打开手机的开发者模式 各种款式的手机进入开发者模式的情况不同,但大致是在 【关于手机】中多次点击系统版本即可进入。这里以小米8为例,记录下流程。 1.1 进入手机开发者模式 【设置】->【我的设备】->【全部参数】->【MIUI版本】连续点击3…...

CMakeLists.txt语法规则:部分常用命令说明四
一. 简介 前面几篇文章学习了CMakeLists.txt语法中前面几篇文章学习了CMakeLists.txt语法中部分常用命令。文章如下: CMakeLists.txt语法规则:部分常用命令说明一-CSDN博客 CMakeLists.txt语法规则:部分常用命令说明二-CSDN博客 CMakeLi…...
学习前端第三十二天(Rest 参数与 Spread 语法,变量作用域,闭包)
一、Rest 参数与 Spread 语法 1.rest参数 ...变量名:收集剩余的参数并存进指定数组中,需要放到最后; 2.arguments变量 // arguments,以参数在参数列表中的索引作为键,存储所有参数,以类数组对象的形式输出所有函数参数 // 箭头…...

mysql从入门到起飞+面试基础题
mysql基础 MySQL基础 企业面试题1 代码 select m.id,m.num from ( select t.id as id,count(1) num from ( select ra.requester_id as id from RequestAccepted raunion all select ra.accepter_id as id from RequestAccepted ra ) t group by t.id ) m group by id ord…...

设计模式:命令模式
文章目录 一、什么是命令模式二、命令模式结构三、命令模式实现步骤四、命令模式应用场景 一、什么是命令模式 它允许将请求封装为对象,一个请求对应于一个命令,将发出命令的责任和执行命令的责任分割开。每一个命令都是一个操作:请求的一方…...
setinterval和settimeout区别在于
setinterval和settimeout区别在于 执行次数和执行频率 setInterval和setTimeout的主要区别在于执行次数和执行频率。以下是详细介绍:12 setTimeout是一次性的定时器,它在设定的延迟时间之后执行一次函数,然后停止。setInterval是重复性的定…...
shell_结束进程脚本
结束进程的shell脚本如下: #!/bin/bash# kill all process ps aux|grep "local" | grep -v grep | awk {print $2} | while read line; do kill -9 $line; done 解析: ps aux 命令常用于查看当前系统中运行的进程,以及它们所占用…...

GDPU unity游戏开发 碰撞器与触发器
砰砰叫,谁动了她的奶酪让你的小鹿乱撞了。基于此,亦即碰撞与触发的过程。 碰撞器与触发器的区别 通俗点讲,碰撞器检测碰撞,触发器检测触发,讲了跟没讲似的。碰撞器是用来检测碰撞事件的,在unity中ÿ…...

IP地址定位技术在网络安全中的作用
在当今数字化时代,网络安全已经成为企业、政府和个人面临的重要挑战之一。随着互联网的普及和网络攻击的增加,保护个人隐私和防止网络犯罪变得尤为重要。在这一背景下,IP地址定位技术作为网络安全的重要组成部分之一,发挥着关键作…...

R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包
创建于:2024.5.4 R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包 文章目录 1. 查看经安装的包2. 查看已经加载的包3. 查看特定包是否已经安装4. 安装包…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...