/ Модель

Характеристики

Лицензия
Своя лицензия
Архитектура
llava_llama · dense
Опубликована
10 июл 2025

audio-flamingo-3

Распознавание речиАудио, текст → текст3 профессии

Audio Flamingo 3 — аудиоязыковая модель NVIDIA для вопросов и рассуждений по речи, звукам и музыке, включая длинные записи и голосовой диалог.

501скачиваний за 30 дней160лайковвеса обновлены28 ноя 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Audio Flamingo 3 (AF3) — открытая большая аудиоязыковая модель, разработанная NVIDIA для понимания речи, звуков и музыки, ответов на вопросы по аудио и рассуждений. Она подходит для анализа коротких и длинных аудиозаписей, голосового диалога и интерактивных помощников для работы со звуком и музыкой.

Архитектура сочетает аудиоэнкодер AF-Whisper, MLP-адаптер и декодерную языковую модель Qwen2.5-7B; в AF3-Chat также предусмотрен потоковый синтез речи. Модель принимает аудио и текст, обрабатывает аудио длительностью до 10 минут и текстовый контекст до 16 000 токенов. Основной язык в карточке — английский. На выходе модель формирует текст, а в голосовом режиме может выдавать речь.

Модель поддерживает многошаговый диалог с аудио и опциональное рассуждение; её обучали на наборах данных для речи, звуков и музыки. Для запуска предусмотрены PyTorch и Hugging Face Transformers; авторы ориентируют применение на NVIDIA A100/H100. Лицензия обозначена как other, а карточка ограничивает использование некоммерческими исследовательскими целями.

Сценарии применения

  • ответы на вопросы по аудиозаписям
  • распознавание и анализ речи
  • описание звуковых сцен
  • анализ музыкальных записей
  • голосовой диалог с аудиопомощником

Ограничения

Карточка указывает ограничение на некоммерческие исследовательские цели. Максимальная длительность аудио — 10 минут; заявленная основная поддержка языка — английский.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Model Overview

🚨 Audio Flamingo 3 has now been integrated to HuggingFace Transformers. Check out the model card here!

Description:

Audio Flamingo 3 (AF3) is a fully open, state-of-the-art Large Audio-Language Model (LALM) that advances reasoning and understanding across speech, sounds, and music. AF3 builds on previous work with innovations in:

  • Unified audio representation learning (speech, sound, music)
  • Flexible, on-demand chain-of-thought reasoning
  • Long-context audio comprehension (up to 10 minutes)
  • Multi-turn, multi-audio conversational dialogue (AF3-Chat)
  • Voice-to-voice interaction (AF3-Chat)

Extensive evaluations confirm AF3’s effectiveness, setting new benchmarks on over 20 public audio understanding and reasoning tasks.

This model is for non-commercial research purposes only.

Usage

Audio Flamingo 3 is supported in 🤗 Transformers. To run the model, first install Transformers:

pip install --upgrade pip
pip install --upgrade git+https://github.com/huggingface/transformers accelerate

Note: AF3 processes audio in 30-second windows with a 10-minute total cap per sample. Longer inputs are truncated.

Single-turn: audio + text instruction

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Transcribe the input speech."},
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

Multi-turn chat

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Instruction: How does the tone of female speech change throughout the audio? Choose the correct option among the options below: (A) Sad to happy (B) Happy to sad (C) Neutral to happy (D) Happy to neutral.",
            },
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
        ],
    },
    {
        "role": "assistant",
        "content": [{"type": "text", "text": "(A) Sad to happy"}],
    },
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Why do you think so?"},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

Batch multiple conversations

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversations = [
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Transcribe the input speech."},
                {
                    "type": "audio",
                    "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav",
                },
            ],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
                },
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
            ],
        }
    ],
]

inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

Text-only and audio-only prompts

# text-only
conv = [{"role": "user", "content": [{"type": "text", "text": "What is the capital of France?"}]}]
batch = processor.apply_chat_template(conv, tokenize=True, add_generation_prompt=True, return_dict=True).to(device)
print(processor.batch_decode(model.generate(**batch)[:, batch["input_ids"].shape[1]:], skip_special_tokens=True)[0])

# audio-only
conv = [{"role": "user", "content": [{"type": "audio", "path": "https://.../sample.wav"}]}]
batch = processor.apply_chat_template(conv, tokenize=True, add_generation_prompt=True, return_dict=True).to(device)
print(processor.batch_decode(model.generate(**batch)[:, batch["input_ids"].shape[1]:], skip_special_tokens=True)[0])

AF3 transcription checkpoints prepend answers with fixed assistant phrasing such as The spoken content of the audio is "<text>".. Passing strip_prefix=True removes that canned prefix and the surrounding quotes so you only keep the transcription.

Transcribe a local/remote file (shortcut)

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")

inputs = processor.apply_transcription_request(audio="https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav").to(model.device)

outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True, strip_prefix=True)

print(decoded_outputs)

Think-mode reasoning with PEFT adapter (AF-Think)

import os

import torch
from huggingface_hub import snapshot_download
from peft import PeftModel

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor


model_id = "nvidia/audio-flamingo-3-hf"
local_id = snapshot_download(model_id)

