Qwen3-Omni
Qwen3-Omni 是阿里云通义团队推出的原生端到端全模态大语言模型。它能够像人类一样同时“看”图、“听”音、“读”文并理解视频内容,更能实时生成自然的语音回复,实现真正的多感官交互。
这款模型主要解决了传统 AI 在处理多种媒体形式时需要拼接不同模块、导致响应延迟高且交互不自然的问题。通过原生支持文本、图像、音频和视频的统一处理,Qwen3-Omni 不仅能精准理解复杂的跨模态信息,还能以流式方式输出文字和拟人化语音,大幅提升了人机对话的流畅度与真实感。
它非常适合开发者构建智能客服、虚拟助手或多媒体分析应用,也适合研究人员探索多模态融合的前沿技术。同时,其便捷的在线演示和本地部署方案,让普通用户也能轻松体验与 AI“面对面”交谈的未来感。
技术亮点方面,Qwen3-Omni 采用了创新的端到端架构,通过早期文本优先预训练与混合多模态训练策略,在保持强大图文理解能力的同时,实现了业界领先的音视频处理性能。这种设计不仅简化了系统复杂度,更确保了在多语言环境下的高效运行,是目前多模态人工智能领域的重要突破。
使用场景
一位跨国教育科技公司的产品经理正在开发一款面向全球用户的"AI 视频伴读助手”,旨在帮助学生通过观看教学视频实时获得多语言讲解和互动答疑。
没有 Qwen3-Omni 时
- 流程割裂严重:需要分别调用独立的语音识别(ASR)、图像分析、大语言模型和语音合成(TTS)接口,数据在不同服务间反复转换,延迟高达数秒。
- 上下文丢失:由于各模态模型独立工作,系统难以理解视频中“画面变化”与“老师语调起伏”之间的关联,导致回答生硬且缺乏情感。
- 开发维护成本高:团队需同时维护四套不同厂商的 API 对接代码,一旦某环节服务波动,整个伴读体验就会崩溃。
- 多语言支持受限:为小语种学生提供实时语音反馈时,需额外接入翻译引擎,进一步增加了响应延迟和出错概率。
使用 Qwen3-Omni 后
- 端到端实时交互:Qwen3-Omni 原生支持音视频流输入与语音流输出,直接将视频画面和老师声音转化为自然的实时语音讲解,延迟降低至毫秒级。
- 深度模态融合:凭借原生全模态架构,Qwen3-Omni 能精准捕捉“老师指着图表提高音量”这一复合信号,生成富有情感且逻辑连贯的解说。
- 架构极简高效:只需部署一个模型即可替代原有四个组件,大幅简化了技术栈,系统稳定性显著提升。
- 原生多语言能力:Qwen3-Omni 内置强大的多语言理解与生成能力,可直接用学生的母语进行流畅的语音互动,无需中间翻译环节。
Qwen3-Omni 通过原生端到端的全模态处理能力,将复杂的视频互动场景从“拼凑式串联”升级为“直觉式响应”,真正实现了像真人助教一样的实时伴读体验。
运行环境要求
- 未说明
未说明(模型支持实时流式响应及多模态处理,通常建议高性能 NVIDIA GPU,具体显存需求取决于模型参数量,文中提及有 30B 参数版本)
未说明

