Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

Qwen2.5-Omni: um modelo de medição final para entrada multimodal e interação de fala em tempo real

Introdução geral

O Qwen2.5-Omni é um modelo de IA multimodal de código aberto desenvolvido pela equipe do Alibaba Cloud Qwen. Ele pode processar várias entradas, como texto, imagens, áudio e vídeo, e gerar respostas em texto ou fala natural em tempo real. O modelo foi lançado em 26 de março de 2025, e o código e os arquivos do modelo estão hospedados no GitHub e podem ser baixados e usados gratuitamente por todos. Ele usa a arquitetura Thinker-Talker e a tecnologia TMRoPE para garantir o processamento eficiente de dados multimodais. O Qwen2.5-Omni tem bom desempenho em tarefas como reconhecimento de fala, compreensão de imagem e análise de vídeo, e é adequado para cenários como assistentes inteligentes e processamento de multimídia.

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


 

Lista de funções

  • Suporta entradas multimodais: pode processar texto, imagens, áudio e vídeo simultaneamente.
  • Resposta de streaming em tempo real: o feedback de texto ou voz é gerado imediatamente após a entrada.
  • Síntese de fala natural: gera uma fala clara e natural, com suporte a vários tons.
  • Compreensão de imagens e vídeos: identificar o conteúdo da imagem ou analisar clipes de vídeo.
  • Acompanhamento de comandos de ponta a ponta: conclua tarefas diretamente com base em comandos de voz ou texto.
  • Código aberto e gratuito: código completo e modelos são fornecidos para dar suporte à personalização do usuário.

 

Realizamos uma avaliação abrangente do Qwen2.5-Omni. Os resultados mostram que ele tem um desempenho excelente em todas as modalidades, o que lhe dá uma vantagem sobre modelos de modalidade única de tamanho igual, bem como sobre modelos de código fechado, como o Qwen2.5-VL-7B, o Qwen2-Audio e o Gemini-1.5-Pro. Em tarefas que exigem a integração de várias modalidades, como o OmniBench, o Qwen2.5-Omni atinge o desempenho mais avançado. Além disso, em tarefas de modalidade única, ele se destaca nas áreas de reconhecimento de fala (Common Voice), tradução (CoVoST2), compreensão de áudio (MMAU), raciocínio de imagem (MMMU, MMStar), compreensão de vídeo (MVBench) e geração de fala (Seed-tts-eval e Subjective Naturalness).

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

 

Usando a Ajuda

O uso do Qwen 2.5-Omni requer um certo nível de conhecimento técnico. Abaixo está um guia detalhado de instalação e operação para ajudar os usuários a começar rapidamente.

Processo de instalação

  1. Preparação do ambiente
    • Certifique-se de que o Python 3.10 ou posterior esteja instalado.
    • O Git é necessário para fazer o download do código.
    • Recomendado para sistemas Linux, sistemas não Linux podem exigir configuração adicional.
  2. Código de download
    • Clone seu repositório do GitHub digitando o comando no terminal:
      git clone https://github.com/QwenLM/Qwen2.5-Omni.git
      
    • Vá para o catálogo de projetos:
      cd Qwen2.5-Omni
      
  3. Instalação de dependências
    • Como o código não foi totalmente incorporado à ramificação principal do Hugging Face, é necessário instalar uma versão específica do Transformers:
      pip uninstall transformers
      pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356
      pip install accelerate
      
    • Instale a ferramenta de processamento multimodal:
      pip install qwen-omni-utils[decord]
      
      • Observação: É necessário fazer a pré-instalação ffmpegOs usuários do Linux podem executar sudo apt install ffmpeg.
      • Usuários que não são do Linux e não conseguem instalar decord, pode ser substituído por:
        pip install qwen-omni-utils
        
  4. Modelos para download
  5. Verificar a instalação
    • Execute o seguinte comando para verificar o ambiente:
      python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
      

Função Fluxo de operação

1. processamento de entradas de texto

  • procedimento::
    • Carregue modelos e processadores:
      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")
      
    • Insira o texto e gere uma resposta:
      text = "今天天气怎么样?"
      inputs = processor(text=text, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • no finalResposta de texto: retorne respostas de texto como "It's a sunny day with a nice temperature" (É um dia ensolarado com uma temperatura agradável).

2. processamento de entradas de imagem

  • procedimento::
    • Prepare o arquivo de imagem (por exemplo image.jpg).
    • Modifique o script para incluir imagens:
      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))
      
  • no finalDescrição da imagem: Descreva o conteúdo da imagem, por exemplo, "A imagem mostra um cachorro correndo na grama".

3. processamento de entradas de áudio

  • procedimento::
    • Prepare o arquivo de áudio (por exemplo audio.wav).
    • Modifique o script para incluir áudio:
      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))
      
  • no finalTranscrever o conteúdo do áudio, por exemplo, "O áudio diz 'It's going to rain tomorrow'".

4. processamento de entradas de vídeo

  • procedimento::
    • Prepare o arquivo de vídeo (por exemplo video.mp4).
    • Modifique o script para incluir o vídeo:
      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))
      
  • no finalDescreva o conteúdo do vídeo, por exemplo, "Alguém no vídeo está desenhando".

5. geração de saída de fala

  • procedimento::
    • Configure os prompts do sistema e ative a voz:
      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)
      
  • no final: Gerar output.wav com o conteúdo da resposta de voz.

6. ajuste de tons de voz

  • procedimento::
    • Especifique o tom (por exemplo, Chelsie ou Ethan) no momento da geração:
      text_ids, audio = model.generate(**inputs, spk="Ethan")
      sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
      
  • no finalTimbre: Gera um arquivo de voz com o timbre especificado.

7. aceleração com o FlashAttention-2

  • procedimento::
    • Instale o FlashAttention-2:
      pip install -U flash-attn --no-build-isolation
      
    • Ativado ao carregar um modelo:
      model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
      
  • no finalGeração mais rápida e menor uso de memória.

advertência

  • Requisitos de hardwareGPUs: são recomendadas, com pelo menos 16 GB de memória de vídeo.
  • requisito de redeA rede precisa ser estabilizada ao fazer o download de modelos e dependências.
  • Suporte à depuraçãoConsulte o GitHub para obter mais informações. README.md ou discussão comunitária.

 

cenário do aplicativo

  1. Assistente de voz em tempo real
    Os usuários fazem perguntas por voz e o modelo gera respostas de voz em tempo real, adequadas para atendimento ao cliente ou assistentes pessoais.
  2. Análise de conteúdo de vídeo
    Insira o vídeo e o modelo extrairá as principais informações para ajudar o usuário a organizar a filmagem ou gerar um relatório.
  3. Suporte educacional
    Os alunos fazem upload de áudio ou vídeo do curso, e os modelos respondem a perguntas ou extraem pontos-chave para aprimorar o aprendizado.

 

QA

  1. Quais são os idiomas suportados?
    Ele é compatível principalmente com chinês e inglês e oferece Chelsie, Ethan e outros tons para síntese de fala.
  2. Quanto espaço de armazenamento é necessário?
    O modelo Qwen2.5-Omni-7B tem aproximadamente 14 GB e é recomendável reservar mais de 20 GB.
  3. Ele está disponível comercialmente?
    Sim, com base na licença Apache 2.0, livre para uso comercial sujeito a termos.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Qwen2.5-Omni: um modelo de medição final para entrada multimodal e interação de fala em tempo real
pt_BRPortuguês do Brasil