综合介绍
Qwen2.5-Omni 是阿里巴巴云 Qwen 团队开发的一款开源多模态 AI 模型。它能处理文本、图像、音频和视频等多种输入,并实时生成文本或自然语音响应。这款模型于 2025 年 3 月 26 日发布,代码和模型文件托管在 GitHub 上,免费供所有人下载使用。它采用 Thinker-Talker 架构和 TMRoPE 技术,确保多模态数据的高效处理。Qwen2.5-Omni 在语音识别、图像理解和视频分析等任务中表现优异,适用于智能助手、多媒体处理等场景。
功能列表
- 支持多模态输入:能同时处理文本、图像、音频和视频。
- 实时流式响应:输入后立即生成文本或语音反馈。
- 自然语音合成:生成清晰自然的语音,支持多种音色。
- 图像和视频理解:识别图像内容或分析视频片段。
- 端到端指令跟随:直接根据语音或文本指令完成任务。
- 开源免费:提供完整代码和模型,支持用户自定义。
我们对 Qwen2.5-Omni 进行了全面评估。结果显示,它在所有模态上的表现都很强,与同等规模的单一模态模型以及闭源模型(如 Qwen2.5-VL-7B、Qwen2-Audio 和 Gemini-1.5-Pro)相比具有优势。在需要整合多种模态的任务中,例如 OmniBench,Qwen2.5-Omni 达到了最先进的性能。此外,在单一模态任务中,它在语音识别(Common Voice)、翻译(CoVoST2)、音频理解(MMAU)、图像推理(MMMU、MMStar)、视频理解(MVBench)和语音生成(Seed-tts-eval 和主观自然度)等领域表现出色。
使用帮助
Qwen2.5-Omni 的使用需要一定技术基础。以下是详细的安装和操作指南,帮助用户快速上手。
安装流程
- 准备环境
- 确保安装 Python 3.10 或更高版本。
- 需要 Git 来下载代码。
- 推荐使用 Linux 系统,非 Linux 系统可能需要额外配置。
- 下载代码
- 在终端输入命令克隆 GitHub 仓库:
git clone https://github.com/QwenLM/Qwen2.5-Omni.git
- 进入项目目录:
cd Qwen2.5-Omni
- 在终端输入命令克隆 GitHub 仓库:
- 安装依赖
- 因为代码尚未完全合并到 Hugging Face 主分支,需安装特定版本的 Transformers:
pip uninstall transformers pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356 pip install accelerate
- 安装多模态处理工具:
pip install qwen-omni-utils[decord]
- 注意:需预装
ffmpeg
,Linux 用户可运行sudo apt install ffmpeg
。 - 非 Linux 用户若无法安装
decord
,可改为:pip install qwen-omni-utils
- 注意:需预装
- 因为代码尚未完全合并到 Hugging Face 主分支,需安装特定版本的 Transformers:
- 下载模型
- 从 Hugging Face 下载 Qwen2.5-Omni-7B 模型(https://huggingface.co/Qwen/Qwen2.5-Omni-7B),保存到本地。
- 验证安装
- 运行以下命令检查环境:
python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
- 运行以下命令检查环境:
功能操作流程
1. 处理文本输入
- 操作步骤:
- 加载模型和处理器:
from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto") processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")
- 输入文本并生成响应:
text = "今天天气怎么样?" inputs = processor(text=text, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- 加载模型和处理器:
- 结果:返回文本回答,如“今天天气晴朗,温度适宜。”
2. 处理图像输入
- 操作步骤:
- 准备图片文件(如
image.jpg
)。 - 修改脚本加入图像:
images = ["image.jpg"] text = "图片里有什么?" inputs = processor(text=text, images=images, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- 准备图片文件(如
- 结果:描述图片内容,如“图片里有一只狗在草地上跑。”
3. 处理音频输入
- 操作步骤:
- 准备音频文件(如
audio.wav
)。 - 修改脚本加入音频:
audios = ["audio.wav"] text = "音频里说了什么?" inputs = processor(text=text, audios=audios, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- 准备音频文件(如
- 结果:转录音频内容,如“音频里说‘明天有雨’。”
4. 处理视频输入
- 操作步骤:
- 准备视频文件(如
video.mp4
)。 - 修改脚本加入视频:
videos = ["video.mp4"] text = "视频里发生了什么?" inputs = processor(text=text, videos=videos, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- 准备视频文件(如
- 结果:描述视频内容,如“视频里有人在画画。”
5. 生成语音输出
- 操作步骤:
- 设置系统提示并启用语音:
conversation = [ {"role": "system", "content": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}, {"role": "user", "content": "请用语音回答:今天天气如何?"} ] text = processor.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True) inputs = processor(text=text, return_tensors="pt") text_ids, audio = model.generate(**inputs, use_audio_in_video=True) import soundfile as sf sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
- 设置系统提示并启用语音:
- 结果:生成
output.wav
文件,内容为语音回答。
6. 调整语音音色
- 操作步骤:
- 在生成时指定音色(如 Chelsie 或 Ethan):
text_ids, audio = model.generate(**inputs, spk="Ethan") sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
- 在生成时指定音色(如 Chelsie 或 Ethan):
- 结果:生成指定音色的语音文件。
7. 使用 FlashAttention-2 加速
- 操作步骤:
- 安装 FlashAttention-2:
pip install -U flash-attn --no-build-isolation
- 加载模型时启用:
model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
- 安装 FlashAttention-2:
- 结果:生成速度更快,显存占用更低。
注意事项
- 硬件要求:推荐使用 GPU,至少 16GB 显存。
- 网络需求:下载模型和依赖时需稳定网络。
- 调试支持:如遇问题,可参考 GitHub 的
README.md
或社区讨论。
应用场景
- 实时语音助手
用户通过语音提问,模型实时生成语音回答,适合客服或个人助理。 - 视频内容分析
输入视频,模型提取关键信息,帮助用户整理素材或生成报告。 - 教育支持
学生上传课程音频或视频,模型解答问题或提取重点,提升学习效率。
QA
- 支持哪些语言?
主要支持中文和英文,语音合成提供 Chelsie、Ethan 等多种音色。 - 需要多少存储空间?
Qwen2.5-Omni-7B 模型约 14GB,建议预留 20GB 以上。 - 可以商用吗?
可以,基于 Apache 2.0 许可,免费商用需遵守条款。