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. 安装包…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
