AI个人学习
和实操指南
讯飞绘镜

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型

综合介绍

Qwen2.5-Omni 是阿里巴巴云 Qwen 团队开发的一款开源多模态 AI 模型。它能处理文本、图像、音频和视频等多种输入,并实时生成文本或自然语音响应。这款模型于 2025 年 3 月 26 日发布,代码和模型文件托管在 GitHub 上,免费供所有人下载使用。它采用 Thinker-Talker 架构和 TMRoPE 技术,确保多模态数据的高效处理。Qwen2.5-Omni 在语音识别、图像理解和视频分析等任务中表现优异,适用于智能助手、多媒体处理等场景。

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型-1


 

功能列表

  • 支持多模态输入:能同时处理文本、图像、音频和视频。
  • 实时流式响应:输入后立即生成文本或语音反馈。
  • 自然语音合成:生成清晰自然的语音,支持多种音色。
  • 图像和视频理解:识别图像内容或分析视频片段。
  • 端到端指令跟随:直接根据语音或文本指令完成任务。
  • 开源免费:提供完整代码和模型,支持用户自定义。

 

我们对 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:多模态输入和实时语音交互的端测模型-1

 

使用帮助

Qwen2.5-Omni 的使用需要一定技术基础。以下是详细的安装和操作指南,帮助用户快速上手。

安装流程

  1. 准备环境
    • 确保安装 Python 3.10 或更高版本。
    • 需要 Git 来下载代码。
    • 推荐使用 Linux 系统,非 Linux 系统可能需要额外配置。
  2. 下载代码
    • 在终端输入命令克隆 GitHub 仓库:
      git clone https://github.com/QwenLM/Qwen2.5-Omni.git
      
    • 进入项目目录:
      cd Qwen2.5-Omni
      
  3. 安装依赖
    • 因为代码尚未完全合并到 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
        
  4. 下载模型
  5. 验证安装
    • 运行以下命令检查环境:
      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)
      
  • 结果:生成指定音色的语音文件。

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")
      
  • 结果:生成速度更快,显存占用更低。

注意事项

  • 硬件要求:推荐使用 GPU,至少 16GB 显存。
  • 网络需求:下载模型和依赖时需稳定网络。
  • 调试支持:如遇问题,可参考 GitHub 的 README.md 或社区讨论。

 

应用场景

  1. 实时语音助手
    用户通过语音提问,模型实时生成语音回答,适合客服或个人助理。
  2. 视频内容分析
    输入视频,模型提取关键信息,帮助用户整理素材或生成报告。
  3. 教育支持
    学生上传课程音频或视频,模型解答问题或提取重点,提升学习效率。

 

QA

  1. 支持哪些语言?
    主要支持中文和英文,语音合成提供 Chelsie、Ethan 等多种音色。
  2. 需要多少存储空间?
    Qwen2.5-Omni-7B 模型约 14GB,建议预留 20GB 以上。
  3. 可以商用吗?
    可以,基于 Apache 2.0 许可,免费商用需遵守条款。
未经允许不得转载:首席AI分享圈 » Qwen2.5-Omni:多模态输入和实时语音交互的端测模型
zh_CN简体中文