快速开始
Qwen3-Omni
💜 Qwen Chat   |   🤗 Hugging Face   |   🤖 ModelScope   |   📑 Blog   |   📚 Cookbooks   |   📑 Paper  
🖥️ Hugging Face Demo   |    🖥️ ModelScope Demo   |   💬 WeChat (微信)   |   🫨 Discord   |   📑 API
我们发布了Qwen3-Omni,这是一系列原生端到端的多语言全模态基础模型。它能够处理文本、图像、音频和视频等多种输入,并以文本和自然语音的形式提供实时流式响应。点击下方视频了解更多详情 😃
新闻
- 2025年9月26日:⭐️⭐️⭐️ Qwen3-Omni荣登Hugging Face Trending榜单第一名!
- 2025年9月22日:🎉🎉🎉 我们已发布Qwen3-Omni。更多详情请查看我们的博客!
目录
概述
简介
Qwen3-Omni是原生端到端的多语言全模态基础模型。它可以处理文本、图像、音频和视频,并以文本和自然语音的形式提供实时流式响应。我们引入了多项架构升级,以提升性能和效率。其主要特点如下:
跨模态的最先进水平:早期的文本优先预训练和混合多模态训练提供了原生的多模态支持。在取得强大的音频及音视频效果的同时,单模态的文本和图像性能并未退化。在36项音视频基准测试中,有22项达到SOTA水平;在开源领域则有32项达到SOTA水平;ASR、音频理解以及语音对话的表现可与Gemini 2.5 Pro相媲美。
多语言支持:支持119种文本语言、19种语音输入语言和10种语音输出语言。
- 语音输入:英语、汉语、韩语、日语、德语、俄语、意大利语、法语、西班牙语、葡萄牙语、马来语、荷兰语、印尼语、土耳其语、越南语、粤语、阿拉伯语、乌尔都语。
- 语音输出:英语、汉语、法语、德语、俄语、意大利语、西班牙语、葡萄牙语、日语、韩语。
创新架构:基于MoE的Thinker–Talker设计,结合AuT预训练以获得强大的通用表征;同时采用多代码本设计,将延迟降至最低。
实时音视频交互:低延迟流式传输,具备自然的轮流发言机制,并能即时生成文本或语音回应。
灵活可控:通过系统提示词自定义行为,实现精细化控制和便捷适配。
详尽的音频字幕生成器:Qwen3-Omni-30B-A3B-Captioner现已开源——这是一款通用、高度细致且幻觉率极低的音频字幕生成模型,填补了开源社区中的一个重要空白。
模型架构
使用场景手册
Qwen3-Omni支持广泛的多模态应用场景,涵盖涉及音频、图像、视频以及视听模态的各种领域任务。以下是一些展示Qwen3-Omni使用场景的手册,其中包含了我们实际的执行记录。您可以先按照快速入门指南下载模型并安装必要的推理环境依赖,然后在本地运行和实验——尝试修改提示词或切换模型类型,尽情探索Qwen3-Omni的强大能力吧!
| 类别 | 笔记本 | 描述 | 打开 |
|---|---|---|---|
| 音频 | 语音识别 | 语音识别,支持多语言和长音频。 | |
| 语音翻译 | 语音到文本/语音到语音的翻译。 | ||
| 音乐分析 | 对任何音乐进行详细分析与鉴赏,包括风格、流派、节奏等。 | ||
| 声音分析 | 对各种音效及音频信号的描述与分析。 | ||
| 音频字幕 | 音频字幕生成,对任意音频输入进行详细描述。 | ||
| 混合音频分析 | 对混合音频内容的分析,例如语音、音乐和环境声音。 | ||
| 视觉 | OCR | 复杂图像的OCR识别。 | |
| 目标定位 | 目标检测与定位。 | ||
| 图像问答 | 回答关于任意图像的任意问题。 | ||
| 图像数学 | 解决图像中的复杂数学问题,突出“思考”模型的能力。 | ||
| 视频描述 | 对视频内容的详细描述。 | ||
| 视频导航 | 从第一人称运动视频中生成导航指令。 | ||
| 视频场景转换 | 分析视频中的场景转换。 | ||
| 视听 | 视听问答 | 在视听场景中回答任意问题,展示模型对音频与视频之间时序对齐建模的能力。 | |
| 视听交互 | 使用视听输入与模型进行交互式沟通,包括通过音频指定任务。 | ||
| 视听对话 | 使用视听输入与模型进行对话式交互,展示其在日常聊天和助理类行为方面的能力。 | ||
| 智能体 | 音频函数调用 | 利用音频输入执行函数调用,实现类似智能体的行为。 | |
| 下游任务微调 | Omni Captioner | 介绍并演示Qwen3-Omni-30B-A3B-Captioner模型,该模型是在Qwen3-Omni-30B-A3B-Instruct基础上进行下游微调的版本,展示了Qwen3-Omni基础模型的强大泛化能力。 |
快速入门
在这里,我们提供了几种快速上手 Qwen3-Omni 的方法。如果您希望获得完整的 Qwen3-Omni 使用体验,可以使用 Hugging Face Transformers。然而,由于 Qwen3-Omni 采用了 MoE 架构,在 MoE 模型上使用 Hugging Face Transformers 进行推理时速度可能会非常慢。对于大规模调用或低延迟需求,我们强烈建议使用 vLLM 或通过 DashScope API 进行推理。此外,我们也强烈推荐使用我们提供的 Docker 镜像,其中包含了适用于 Hugging Face Transformers 和 vLLM 的完整运行环境。另外,我们的 cookbooks 提供了一些用例,展示了 Qwen3-Omni 的强大能力。欢迎进一步了解!
模型说明与下载
以下是所有 Qwen3-Omni 模型的说明,请根据您的需求选择并下载合适的模型。
| 模型名称 | 说明 |
|---|---|
| Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-30B-A3B 的 Instruct 模型,同时包含 thinker 和 talker 组件,支持音频、视频和文本输入,输出为音频和文本。更多信息请参阅 Qwen3-Omni 技术报告。 |
| Qwen3-Omni-30B-A3B-Thinking | Qwen3-Omni-30B-A3B 的 Thinking 模型,仅包含 thinker 组件,具备链式思维推理能力,支持音频、视频和文本输入,输出为文本。更多信息请参阅 Qwen3-Omni 技术报告。 |
| Qwen3-Omni-30B-A3B-Captioner | 基于 Qwen3-Omni-30B-A3B-Instruct 微调得到的下游音频细粒度字幕生成模型,能够为任意音频输入生成详细且幻觉较低的字幕。该模型包含 thinker 组件,支持音频输入和文本输出。更多信息可参考该模型的 cookbook 或 Hugging Face Demo 以及 ModelScope Demo。 |
在使用 Hugging Face Transformers 或 vLLM 加载模型时,模型权重会根据模型名称自动下载。然而,如果您的运行环境不适合在执行过程中下载权重,您可以参考以下命令,将模型权重手动下载到本地目录:
# 通过 ModelScope 下载(推荐中国大陆用户使用)
pip install -U modelscope
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Instruct --local_dir ./Qwen3-Omni-30B-A3B-Instruct
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Thinking --local_dir ./Qwen3-Omni-30B-A3B-Thinking
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Captioner --local_dir ./Qwen3-Omni-30B-A3B-Captioner
# 通过 Hugging Face 下载
pip install -U "huggingface_hub[cli]"
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Instruct --local-dir ./Qwen3-Omni-30B-A3B-Instruct
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Thinking --local-dir ./Qwen3-Omni-30B-A3B-Thinking
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Captioner --local-dir ./Qwen3-Omni-30B-A3B-Captioner
Transformers 使用
安装
Qwen3-Omni 的 Hugging Face Transformers 代码已成功合并。我们强烈建议您 创建一个新的 Python 环境 或使用我们的 Docker,以避免环境运行时问题。
# 如果您已经安装了 transformers,请先卸载,或者创建一个新的 Python 环境
# pip uninstall transformers
pip install transformers==4.57.3
pip install accelerate
我们提供了一个工具包,可以帮助您更方便地处理各种类型的音频和视觉输入,提供类似 API 的使用体验。它支持 base64、URL 以及交错的音频、图像和视频输入。您可以通过以下命令安装,并确保系统已安装 ffmpeg:
pip install qwen-omni-utils -U
此外,我们建议在使用 Hugging Face Transformers 运行时启用 FlashAttention 2,以减少 GPU 内存占用。不过,如果您主要使用 vLLM 进行推理,则无需安装此库,因为 vLLM 默认已包含 FlashAttention 2。
pip install -U flash-attn --no-build-isolation
同时,您的硬件需要兼容 FlashAttention 2。更多相关信息请参阅 FlashAttention 仓库 的官方文档。FlashAttention 2 只能在模型以 torch.float16 或 torch.bfloat16 加载时使用。
代码示例
以下是一个代码示例,展示如何使用 transformers 和 qwen_omni_utils 来操作 Qwen3-Omni:
import soundfile as sf
from transformers import Qwen3OmniMoeForConditionalGeneration, Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Instruct"
# MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Thinking"
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
MODEL_PATH,
dtype="auto",
device_map="auto",
attn_implementation="flash_attention_2",
)
processor = Qwen3OmniMoeProcessor.from_pretrained(MODEL_PATH)
conversation = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"},
{"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"},
{"type": "text", "text": "你能看到和听到什么?用一句话简短回答。"}
],
},
]
# 设置是否在视频中使用音频
USE_AUDIO_IN_VIDEO = True
# 推理前的准备
text = processor.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
audios, images, videos = process_mm_info(conversation, use_audio_in_video=USE_AUDIO_IN_VIDEO)
inputs = processor(text=text,
audio=audios,
images=images,
videos=videos,
return_tensors="pt",
padding=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO)
inputs = inputs.to(model.device).to(model.dtype)
# 推理:生成输出文本和音频
text_ids, audio = model.generate(**inputs,
speaker="Ethan",
thinker_return_dict_in_generate=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO)
text = processor.batch_decode(text_ids.sequences[:, inputs["input_ids"].shape[1] :],
skip_special_tokens=True,
clean_up_tokenization_spaces=False)
print(text)
if audio is not None:
sf.write(
"output.wav",
audio.reshape(-1).detach().cpu().numpy(),
samplerate=24000,
)
以下是一些更高级的使用示例。您可以展开下面的部分以了解更多信息。
批量推理
当设置 return_audio=False 时,该模型可以将由文本、图像、音频和视频等多种类型样本混合组成的输入进行批量处理。以下是一个示例。
from transformers import Qwen3OmniMoeForConditionalGeneration, Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Instruct"
# MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Thinking"
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
MODEL_PATH,
dtype="auto",
device_map="auto",
attn_implementation="flash_attention_2",
)
model.disable_talker()
processor = Qwen3OmniMoeProcessor.from_pretrained(MODEL_PATH)
# 仅包含图像的对话
conversation1 = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"},
{"type": "text", "text": "你在这个图片中看到了什么?用一句话回答。"},
]
}
]
# 仅包含音频的对话
conversation2 = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"},
{"type": "text", "text": "你在这个音频中听到了什么?"},
]
}
]
# 仅包含纯文本和系统提示的对话
conversation3 = [
{
"role": "system",
"content": [
{"type": "text", "text": "你是通义千问-全能模型。"}
],
},
{
"role": "user",
"content": "你是谁?"
}
]
# 包含多种媒体的对话
conversation4 = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"},
{"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"},
{"type": "text", "text": "你能看到什么,又能听到什么?用一句话回答。"}
],
}
]
# 将消息组合起来以便批量处理
conversations = [conversation1, conversation2, conversation3, conversation4]
# 设置是否在视频中使用音频
USE_AUDIO_IN_VIDEO = True
# 准备批量推理
text = processor.apply_chat_template(conversations, add_generation_prompt=True, tokenize=False)
audios, images, videos = process_mm_info(conversations, use_audio_in_video=USE_AUDIO_IN_VIDEO)
inputs = processor(text=text,
audio=audios,
images=images,
videos=videos,
return_tensors="pt",
padding=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO)
inputs = inputs.to(model.device).to(model.dtype)
# 批量推理不支持返回音频
text_ids, audio = model.generate(**inputs,
return_audio=False,
thinker_return_dict_in_generate=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO)
text = processor.batch_decode(text_ids.sequences[:, inputs["input_ids"].shape[1] :],
skip_special_tokens=True,
clean_up_tokenization_spaces=False)
print(text)
是否使用音频输出
该模型同时支持文本和音频输出。如果用户不需要音频输出,可以在初始化模型后调用 model.disable_talker()。这样可以节省大约 10GB 的显存,但此时 generate 函数的 return_audio 参数将只能设置为 False。
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
dtype="auto",
device_map="auto",
attn_implementation="flash_attention_2",
)
model.disable_talker()
为了获得更灵活的体验,我们建议用户在调用 generate 函数时决定是否返回音频。如果将 return_audio 设置为 False,模型将只返回文本输出,从而加快文本响应速度。
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
dtype="auto",
device_map="auto",
attn_implementation="flash_attention_2",
)
...
text_ids, _ = model.generate(..., return_audio=False)```
</details>
<details>
<summary>更改输出音频的语音类型</summary>
Qwen3-Omni 支持更改输出音频的语音类型。检查点 `"Qwen/Qwen3-Omni-30B-A3B-Instruct"` 支持三种语音类型,具体如下:
| 语音类型 | 性别 | 描述 |
|------------|--------|-------------|
| Ethan | 男性 | 一种明亮、积极向上且充满感染力的嗓音,给人温暖亲切的感觉。 |
| Chelsie | 女性 | 一种如蜜糖般柔滑、带有温柔温暖与清澈明亮特质的嗓音。 |
| Aiden | 男性 | 一种温暖、随和的美式男声,兼具温和与少年般的魅力。 |
用户可以通过 `generate` 函数的 `speaker` 参数来指定语音类型。默认情况下,如果未指定 `speaker`,则使用 `Ethan` 语音。
```python
text_ids, audio = model.generate(..., speaker="Ethan")
text_ids, audio = model.generate(..., speaker="Chelsie")
text_ids, audio = model.generate(..., speaker="Aiden")
此外,有关提示词设置、特定任务的使用方法以及资源需求等更多详细信息,请参阅 使用技巧 和 使用案例手册。
vLLM 使用
安装
我们强烈建议使用最新的 vLLM-Omni 来体验 Qwen3-Omni 系列模型。更多详情,请参阅 vLLM-Omni 官方的 离线推理文档 和 在线推理文档。
我们也推荐使用 vLLM 对 Qwen3-Omni 系列模型进行推理和部署。请注意,我们建议您 创建一个新的 Python 环境,或使用我们提供的 Docker,以避免运行时环境冲突和不兼容问题。
pip install vllm==0.13.0
# 如果在使用 VLLM_USE_PRECOMPILED=1 时遇到“未定义符号”错误,请使用 “pip install -e . -v” 从源码构建。
# 安装 Transformers 库
pip install transformers==4.57.3
pip install accelerate
pip install qwen-omni-utils -U
pip install -U flash-attn --no-build-isolation
推理
你可以使用以下代码进行 vLLM 推理。limit_mm_per_prompt 参数用于指定每条消息中每种模态数据的最大数量。由于 vLLM 需要预先分配 GPU 内存,较大的值会占用更多 GPU 内存;如果出现 OOM 问题,可以尝试减小该值。将 tensor_parallel_size 设置为大于 1 可以启用多 GPU 并行推理,从而提高并发性和吞吐量。此外,max_num_seqs 表示 vLLM 在每次推理步骤中并行处理的序列数量。该值越大,所需的 GPU 内存越多,但也能提升批量推理的速度。更多详细信息请参阅 vLLM 官方文档。以下是使用 vLLM 运行 Qwen3-Omni 的一个简单示例:
import os
import torch
from vllm import LLM, SamplingParams
from transformers import Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
if __name__ == '__main__':
MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Instruct"
# MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Thinking"
llm = LLM(
model=MODEL_PATH, trust_remote_code=True, gpu_memory_utilization=0.95,
tensor_parallel_size=torch.cuda.device_count(),
limit_mm_per_prompt={'image': 3, 'video': 3, 'audio': 3},
max_num_seqs=8,
max_model_len=32768,
seed=1234,
)
sampling_params = SamplingParams(
temperature=0.6,
top_p=0.95,
top_k=20,
max_tokens=16384,
)
processor = Qwen3OmniMoeProcessor.from_pretrained(MODEL_PATH)
messages = [
{
"role": "user",
"content": [
{"type": "video", "video": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/draw.mp4"}
],
}
]
text = processor.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
audios, images, videos = process_mm_info(messages, use_audio_in_video=True)
inputs = {
'prompt': text,
'multi_modal_data': {},
"mm_processor_kwargs": {
"use_audio_in_video": True,
},
}
if images is not None:
inputs['multi_modal_data']['image'] = images
if videos is not None:
inputs['multi_modal_data']['video'] = videos
if audios is not None:
inputs['multi_modal_data']['audio'] = audios
outputs = llm.generate([inputs], sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
以下是一些更高级的使用示例。你可以展开下方的部分了解更多。
批量推理
使用 vLLM 可以实现快速的批量推理,这有助于高效处理大量数据或进行基准测试。参考以下代码示例:
import os
import torch
from vllm import LLM, SamplingParams
from transformers import Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
def build_input(processor, messages, use_audio_in_video):
text = processor.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
audios, images, videos = process_mm_info(messages, use_audio_in_video=use_audio_in_video)
inputs = {
'prompt': text,
'multi_modal_data': {},
"mm_processor_kwargs": {
"use_audio_in_video": use_audio_in_video,
},
}
if images is not None:
inputs['multi_modal_data']['image'] = images
if videos is not None:
inputs['multi_modal_data']['video'] = videos
if audios is not None:
inputs['multi_modal_data']['audio'] = audios
return inputs
if __name__ == '__main__':
MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Instruct"
# MODEL_PATH = "Qwen/Qwen3-Omni-30B-A3B-Thinking"
llm = LLM(
model=MODEL_PATH, trust_remote_code=True, gpu_memory_utilization=0.95,
tensor_parallel_size=torch.cuda.device_count(),
limit_mm_per_prompt={'image': 3, 'video': 3, 'audio': 3},
max_num_seqs=8,
max_model_len=32768,
seed=1234,
)
sampling_params = SamplingParams(
temperature=0.6,
top_p=0.95,
top_k=20,
max_tokens=16384,
)
processor = Qwen3OmniMoeProcessor.from_pretrained(MODEL_PATH)
# 仅包含图片的对话
conversation1 = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"},
{"type": "text", "text": "你在这张图片中看到了什么?用一句话回答。"},
]
}
]
# 仅包含音频的对话
conversation2 = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"},
{"type": "text", "text": "你在这段音频中听到了什么?"},
]
}
]
# 纯文本和系统提示的对话
conversation3 = [
{
"role": "system",
"content": [
{"type": "text", "text": "你是 Qwen-Omni。"}
],
},
{
"role": "user",
"content": "你是谁?用一句话回答。"
}
]
# 混合媒体的对话
conversation4 = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"},
{"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/cookbook/asr_fr.wav"},
{"type": "text", "text": "你看到了什么、听到了什么?用一句话回答。"}
],
}
]
USE_AUDIO_IN_VIDEO = True
# 将所有对话合并以便批量处理
conversations = [conversation1, conversation2, conversation3, conversation4]
inputs = [build_input(processor, messages, USE_AUDIO_IN_VIDEO) for messages in conversations]
outputs = llm.generate(inputs, sampling_params=sampling_params)
result = [outputs[i].outputs[0].text for i in range(len(outputs))]
print(result)
vLLM Serve 使用
目前,vLLM serve 对于 Qwen3-Omni 仅支持 thinker 模型。在 vLLM serve 中,use_audio_in_video 参数不可用;你可以通过分别传递视频和音频输入来处理这一问题。可以通过以下命令启动 vLLM serve:
# Qwen3-Omni-30B-A3B-Instruct 单卡部署
vllm serve Qwen/Qwen3-Omni-30B-A3B-Instruct --port 8901 --host 127.0.0.1 --dtype bfloat16 --max-model-len 32768 --allowed-local-media-path / -tp 1
# Qwen3-Omni-30B-A3B-Instruct 多卡部署(以4卡为例)
vllm serve Qwen/Qwen3-Omni-30B-A3B-Instruct --port 8901 --host 127.0.0.1 --dtype bfloat16 --max-model-len 65536 --allowed-local-media-path / -tp 4
# Qwen/Qwen3-Omni-30B-A3B-Thinking 单卡部署
vllm serve Qwen/Qwen3-Omni-30B-A3B-Thinking --port 8901 --host 127.0.0.1 --dtype bfloat16 --max-model-len 32768 --allowed-local-media-path / -tp 1
# Qwen/Qwen3-Omni-30B-A3B-Thinking 多卡部署(以4卡为例)
vllm serve Qwen/Qwen3-Omni-30B-A3B-Thinking --port 8901 --host 127.0.0.1 --dtype bfloat16 --max-model-len 65536 --allowed-local-media-path / -tp 4
随后,您可以通过以下方式使用聊天 API(例如通过 curl):
curl http://localhost:8901/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "system", "content": "你是一位 helpful assistant。"},
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"}},
{"type": "audio_url", "audio_url": {"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"}},
{"type": "text", "text": "你能看到和听到什么?请用一句话回答。"}
]}
]
}'
此外,有关提示词设置、特定任务的使用方法以及资源需求等更多详细信息,请参阅使用技巧和使用案例手册。
DashScope API 使用
为了更深入地探索 Qwen3-Omni,我们建议您尝试使用我们的 DashScope API,以获得更快、更高效的体验。有关详细的 API 信息和文档,请参阅下表:
| API 描述 | API 文档(中国大陆) | API 文档(国际) |
|---|---|---|
| Qwen3-Omni-Flash 离线 API,包括 Instruct 和 Thinking 模型 | https://help.aliyun.com/zh/model-studio/qwen-omni | https://www.alibabacloud.com/help/en/model-studio/qwen-omni |
| Qwen3-Omni-Flash 实时 API,支持端到端实时交互 | https://help.aliyun.com/zh/model-studio/realtime | https://www.alibabacloud.com/help/en/model-studio/realtime |
| Qwen3-Omni-30B-A3B-Captioner 模型 API | https://help.aliyun.com/zh/model-studio/qwen3-omni-captioner | https://www.alibabacloud.com/help/zh/model-studio/qwen3-omni-captioner |
使用提示(建议阅读)
最低 GPU 显存要求
| 模型 | 精度 | 15秒视频 | 30秒视频 | 60秒视频 | 120秒视频 |
|---|---|---|---|---|---|
| Qwen3-Omni-30B-A3B-Instruct | BF16 | 78.85 GB | 88.52 GB | 107.74 GB | 144.81 GB |
| Qwen3-Omni-30B-A3B-Thinking | BF16 | 68.74 GB | 77.79 GB | 95.76 GB | 131.65 GB |
注:上表展示了使用 transformers 库和 BF16 精度进行推理时的理论最低显存需求,测试中采用了 attn_implementation="flash_attention_2"。Instruct 模型同时包含 thinker 和 talker 两个组件,而 Thinking 模型仅包含 thinker 部分。
音视频交互的提示词
在使用 Qwen3-Omni 进行音视频多模态交互时,输入为一段视频及其对应的音频(音频作为查询),我们建议采用 以下系统提示词。这种设置有助于模型保持较高的推理能力,同时更好地扮演智能助手等交互角色。此外,thinker 生成的文本将更具可读性,语气自然、对话感强,且避免了难以语音化的复杂格式,从而使 talker 的音频输出更加稳定流畅。您可以根据需要自定义系统提示词中的 user_system_prompt 字段,加入角色设定或其他特定于角色的描述。
user_system_prompt = "你是阿里巴巴通义千问打造的智能语音助手Qwen-Omni。"
message = {
"role": "system",
"content": [
{"type": "text", "text": f"{user_system_prompt} 你是一位没有性别和年龄的虚拟语音助手。\n你正在与用户交流。\n在用户的消息中,“我/我的”指代用户,“你/你的”指代助手;而在你的回复中,则应以“你/你的”称呼用户,以“我/我的”称呼自己;切勿照搬用户的代词,始终转换视角。仅在直接引用时保留原有人称代词;若出现指代不明的情况,请提出简短的澄清问题。\n与用户互动时,请使用简短(不超过50字)、简洁、直白的语言,保持自然的语气。\n切勿使用正式用语、机械化的表达、项目符号或过于结构化的语言。\n你的输出必须仅包含希望用户听到的口语内容。\n不得包含任何关于动作、情感、声音或语音变化的描述。\n禁止使用星号、方括号、圆括号等符号来标注语气或动作。\n你必须回答用户的音频或文本问题,不得直接描述视频内容。\n除非用户另有要求,否则请严格使用与用户相同的语言进行交流。\n当你感到不确定时(例如看不清/听不清、不理解,或用户只是发表评论而非提问),请通过适当的问题引导用户继续对话。\n回复应简洁、口语化,如同面对面交谈一般。"}
]
}
Thinking 模型的最佳实践
Qwen3-Omni-30B-A3B-Thinking 模型主要用于理解和交互多模态输入,包括文本、音频、图像和视频。为了获得最佳性能,我们建议用户在每轮对话中,除了多模态输入外,还应附上明确的文本指令或任务描述。这有助于清晰传达意图,并显著提升模型的推理能力。例如:
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "/path/to/audio.wav"},
{"type": "image", "image": "/path/to/image.png"},
{"type": "video", "video": "/path/to/video.mp4"},
{"type": "text", "text": "请综合分析这段音频、图片和视频。"},
],
}
]
视频中是否使用音频
在多模态交互中,用户提供的视频通常会伴随音频(如口头提问或视频中事件的声音)。这些信息有助于模型提供更好的交互体验。我们提供了以下选项,供用户决定是否使用视频中的音频。
# 数据预处理阶段
audios, images, videos = process_mm_info(messages, use_audio_in_video=True)
# 对于 Transformers
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = processor(text=text, audio=audios, images=images, videos=videos, return_tensors="pt",
padding=True, use_audio_in_video=True)
text_ids, audio = model.generate(..., use_audio_in_video=True)
# 对于 vLLM
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = {
'prompt': text,
'multi_modal_data': {},
"mm_processor_kwargs": {
"use_audio_in_video": True,
},
}
值得注意的是,在多轮对话过程中,use_audio_in_video 参数必须在上述步骤中保持一致;否则可能会导致意外结果。
与 Qwen3-Omni 的交互
在线演示
无需本地部署,您可以通过访问我们的 Hugging Face Spaces 和 ModelScope Studio 直接体验在线网页演示。其中包括 Qwen3-Omni-Realtime、Qwen3-Omni(Instruct 和 Thinking)以及 Qwen3-Omni-30B-A3B-Captioner 的快速实操体验。
实时交互
现在已支持与 Qwen3-Omni 的实时流式交互。请访问 Qwen Chat,并在聊天框中选择语音/视频通话选项即可体验。
启动本地 Web UI 演示
在这一部分,我们为用户提供构建基于 Web 的用户界面(UI)演示的说明。该 UI 演示允许用户通过 Web 浏览器与模型进行交互。请按照以下步骤开始 :)
安装
在开始之前,我们强烈建议您参考 vLLM 使用指南 中的 安装 部分来设置您的环境,这将使您能够无缝地使用 vLLM 和 Transformers 两种后端。然而,如果您仅打算使用 Transformers 后端(请注意,这会导致推理速度显著变慢),请遵循 Transformers 使用指南 中的安装说明。尽管如此,我们仍然强烈推荐使用我们的 Docker 镜像,以避免潜在的环境相关问题。此外,如果您是在本地运行,请确保您的系统已安装 ffmpeg,并安装以下依赖项:
pip install gradio==5.44.1 gradio_client==1.12.1 soundfile==0.13.1
运行演示
在安装完所需软件包后,您可以使用以下命令启动 Web 演示。这些命令将启动一个 Web 服务器,并为您提供一个链接,以便在浏览器中访问 UI。您可以通过运行 python web_demo.py --help 和 python web_demo_captioner.py --help 来了解更多的选项。
# 对于 Qwen3-Omni-30B-A3B-Instruct 模型,使用 vLLM 后端
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Instruct
# 对于 Qwen3-Omni-30B-A3B-Instruct 模型,使用 Transformers 后端
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Instruct --use-transformers --generate-audio
# 对于 Qwen3-Omni-30B-A3B-Instruct 模型,使用 Transformers 后端并支持 FlashAttention
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Instruct --use-transformers --generate-audio --flash-attn2
# 对于 Qwen3-Omni-30B-A3B-Thinking 模型,使用 vLLM 后端
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Thinking
# 对于 Qwen3-Omni-30B-A3B-Thinking 模型,使用 Transformers 后端
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Thinking --use-transformers
# 对于 Qwen3-Omni-30B-A3B-Thinking 模型,使用 Transformers 后端并支持 FlashAttention
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Thinking --use-transformers --flash-attn2
# 对于 Qwen3-Omni-30B-A3B-Captioner 模型,使用 vLLM 后端
python web_demo_captioner.py -c Qwen/Qwen3-Omni-30B-A3B-Captioner
# 对于 Qwen3-Omni-30B-A3B-Captioner 模型,使用 Transformers 后端
python web_demo_captioner.py -c Qwen/Qwen3-Omni-30B-A3B-Captioner --use-transformers
# 对于 Qwen3-Omni-30B-A3B-Captioner 模型,使用 Transformers 后端并支持 FlashAttention
python web_demo_captioner.py -c Qwen/Qwen3-Omni-30B-A3B-Captioner --use-transformers --flash-attn2
运行命令后,您将在终端中看到类似如下的链接:
正在本地运行:http://127.0.0.1:8901/
如果您是在本地运行,请复制此链接并粘贴到浏览器中以访问 Web UI。如果您是在服务器上或 Docker 容器中运行,请根据服务器的实际 IP 地址配置地址,或在必要时设置端口转发。有关如何从官方 Docker 容器将端口转发到宿主机的说明,请参阅 这里。
🐳 Docker
为了简化部署流程,我们提供了预装环境的 Docker 镜像:qwenllm/qwen3-omni。您只需安装驱动程序并下载模型文件即可启动演示。请参考 指南 安装 NVIDIA Container Toolkit,以确保您的 Docker 能够访问 GPU。对于在中国大陆可能难以访问 Docker Hub 的用户,可以使用镜像加速服务来拉取镜像。首先,运行以下命令来拉取并初始化容器:
LOCAL_WORKDIR=/path/to/your/workspace
HOST_PORT=8901
CONTAINER_PORT=80
docker run --gpus all --name qwen3-omni \
-v /var/run/docker.sock:/var/run/docker.sock -p $HOST_PORT:$CONTAINER_PORT \
--mount type=bind,source=$LOCAL_WORKDIR,target=/data/shared/Qwen3-Omni \
--shm-size=4gb \
-it qwenllm/qwen3-omni:3-cu124
执行该命令后,您将进入容器的 bash shell。您的本地模型和数据目录(请将 /path/to/your/workspace 替换为实际路径)会被挂载到容器内部的路径 /data/shared/Qwen3-Omni。宿主机的端口 8901 会映射到容器内的端口 80,这意味着您可以通过访问宿主机上的端口 8901 来访问容器内的服务。
请注意,容器内的服务必须使用 IP 0.0.0.0 启动,才能确保端口转发正常工作。例如:
# 在 Docker 容器内运行此命令
python web_demo.py -c Qwen/Qwen3-Omni-30B-A3B-Instruct --server-port 80 --server-name 0.0.0.0
有关更多启动 Web 演示的方式,请参阅 启动本地 Web UI 演示。如果您退出了容器,可以使用以下命令重新进入:
docker start qwen3-omni
docker exec -it qwen3-omni bash
或者,如果您想完全移除容器,请运行:
docker rm -f qwen3-omni
评估
Qwen3-Omni 的性能
Qwen3-Omni 在文本和视觉模态上保持了最先进的性能,且相对于同规模的单模态 Qwen 模型没有性能下降。在 36 个音频和视听基准测试中,它在 32 个任务上达到了开源领域的 SOTA,并在 22 个任务上刷新了 SOTA,表现优于 Gemini 2.5 Pro 和 GPT-4o 等强大的闭源系统。
文本 -> 文本
| GPT-4o-0327 | Qwen3-235B-A22B 非思维模式 |
Qwen3-30B-A3B-Instruct-2507 | Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-Flash-Instruct | ||
|---|---|---|---|---|---|---|
| 通用 任务 |
MMLU-Redux | 91.3 | 89.2 | 89.3 | 86.6 | 86.8 |
| GPQA | 66.9 | 62.9 | 70.4 | 69.6 | 69.7 | |
| 推理 | AIME25 | 26.7 | 24.7 | 61.3 | 65.0 | 65.9 |
| ZebraLogic | 52.6 | 37.7 | 90.0 | 76.0 | 76.1 | |
| 代码 | MultiPL-E | 82.7 | 79.3 | 83.8 | 81.4 | 81.5 |
| 对齐 任务 |
IFEval | 83.9 | 83.2 | 84.7 | 81.0 | 81.7 |
| 创意写作 v3 | 84.9 | 80.4 | 86.0 | 80.6 | 81.8 | |
| WritingBench | 75.5 | 77.0 | 85.5 | 82.6 | 83.0 | |
| 智能体 | BFCL-v3 | 66.5 | 68.0 | 65.1 | 64.4 | 65.0 |
| 多语言 任务 |
MultiIF | 70.4 | 70.2 | 67.9 | 64.0 | 64.7 |
| PolyMATH | 25.5 | 27.0 | 43.1 | 37.9 | 39.3 | |
| 双子座-2.5-闪电 思考 |
通义千问3-235B-A22B 思考 |
通义千问3-30B-A3B-思考-2507 | 通义千问3-全能-30B-A3B-思考 | 通义千问3-全能-闪电-思考 | ||
|---|---|---|---|---|---|---|
| 通用 任务 |
MMLU-Redux | 92.1 | 92.7 | 91.4 | 88.8 | 89.7 |
| GPQA | 82.8 | 71.1 | 73.4 | 73.1 | 73.1 | |
| 推理 | AIME25 | 72.0 | 81.5 | 85.0 | 73.7 | 74.0 |
| LiveBench 20241125 | 74.3 | 77.1 | 76.8 | 71.8 | 70.3 | |
| 代码 | MultiPL-E | 84.5 | 79.9 | 81.3 | 80.6 | 81.0 |
| 对齐 任务 |
IFEval | 89.8 | 83.4 | 88.9 | 85.1 | 85.2 |
| Arena-Hard v2 | 56.7 | 61.5 | 56.0 | 55.1 | 57.8 | |
| 创意写作 v3 | 85.0 | 84.6 | 84.4 | 82.5 | 83.6 | |
| WritingBench | 83.9 | 80.3 | 85.0 | 85.5 | 85.9 | |
| 智能体 | BFCL-v3 | 68.6 | 70.8 | 72.4 | 63.2 | 64.5 |
| 多语言 任务 |
MultiIF | 74.4 | 71.9 | 76.4 | 72.9 | 73.2 |
| PolyMATH | 49.8 | 54.7 | 52.6 | 47.1 | 48.7 |
音频 -> 文本
| Seed-ASR | Voxtral-Mini | Voxtral-Small | GPT-4o-Transcribe | Gemini-2.5-Pro | Qwen2.5-Omni | Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-Flash-Instruct | |
|---|---|---|---|---|---|---|---|---|
| 英、中语音识别(WER) | ||||||||
| Wenetspeech net | meeting |
4.66 | 5.69 | 24.30 | 31.53 | 20.33 | 26.08 | 15.30 | 32.27 | 14.43 | 13.47 | 5.91 | 7.65 | 4.69 | 5.89 | 4.62 | 5.75 |
| Librispeech clean | other |
1.58 | 2.84 | 1.88 | 4.12 | 1.56 | 3.30 | 1.39 | 3.75 | 2.89 | 3.56 | 1.74 | 3.45 | 1.22 | 2.48 | 1.27 | 2.44 |
| CV15-en | - | 9.47 | 7.79 | 10.01 | 9.89 | 7.61 | 6.05 | 5.94 |
| CV15-zh | - | 24.67 | 19.30 | 9.84 | 8.00 | 5.13 | 4.31 | 4.28 |
| Fleurs-en | 3.40 | 3.96 | 3.77 | 3.32 | 2.94 | 3.77 | 2.72 | 2.74 |
| Fleurs-zh | 2.69 | 12.22 | 7.98 | 2.44 | 2.71 | 2.54 | 2.20 | 2.19 |
| 多语言语音识别(WER) | ||||||||
| Fleurs-avg (19种语言) |
- | 15.67 | 8.09 | 4.48 | 5.55 | 14.04 | 5.33 | 5.31 |
| 歌词语音识别(WER) | ||||||||
| MIR-1K (仅人声) | 6.45 | 23.33 | 18.73 | 11.87 | 9.85 | 8.15 | 5.90 | 5.85 |
| Opencpop-test | 2.98 | 31.01 | 16.06 | 7.93 | 6.49 | 2.84 | 1.54 | 2.02 |
| S2TT(BLEU) | ||||||||
| Fleurs-en2xx | - | 30.35 | 37.85 | - | 39.25 | 29.22 | 37.50 | 36.22 |
| Fleurs-xx2en | - | 27.54 | 32.81 | - | 35.41 | 28.61 | 31.08 | 30.71 |
| Fleurs-zh2xx | - | 17.03 | 22.05 | - | 26.63 | 17.97 | 25.17 | 25.10 |
| Fleurs-xx2zh | - | 28.75 | 34.82 | - | 37.50 | 27.68 | 33.13 | 31.19 |
| GPT-4o-Audio | Gemini-2.5-Flash | Gemini-2.5-Pro | Qwen2.5-Omni | Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-30B-A3B-Thinking | Qwen3-Omni-Flash-Instruct | Qwen3-Omni-Flash-Thinking | |
|---|---|---|---|---|---|---|---|---|
| VoiceBench | ||||||||
| AlpacaEval | 95.6 | 96.1 | 94.3 | 89.9 | 94.8 | 96.4 | 95.4 | 96.8 |
| CommonEval | 89.8 | 88.3 | 88.4 | 76.7 | 90.8 | 90.5 | 91.0 | 90.9 |
| WildVoice | 91.6 | 92.1 | 93.4 | 77.7 | 91.6 | 90.5 | 92.3 | 90.9 |
| SD-QA | 75.5 | 84.5 | 90.1 | 56.4 | 76.9 | 78.1 | 76.8 | 78.5 |
| MMSU | 80.3 | 66.1 | 71.1 | 61.7 | 68.1 | 83.0 | 68.4 | 84.3 |
| OpenBookQA | 89.2 | 56.9 | 92.3 | 80.9 | 89.7 | 94.3 | 91.4 | 95.0 |
| BBH | 84.1 | 83.9 | 92.6 | 66.7 | 80.4 | 88.9 | 80.6 | 89.6 |
| IFEval | 76.0 | 83.8 | 85.7 | 53.5 | 77.8 | 80.6 | 75.2 | 80.8 |
| AdvBench | 98.7 | 98.9 | 98.1 | 99.2 | 99.3 | 97.2 | 99.4 | 98.9 |
| Overall | 86.8 | 83.4 | 89.6 | 73.6 | 85.5 | 88.8 | 85.6 | 89.5 |
| Audio Reasoning | ||||||||
| MMAU-v05.15.25 | 62.5 | 71.8 | 77.4 | 65.5 | 77.5 | 75.4 | 77.6 | 76.5 |
| MMSU | 56.4 | 70.2 | 77.7 | 62.6 | 69.0 | 70.2 | 69.1 | 71.3 |
| 最佳专业模型 | GPT-4o-Audio | Gemini-2.5-Pro | Qwen2.5-Omni | Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-Flash-Instruct | |
|---|---|---|---|---|---|---|
| RUL-MuchoMusic | 47.6 (Audio Flamingo 3) | 36.1 | 49.4 | 47.3 | 52.0 | 52.1 |
| GTZAN 准确率 |
87.9 (CLaMP 3) | 76.5 | 81.0 | 81.7 | 93.0 | 93.1 |
| MTG流派 微调F1分数 |
35.8 (MuQ-MuLan) | 25.3 | 32.6 | 32.5 | 39.0 | 39.5 |
| MTG情绪/主题 微调F1分数 |
10.9 (MuQ-MuLan) | 11.3 | 14.1 | 8.9 | 21.0 | 21.7 |
| MTG乐器 微调F1分数 |
39.8 (MuQ-MuLan) | 34.2 | 33.0 | 22.6 | 40.5 | 40.7 |
| MTG前50名 微调F1分数 |
33.2 (MuQ-MuLan) | 25.0 | 26.1 | 21.6 | 36.7 | 36.9 |
| MagnaTagATune 微调F1分数 |
41.6 (MuQ) | 29.2 | 28.1 | 30.1 | 44.3 | 46.8 |
视觉 -> 文本
| 数据集 | GPT4-o | Gemini-2.0-Flash | Qwen2.5-VL 72B |
Qwen3-Omni-30B-A3B -Instruct |
Qwen3-Omni-Flash -Instruct |
|---|---|---|---|---|---|
| 通用视觉问答 | |||||
| MMStar | 64.7 | 71.4 | 70.8 | 68.5 | 69.3 |
| HallusionBench | 55.0 | 56.3 | 55.2 | 59.7 | 58.5 |
| MM-MT-Bench | 7.7 | 6.7 | 7.6 | 7.4 | 7.6 |
| 数学与理工科 | |||||
| MMMU_val | 69.1 | 71.3 | 70.2 | 69.1 | 69.8 |
| MMMU_pro | 51.9 | 56.1 | 51.1 | 57.0 | 57.6 |
| MathVista_mini | 63.8 | 71.4 | 74.8 | 75.9 | 77.4 |
| MathVision_full | 30.4 | 48.6 | 38.1 | 56.3 | 58.3 |
| 文档理解 | |||||
| AI2D | 84.6 | 86.7 | 88.7 | 85.2 | 86.4 |
| ChartQA_test | 86.7 | 64.6 | 89.5 | 86.8 | 87.1 |
| 计数 | |||||
| CountBench | 87.9 | 91.2 | 93.6 | 90.0 | 90.0 |
| 视频理解 | |||||
| Video-MME | 71.9 | 72.4 | 73.3 | 70.5 | 71.4 |
| LVBench | 30.8 | 57.9 | 47.3 | 50.2 | 51.1 |
| MLVU | 64.6 | 71.0 | 74.6 | 75.2 | 75.5 |
| 数据集 | Gemini-2.5-flash-thinking | InternVL-3.5-241B-A28B | Qwen3-Omni-30B-A3B-Thinking | Qwen3-Omni-Flash-Thinking |
|---|---|---|---|---|
| 通用视觉问答 | ||||
| MMStar | 75.5 | 77.9 | 74.9 | 75.5 |
| HallusionBench | 61.1 | 57.3 | 62.8 | 63.4 |
| MM-MT-Bench | 7.8 | – | 8.0 | 8.0 |
| 数学与STEM | ||||
| MMMU_val | 76.9 | 77.7 | 75.6 | 75.0 |
| MMMU_pro | 65.8 | – | 60.5 | 60.8 |
| MathVista_mini | 77.6 | 82.7 | 80.0 | 81.2 |
| MathVision_full | 62.3 | 63.9 | 62.9 | 63.8 |
| 文档理解 | ||||
| AI2D_test | 88.6 | 87.3 | 86.1 | 86.8 |
| ChartQA_test | – | 88.0 | 89.5 | 89.3 |
| 计数 | ||||
| CountBench | 88.6 | – | 88.6 | 92.5 |
| 视频理解 | ||||
| Video-MME | 79.6 | 72.9 | 69.7 | 69.8 |
| LVBench | 64.5 | – | 49.0 | 49.5 |
| MLVU | 82.1 | 78.2 | 72.9 | 73.9 |
音频视觉 -> 文本
| 数据集 | 之前的开源最先进水平 | Gemini-2.5-Flash | Qwen2.5-Omni | Qwen3-Omni-30B-A3B-Instruct | Qwen3-Omni-Flash-Instruct |
|---|---|---|---|---|---|
| WorldSense | 47.1 | 50.9 | 45.4 | 54.0 | 54.1 |
| 数据集 | 之前的开源最先进水平 | Gemini-2.5-Flash-Thinking | Qwen3-Omni-30B-A3B-Thinking | Qwen3-Omni-Flash-Thinking |
|---|---|---|---|---|
| DailyOmni | 69.8 | 72.7 | 75.8 | 76.2 |
| VideoHolmes | 55.6 | 49.5 | 57.3 | 57.3 |
零样本语音生成
| 数据集 | 模型 | 性能 |
|---|---|---|
| 内容一致性 | ||
| SEED test-zh | test-en |
Seed-TTSICL | 1.11 | 2.24 |
| Seed-TTSRL | 1.00 | 1.94 | |
| MaskGCT | 2.27 | 2.62 | |
| E2 TTS | 1.97 | 2.19 | |
| F5-TTS | 1.56 | 1.83 | |
| Spark TTS | 1.20 | 1.98 | |
| CosyVoice 2 | 1.45 | 2.57 | |
| CosyVoice 3 | 0.71 | 1.45 | |
| Qwen2.5-Omni-7B | 1.42 | 2.33 | |
| Qwen3-Omni-30B-A3B | 1.07 | 1.39 | |
多语言语音生成
| 语言 | 内容一致性 | 说话人相似度 | ||||
|---|---|---|---|---|---|---|
| Qwen3-Omni-30B-A3B | MiniMax | ElevenLabs | Qwen3-Omni-30B-A3B | MiniMax | ElevenLabs | |
| 中文 | 0.716 | 2.252 | 16.026 | 0.772 | 0.780 | 0.677 |
| 英语 | 1.069 | 2.164 | 2.339 | 0.773 | 0.756 | 0.613 |
| 德语 | 0.777 | 1.906 | 0.572 | 0.738 | 0.733 | 0.614 |
| 意大利语 | 1.067 | 1.543 | 1.743 | 0.742 | 0.699 | 0.579 |
| 葡萄牙语 | 1.872 | 1.877 | 1.331 | 0.770 | 0.805 | 0.711 |
| 西班牙语 | 1.765 | 1.029 | 1.084 | 0.744 | 0.762 | 0.615 |
| 日语 | 3.631 | 3.519 | 10.646 | 0.763 | 0.776 | 0.738 |
| 韩语 | 1.670 | 1.747 | 1.865 | 0.778 | 0.776 | 0.700 |
| 法语 | 2.505 | 4.099 | 5.216 | 0.689 | 0.628 | 0.535 |
| 俄语 | 3.986 | 4.281 | 3.878 | 0.759 | 0.761 | 0.676 |
跨语言语音生成
| 语言 | Qwen3-Omni-30B-A3B | CosyVoice3 | CosyVoice2 |
|---|---|---|---|
| 英译中 | 5.37 | 5.09 | 13.5 |
| 日译中 | 3.32 | 3.05 | 48.1 |
| 韩译中 | 0.99 | 1.06 | 7.70 |
| 中译英 | 2.76 | 2.98 | 6.47 |
| 日译英 | 3.31 | 4.20 | 17.1 |
| 韩译英 | 3.34 | 4.19 | 11.2 |
| 中译日 | 8.29 | 7.08 | 13.1 |
| 英译日 | 7.53 | 6.80 | 14.9 |
| 韩译日 | 4.24 | 3.93 | 5.86 |
| 中译韩 | 5.13 | 14.4 | 24.8 |
| 英译韩 | 4.96 | 5.87 | 21.9 |
| 日译韩 | 6.23 | 7.92 | 21.5 |
评估设置
- 解码策略:对于Qwen3-Omni系列的所有评估基准,
Instruct模型在生成过程中采用贪婪解码,不进行采样。对于Thinking模型,则应从检查点中的generation_config.json文件中获取解码参数。 - 基准特定格式化:大多数评估基准都自带ChatML格式,用于嵌入问题或提示。需要注意的是,在评估过程中,所有视频数据的帧率均设置为
fps=2。 - 默认提示:对于某些基准中未包含提示的任务,我们使用以下提示设置:
| 任务类型 | 提示 |
|---|---|
| 中文自动语音识别(ASR) | 请将这段中文语音转换为纯文本。 |
| 其他语言自动语音识别(ASR) | 将 |
| 语音到文本翻译(S2TT) | 听取提供的 |
| 歌词识别 | 将歌词转录为无标点符号的文本,每行之间用换行符分隔,仅输出歌词,不添加任何额外说明。 |
- 系统提示:任何评估基准都不应设置
系统提示。 - 输入序列:问题或提示应作为用户文本输入。除非基准另有规定,否则文本应位于多模态数据之后。例如:
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "/path/to/audio.wav"},
{"type": "image", "image": "/path/to/image.png"},
{"type": "video", "video": "/path/to/video.mp4"},
{"type": "text", "text": "描述音频、图像和视频。"},
],
},
]
引用
如果您在研究中发现我们的论文和代码有用,请考虑给个赞 :star: 和引用 :pencil: :)
@article{Qwen3-Omni,
title={Qwen3-Omni技术报告},
author={Jin Xu和Zhifang Guo和Hangrui Hu和Yunfei Chu和Xiong Wang和Jinzheng He和Yuxuan Wang和Xian Shi和Ting He和Xinfa Zhu和Yuanjun Lv和Yongqi Wang和Dake Guo和He Wang和Linhan Ma和Pei Zhang和Xinyu Zhang和Hongkun Hao和Zishan Guo和Baosong Yang和Bin Zhang和Ziyang Ma和Xipin Wei和Shuai Bai和Keqin Chen和Xuejing Liu和Peng Wang和Mingkun Yang和Dayiheng Liu和Xingzhang Ren和Bo Zheng和Rui Men和Fan Zhou和Bowen Yu和Jianxin Yang和Le Yu和Jingren Zhou和Junyang Lin},
journal={arXiv预印本arXiv:2509.17765},
year={2025}
}
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。