Model Overview
Audio Flamingo 3: Advancing Audio Intelligence with Fully Open Large Audio-Language Models
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
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"},
],
}
]
batch = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device)
gen_ids = model.generate(**batch)
inp_len = batch["input_ids"].shape[1]
new_tokens = gen_ids[:, inp_len:]
texts = processor.batch_decode(new_tokens, skip_special_tokens=True)
print(texts)
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?"},
],
},
]
batch = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device)
gen_ids = model.generate(**batch)
inp_len = batch["input_ids"].shape[1]
new_tokens = gen_ids[:, inp_len:]
texts = processor.batch_decode(new_tokens, skip_special_tokens=True)
print(texts)
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)
generated = model.generate(**inputs)
transcription = processor.batch_decode(generated[:, inputs.input_ids.shape[1]:], skip_special_tokens=True, strip_prefix=True)
print(transcription[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.
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"},
],
}
],
]
batch = processor.apply_chat_template(
conversations,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device)
gen_ids = model.generate(**batch)
inp_len = batch["input_ids"].shape[1]
new_tokens = gen_ids[:, inp_len:]
texts = processor.batch_decode(new_tokens, skip_special_tokens=True)
print(texts)
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])
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.compileis 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
- Github (07/10/2025) via https://github.com/NVIDIA/audio-flamingo
- HuggingFace (07/10/2025) via https://huggingface.co/nvidia/audio-flamingo-3
References:
- Audio Flamingo 3: Advancing Audio Intelligence with Fully Open Large Audio-Language Models
- Project Page
- Demo Website
- Hugging Face
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:
- WavCaps (Automated)
- MACS (Human)
- SoundDescs (Human)
- Clotho-v2 (Human)
- WavText5K (Human)
- Clotho-AQA (Human)
- Open-AQA (Automated)
- CompA-R (Automated)
- Salmonn AQA (Automated)
- Audio Entailment(Automated)
- CompA (Automated)
- AudioSet (Human)
- YouTube-8M (Human)
- FSD50k (Human)
- CochlScene (Human)
- NonSpeech7K (Human)
- Chime-Home (Human)
- Sonyc-UST (Human)
Music:
- LP-MusicCaps (Automated)
- MusicQA (Automated)
- MusicAVQA (Human)
- MusicBench (Automated)
- Mu-LLAMA (Automated)
- NSynth (Human)
- FMA (Human)
- MusDB-HQ (Human)
- Music4All (Human)
- Million Song Dataset (Human)
Speech:
- MSP-Podcast (Human)
- JL-Corpus (Human)
- MELD (Human)
- Tess (Human)
- OMGEmotion (Human)
- Emov-DB (Human)
- LibriSpeech (Human)
- SPGISpeech (Human)
- TEDLIUM (Human)
- GigaSpeech (Human)
- Common Voice 15 (Human)
- VoxPopuli (Human)
- VoxCeleb2 (Human)
- Switchboard (Human)
- AMI (Human)
Voice:
- VoiceAssistant-400K (Automated)
Mixed:
- AudioSkills-XL (ours) (Automated)
- LongAudio-XL (ours) (Automated)
- AF-Think (ours) (Automated)
- AF-Chat (ours) (Automated)
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
- ClothoAQA (Human)
- MusicAVQA (Human)
- Clotho-v2 (Human)
- CochlScene (Human)
- NonSpeech7K (Human)
- NSynth (Human)
- AudioCaps (Human)
- US8K (Human)
- GTZAN (Human)
- MMAU (Human)
- MMAR (Human)
- Audio Entailment(Automated)
- CompA-R-test (Automated)
- MuchoMusic (Automated)
- Open-AQA(Automated)
- MusicInstruct (Automated)
- MusicQA (Automated)
- CMM Hallucination (Human)
- IEMOCAP (Human)
- VoiceBench (Human)
- OpenAudioBench (Human)
- SEED (Human)
- LibriSpeech (Human)
- SPGISpeech (Human)
- TEDLIUM (Human)
- GigaSpeech (Human)
- Common Voice 15 (Human)
- VoxPopuli (Human)
- LongAudioBench (ours) (Automated)
- AF-Chat-test (ours) (Human)
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.
- Downloads last month
- 1,505