processor = AutoProcessor.from_pretrained(local_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(local_id, device_map="auto")

non_lora_path = os.path.join(local_id, "think", "non_lora_trainables.bin")
non_lora_trainables = torch.load(non_lora_path)
model.load_state_dict(non_lora_trainables, strict=False)

model = PeftModel.from_pretrained(model, local_id, subfolder="think")

conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Generate a detailed caption for the input audio, describing all notable speech, sound, and musical events comprehensively. In the caption, transcribe all spoken content by all speakers in the audio precisely.\nPlease think and reason about the input music before you respond.",
            },
            {
                "type": "audio",
                "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/videoplayback_superman.wav",
            },
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=1024)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=True)
print(decoded_outputs)

Training / Fine-tuning

from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()

conversation = [
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Transcribe the input speech."},
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
            ],
        },
        {
            "role": "assistant",
            "content": [{"type": "text", "text": "The transcription of the audio is 'summer follows spring the days grow longer and the nights are warm'."}],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
                },
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
            ],
        },
        {
            "role": "assistant",
            "content": [{"type": "text", "text": "The transcription of the audio is 'some transcription of the audio'."}],
        }

    ]
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    output_labels=True,
).to(model.device)

loss = model(**inputs).loss
loss.backward()

Generation options

You can tune decoding similar to other text-generation models:

generate_kwargs = {
    "max_new_tokens": 256,
    "do_sample": True,
    "temperature": 0.7,
    "top_p": 0.9,
}
out = model.generate(**batch, **generate_kwargs)

Additional Speed & Memory Improvements

Flash Attention 2

If your GPU supports it and you are not using torch.compile, install Flash-Attention and enable it at load time:

pip install flash-attn --no-build-isolation
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(
    model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, attn_implementation="flash_attention_2"
).to(device)

Torch compile

AF3’s forward pass is compatible with torch.compile for significant speed-ups:

import torch
torch.set_float32_matmul_precision("high")

model.generation_config.cache_implementation = "static"
model.generation_config.max_new_tokens = 256
model.forward = torch.compile(model.forward, mode="reduce-overhead", fullgraph=True)

torch.compile is not compatible with Flash Attention 2 at the same time.

PyTorch SDPA

If Flash-Attention isn’t available, AF3 will use PyTorch scaled-dot product attention (SDPA) by default on supported PyTorch versions. You can set it explicitly:

model = AudioFlamingo3ForConditionalGeneration.from_pretrained(
    model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, attn_implementation="sdpa"
).to(device)

Results:

Model Architecture:

Audio Flamingo 3 uses AF-Whisper unified audio encoder, MLP-based audio adaptor, Decoder-only LLM backbone (Qwen2.5-7B), and Streaming TTS module (AF3-Chat). Audio Flamingo 3 can take up to 10 minutes of audio inputs.

License / Terms of Use

The model is released under the NVIDIA OneWay Noncommercial License. Portions of the dataset generation are also subject to the Qwen Research License and OpenAI’s Terms of Use.

Deployment Geography

Global.

Use Case

Intended for researchers and developers to explore:

  • Audio question answering and reasoning
  • Long-context audio comprehension
  • Interactive sound/music design assistants
  • Multi-turn (voice) chat

Release Date

References:

Model Architecture:

Architecture Type: Transformer
Network Architecture: Audio Flamingo 3

AF3 uses:

  • AF-Whisper unified audio encoder
  • MLP-based audio adaptor
  • Decoder-only LLM backbone (Qwen2.5-7B)
  • Streaming TTS module (AF3-Chat)

**This model was developed based on NVILA and Qwen-2.5-7B

Input:

  • Input Type: Audio, Text
  • Input Format: WAV/MP3/FLAC, UTF-8 text
  • Input Parameters: Audio is Two-Dimensional (2D) and Text is One-Dimensional (1D)
  • Other Properties Related to Input:
  • Max Audio Length: 10 Minutes
  • Max Text Length: 16000 tokens

Output:

  • Output Type: Text (and optional speech)
  • Text Format: UTF-8 string
  • Output Parameters: One-Dimensional (1D)
  • Other Properties Related to Output:
  • Max Text Length: 1024 tokens
  • Speech Format: streaming TTS (text-to-speech) waveform

Our AI models are designed and/or optimized to run on NVIDIA GPU-accelerated systems (A100/H100). By leveraging NVIDIA’s hardware (e.g. GPU cores) and software frameworks (e.g., CUDA libraries), the model achieves faster training and inference times compared to CPU-only solutions.

Software Integration:

Runtime Engine: PyTorch / HuggingFace Transformers

Supported Hardware:

  • NVIDIA Ampere (A100)
  • NVIDIA Hopper (H100)

Supported OS:

  • Linux

Model Version:

  • v3.0

Training and Testing Datasets:

Training Dataset:

AF3 is trained entirely on open-source audio data, organized into four novel, large-scale collections. For each dataset, we mention whether the dataset annotations are collected by Human or they are Automated i.e. generated using AI models.

The data collection method noted below applies for all datasets used for training and testing: Data Collection Method: Human Labeling Collection Method: Please see below:

General Sound:

Music:

Speech:

Voice:

Mixed:


Testing Dataset:

Audio Flamingo 3 is evaluated on the test split of the following datasets.

Data Collection Method: Human (for all datasets noted below) Labeling Method: See below


Inference:

Engine: HuggingFace Transformers
Test Hardware: NVIDIA A100 80 GB


Ethical Considerations:

NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse. Please report security vulnerabilities or NVIDIA AI Concerns here.


Acknowledgements

Built with Qwen, NVILA and the open audio-ML community.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Архитектура llava_llama неизвестна transformers в образе рантайма.

Класс архитектуры
LlavaLlamaModel
Ревизия весов
ee26c58

0 моделей