Qwen2.5-Omni : un modèle de mesure finale pour la saisie multimodale et l'interaction vocale en temps réel

Introduction générale

Qwen2.5-Omni est un modèle d'IA multimodale open source développé par l'équipe Alibaba Cloud Qwen. Il peut traiter de multiples entrées telles que du texte, des images, de l'audio et de la vidéo, et générer des réponses textuelles ou vocales naturelles en temps réel. Le modèle a été publié le 26 mars 2025, et le code et les fichiers du modèle sont hébergés sur GitHub et peuvent être téléchargés et utilisés gratuitement par tous. Il utilise l'architecture Thinker-Talker et la technologie TMRoPE pour assurer un traitement efficace des données multimodales. Qwen2.5-Omni est performant dans des tâches telles que la reconnaissance vocale, la compréhension d'images et l'analyse vidéo, et convient à des scénarios tels que les assistants intelligents et le traitement multimédia.

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

 

Liste des fonctions

  • Prise en charge des entrées multimodales : peut traiter simultanément du texte, des images, du son et de la vidéo.
  • Réponse en temps réel : un texte ou un message vocal est généré immédiatement après la saisie.
  • Synthèse vocale naturelle : génère une parole claire et naturelle, prend en charge plusieurs tonalités.
  • Compréhension des images et des vidéos : identifier le contenu des images ou analyser les clips vidéo.
  • Suivi des commandes de bout en bout : accomplissez des tâches directement sur la base de commandes vocales ou textuelles.
  • Open source et gratuit : le code complet et les modèles sont fournis pour permettre à l'utilisateur de les personnaliser.

 

Nous avons réalisé une évaluation complète de Qwen2.5-Omni. Les résultats montrent qu'il est très performant sur toutes les modalités, ce qui lui donne un avantage sur les modèles à modalité unique de taille équivalente ainsi que sur les modèles à source fermée tels que Qwen2.5-VL-7B, Qwen2-Audio et Gemini-1.5-Pro. Dans les tâches qui nécessitent l'intégration de plusieurs modalités, comme OmniBench, Qwen2.5-Omni atteint des performances de pointe. En outre, dans les tâches monomodales, il excelle dans les domaines de la reconnaissance vocale (Common Voice), de la traduction (CoVoST2), de la compréhension audio (MMAU), du raisonnement par l'image (MMMU, MMStar), de la compréhension vidéo (MVBench) et de la génération de parole (Seed-tts-eval et Subjective Naturalness).

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

 

Utiliser l'aide

L'utilisation de Qwen 2.5-Omni nécessite un certain niveau de connaissances techniques. Vous trouverez ci-dessous un guide d'installation et d'utilisation détaillé pour aider les utilisateurs à démarrer rapidement.

Processus d'installation

  1. Préparation de l'environnement
    • Assurez-vous que Python 3.10 ou une version ultérieure est installé.
    • Git est nécessaire pour télécharger le code.
    • Recommandé pour les systèmes Linux, les systèmes non-Linux peuvent nécessiter une configuration supplémentaire.
  2. Télécharger le code
    • Clonez votre dépôt GitHub en tapant la commande dans le terminal :
      git clone https://github.com/QwenLM/Qwen2.5-Omni.git
      
    • Accédez au catalogue de projets :
      cd Qwen2.5-Omni
      
  3. Installation des dépendances
    • Comme le code n'a pas été entièrement fusionné dans la branche master Hugging Face, une version spécifique de Transformers doit être installée :
      pip uninstall transformers
      pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356
      pip install accelerate
      
    • Installer l'outil de traitement multimodal :
      pip install qwen-omni-utils[decord]
      
      • Note : Une pré-installation est nécessaire ffmpegLes utilisateurs de Linux peuvent exécuter sudo apt install ffmpeg.
      • Les utilisateurs non-Linux qui ne parviennent pas à installer decordpeut être remplacé par :
        pip install qwen-omni-utils
        
  4. Télécharger les modèles
  5. Vérifier l'installation
    • Exécutez la commande suivante pour vérifier l'environnement :
      python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
      

Fonction Opération Déroulement

1. traitement des entrées textuelles

  • procédure: :
    • Charger les modèles et les processeurs :
      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")
      
    • Saisir un texte et générer une réponse :
      text = "今天天气怎么样?"
      inputs = processor(text=text, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • en fin de compteLes réponses textuelles peuvent être : "C'est une journée ensoleillée avec une température agréable".

2. traitement des images

  • procédure: :
    • Préparer le fichier image (ex. image.jpg).
    • Modifier le script pour y inclure des images :
      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))
      
  • en fin de compteLes images de l'image : Décrire le contenu de l'image, par exemple "L'image montre un chien qui court sur l'herbe".

3. traitement des entrées audio

  • procédure: :
    • Préparer le fichier audio (par ex. audio.wav).
    • Modifier le script pour y inclure le son :
      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))
      
  • en fin de compteTranscrire le contenu audio, par exemple : "L'audio dit 'Il va pleuvoir demain'".

4. traitement des entrées vidéo

  • procédure: :
    • Préparer le fichier vidéo (par ex. video.mp4).
    • Modifier le script pour y inclure la vidéo :
      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))
      
  • en fin de compteDécrire le contenu de la vidéo, par exemple : "Quelqu'un dessine dans la vidéo".

5) Générer une sortie vocale

  • procédure: :
    • Configurer les invites du système et activer la voix :
      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)
      
  • en fin de compte: Générer output.wav avec le contenu de la réponse vocale.

6. réglage des tonalités vocales

  • procédure: :
    • Spécifiez le ton (par exemple Chelsie ou Ethan) au moment de la génération :
      text_ids, audio = model.generate(**inputs, spk="Ethan")
      sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
      
  • en fin de compte: génère un fichier vocal avec le timbre spécifié.

7. accélération avec FlashAttention-2

  • procédure: :
    • Installer FlashAttention-2 :
      pip install -U flash-attn --no-build-isolation
      
    • Activé lors du chargement d'un modèle :
      model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
      
  • en fin de compteGénération plus rapide et utilisation réduite de la mémoire vidéo.

mise en garde

  • exigences en matière de matérielLes GPU sont recommandés, avec au moins 16 Go de mémoire vidéo.
  • exigences en matière de réseauLe réseau doit être stabilisé lors du téléchargement des modèles et des dépendances.
  • Support de débogagePour plus d'informations, voir GitHub. README.md ou une discussion au sein de la communauté.

 

scénario d'application

  1. Assistant vocal en temps réel
    Les utilisateurs posent des questions vocales et le modèle génère des réponses vocales en temps réel, ce qui convient au service clientèle ou aux assistants personnels.
  2. Analyse du contenu des vidéos
    Saisissez la vidéo et le modèle extrait des informations clés pour aider l'utilisateur à organiser la séquence ou à générer un rapport.
  3. Soutien à l'éducation
    Les étudiants téléchargent des fichiers audio ou vidéo de cours, et des modèles répondent aux questions ou extraient des points clés pour améliorer l'apprentissage.

 

QA

  1. Quelles sont les langues prises en charge ?
    Il prend principalement en charge le chinois et l'anglais, et propose Chelsie, Ethan et d'autres tonalités pour la synthèse vocale.
  2. Quel est l'espace de stockage nécessaire ?
    Le modèle Qwen2.5-Omni-7B est d'environ 14 Go et il est recommandé de réserver plus de 20 Go.
  3. Est-il disponible dans le commerce ?
    Oui, sur la base de la licence Apache 2.0, libre pour une utilisation commerciale sous réserve des conditions.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...