facebook / pe-av-base-16-frame

huggingface.co
Total runs: 145
24-hour runs: 0
7-day runs: -141
30-day runs: -144
Model's Last Updated: January 29 2026

Introduction of pe-av-base-16-frame

Model Details of pe-av-base-16-frame

Perception Encoder Audio-Visual (PE-AV)

PE-AV is a state-of-the-art multimodal model that embeds audio, video, audio-video, and text into a joint embedding space. The model enables powerful cross-modal retrieval and understanding across audio, video, and text modalities.

Model Description

PE-AV is trained using contrastive learning to align audio, video, and text representations in a shared embedding space. The model can encode:

  • Audio only : Extract audio embeddings from audio waveforms
  • Video only : Extract visual embeddings from video frames
  • Audio-Video : Extract joint audio-visual embeddings
  • Text : Extract text embeddings optimized for different modality pairs
Model Variants

We release 6 model checkpoints with varying sizes and capabilities:

Model Avg Retrieval Video Frames used
pe-av-small-16-frame 45.2 16 frames
pe-av-base-16-frame 47.0 16 frames
pe-av-large-16-frame 48.2 16 frames
pe-av-small 48.1 all frames
pe-av-base 50.2 all frames
pe-av-large 51.6 all frames

The -16-frame variants sample exactly 16 frames (evenly spaced apart) from each video, while the base variants support variable-length videos.

Quick Start

The model is available in both transformers as well as perception_models libraries

perception_models Usage
import torch
from core.audio_visual_encoder import PEAudioVisual, PEAudioVisualTransform

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# Load model and transform
model = PEAudioVisual.from_config("pe-av-large", pretrained=True).to(device)
transform = PEAudioVisualTransform.from_config("pe-av-large")

video_files = ["video1.mp4", "video2.mp4"]
descriptions = ["description1", "description2"]
audio_files = ["audio1.wav", "audio2.wav"]

# Process inputs and get embeddings
inputs = transform(videos=video_files, text=descriptions, audio=audio_files).to(device)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs)

# Access different embeddings
audio_embeds = outputs.audio_embeds  # Audio-only embeddings
visual_embeds = outputs.visual_embeds  # Video-only embeddings
audio_visual_embeds = outputs.audio_visual_embeds  # Joint audio-visual embeddings
audio_text_embeds = outputs.audio_text_embeds  # Text embeddings aligned to audio
visual_text_embeds = outputs.visual_text_embeds  # Text embeddings aligned to video
audio_visual_text_embeds = outputs.audio_visual_text_embeds  # Text embeddings aligned to audio-visual
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # Joint audio and text embedding
visual_plus_text_embeds = outputs.visual_plus_text_embeds  # Joint video and text embedding

# Compute the dot product to get their similarities
audio_visual_similarity = audio_embeds @ visual_embeds.T
# When computing similarity against text embeddings, use the
# appropriate text embedding based on the other modality
audio_text_similarity = audio_embeds @ audio_text_embeds.T
video_text_similarity = visual_embeds @ visual_text_embeds.T

Note that you can omit any of the modalities, and use the same forward method. The corresponding embeddings in output will be None . For example:

inputs = transform(videos=video_files, text=descriptions).to(device)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs)

audio_embeds = outputs.audio_embeds  # None
visual_embeds = outputs.visual_embeds  # available
audio_visual_embeds = outputs.audio_visual_embeds # None
audio_visual_text_embeds = outputs.audio_visual_text_embeds # None
audio_text_embeds = outputs.audio_text_embeds  # None
visual_text_embeds = outputs.visual_text_embeds  # available
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # None
visual_plus_text_embeds = outputs.visual_plus_text_embeds  # Available

We also provide methods for directly encoding an individual modality:

def encode_video_text(self, input_ids, attention_mask=None)
def encode_audio_text(self, input_ids, attention_mask=None)
def encode_audio_video_text(self, input_ids, attention_mask=None)
def encode_audio(self, input_values, padding_mask=None, input_features=None)
def encode_video(self, pixel_values_videos, padding_mask_videos=None, pe_features=None)
def encode_audio_video(
    self,
    input_values,
    pixel_values_videos,
    padding_mask=None,
    padding_mask_videos=None,
    pe_features=None,  # optionally re-use pre-computed PE features
    input_features=None,  # Optionally re-use pre-computed audio codec features
)
def encode_audio_plus_text(
    self,
    input_ids,
    input_values,
    attention_mask=None,
    padding_mask=None,
    input_features=None  # Optionally re-use pre-computed audio codec features
)
def encode_video_plus_text(
    self,
    input_ids,
    pixel_values_videos,
    attention_mask=None,
    padding_mask_videos=None,
    pe_features=None,  # optionally re-use pre-computed PE features
)
transformers Usage
from transformers import PeAudioVideoModel, PeAudioVideoProcessor
import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = PeAudioVideoModel.from_pretrained("facebook/pe-av-large")
processor = PeAudioVideoProcessor.from_pretrained("facebook/pe-av-large")

model = model.to(device)

video_files = ["video1.mp4", "video2.mp4"]
descriptions = ["description1", "description2"]
audio_files = ["audio1.wav", "audio2.wav"]

# Process inputs and get embeddings
inputs = processor(
    videos=video_files, text=descriptions, audio=audio_files, return_tensors="pt", padding=True
)

with torch.inference_mode(), torch.autocast(device.type, dtype=torch.bfloat16):
    outputs = model(**inputs.to(device), return_loss=True)

audio_embeds = outputs.audio_embeds  # Audio-only embeddings
video_embeds = outputs.video_embeds  # Video-only embeddings
audio_video_embeds = outputs.audio_video_embeds  # Joint audio-video embeddings
text_audio_video_embeds = outputs.audio_video_text_embeds  # Text embeddings aligned to audio-video
text_audio_embeds = outputs.text_audio_embeds  # Text embeddings aligned to audio
text_video_embeds = outputs.text_video_embeds  # Text embeddings aligned to video
audio_plus_text_embeds = outputs.audio_plus_text_embeds  # Joint audio and text embedding
video_plus_text_embeds = outputs.video_plus_text_embeds  # Joint video and text embedding

# For classification, you can use the logits_* fields of the output
audio_text_preds = outputs.logits_audio_text.sigmoid()

# The overall loss is also available in the output (requires passing return_loss=True)
loss = outputs.loss

We also provide methods for directly encoding an individual modality:

def get_text_audio_embeds(self, input_ids, attention_mask=None)

def get_text_video_embeds(self, input_ids, attention_mask=None)

def get_text_audio_video_embeds(self, input_ids, attention_mask=None)

def get_audio_embeds(self, input_values, padding_mask=None)

def get_video_embeds(self, pixel_values_videos, padding_mask_videos=None)

def get_audio_video_embeds(
    self,
    input_values: torch.Tensor,
    pixel_values_videos: torch.Tensor,
    padding_mask: Optional[torch.Tensor] = None,
    padding_mask_videos: Optional[torch.Tensor] = None,
    return_audio_embeds: bool = False,
    return_video_embeds: bool = False,
)

def get_audio_plus_text_embeds(
    self,
    input_ids: torch.Tensor,
    input_values: torch.Tensor,
    attention_mask: Optional[torch.Tensor] = None,
    padding_mask: Optional[torch.Tensor] = None,
)

def get_video_plus_text_embeds(
    self,
    input_ids: torch.Tensor,
    pixel_values_videos: torch.Tensor,
    attention_mask: Optional[torch.Tensor] = None,
    padding_mask_videos: Optional[torch.Tensor] = None,
)
Citation
@article{pe-av2025,
  title={PEAV: An Audiovisual Perception Encoder via Large-Scale Multimodal Correspondence Learning},
  author={Apoorv Vyas, Heng-Jui Chang, Cheng-Fu Yang, Po-Yao Huang, Luya Gao, Julius Richter, Sanyuan Chen, Matt Le, Piotr Dollár, Christoph Feichtenhofer, Ann Lee, Wei-Ning Hsu},
  url={arxiv link coming soon}
  year={2025}
}
License

This model is released under the Apache 2.0 license.

Runs of facebook pe-av-base-16-frame on huggingface.co

145
Total runs
0
24-hour runs
0
3-day runs
-141
7-day runs
-144
30-day runs

More Information About pe-av-base-16-frame huggingface.co Model

More pe-av-base-16-frame license Visit here:

https://choosealicense.com/licenses/apache-2.0

pe-av-base-16-frame huggingface.co

pe-av-base-16-frame huggingface.co is an AI model on huggingface.co that provides pe-av-base-16-frame's model effect (), which can be used instantly with this facebook pe-av-base-16-frame model. huggingface.co supports a free trial of the pe-av-base-16-frame model, and also provides paid use of the pe-av-base-16-frame. Support call pe-av-base-16-frame model through api, including Node.js, Python, http.

pe-av-base-16-frame huggingface.co Url

https://huggingface.co/facebook/pe-av-base-16-frame

facebook pe-av-base-16-frame online free

pe-av-base-16-frame huggingface.co is an online trial and call api platform, which integrates pe-av-base-16-frame's modeling effects, including api services, and provides a free online trial of pe-av-base-16-frame, you can try pe-av-base-16-frame online for free by clicking the link below.

facebook pe-av-base-16-frame online free url in huggingface.co:

https://huggingface.co/facebook/pe-av-base-16-frame

pe-av-base-16-frame install

pe-av-base-16-frame is an open source model from GitHub that offers a free installation service, and any user can find pe-av-base-16-frame on GitHub to install. At the same time, huggingface.co provides the effect of pe-av-base-16-frame install, users can directly use pe-av-base-16-frame installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

pe-av-base-16-frame install url in huggingface.co:

https://huggingface.co/facebook/pe-av-base-16-frame

Url of pe-av-base-16-frame

pe-av-base-16-frame huggingface.co Url

Provider of pe-av-base-16-frame huggingface.co

facebook
ORGANIZATIONS

Other API from facebook

huggingface.co

Total runs: 8.1M
Run Growth: 62.3K
Growth Rate: 0.77%
Updated:January 20 2022
huggingface.co

Total runs: 7.5M
Run Growth: -8.7M
Growth Rate: -114.04%
Updated:September 15 2023
huggingface.co

Total runs: 3.4M
Run Growth: 1.1M
Growth Rate: 31.77%
Updated:January 17 2024
huggingface.co

Total runs: 3.2M
Run Growth: -1.3M
Growth Rate: -37.77%
Updated:September 06 2023
huggingface.co

Total runs: 2.8M
Run Growth: -374.6K
Growth Rate: -13.46%
Updated:December 28 2021
huggingface.co

Total runs: 2.3M
Run Growth: 186.6K
Growth Rate: 8.17%
Updated:March 23 2023
huggingface.co

Total runs: 2.2M
Run Growth: -145.8K
Growth Rate: -6.60%
Updated:January 25 2024
huggingface.co

Total runs: 2.0M
Run Growth: -311.7K
Growth Rate: -15.87%
Updated:November 21 2025
huggingface.co

Total runs: 833.8K
Run Growth: -73.4K
Growth Rate: -8.89%
Updated:September 06 2023
huggingface.co

Total runs: 472.2K
Run Growth: 87.5K
Growth Rate: 18.68%
Updated:February 29 2024
huggingface.co

Total runs: 466.5K
Run Growth: -151.6K
Growth Rate: -32.16%
Updated:May 22 2023
huggingface.co

Total runs: 430.0K
Run Growth: 3.8K
Growth Rate: 0.87%
Updated:March 17 2025
huggingface.co

Total runs: 354.6K
Run Growth: -47.8K
Growth Rate: -14.00%
Updated:January 12 2024
huggingface.co

Total runs: 321.5K
Run Growth: -52.7K
Growth Rate: -16.44%
Updated:September 06 2023
huggingface.co

Total runs: 311.5K
Run Growth: 45.7K
Growth Rate: 14.59%
Updated:September 15 2023
huggingface.co

Total runs: 309.6K
Run Growth: -287.5K
Growth Rate: -87.55%
Updated:January 12 2024
huggingface.co

Total runs: 290.0K
Run Growth: -22.7K
Growth Rate: -7.66%
Updated:November 17 2022
huggingface.co

Total runs: 287.1K
Run Growth: 56.3K
Growth Rate: 19.44%
Updated:June 15 2023
huggingface.co

Total runs: 236.9K
Run Growth: 14.3K
Growth Rate: 6.02%
Updated:July 23 2024
huggingface.co

Total runs: 231.6K
Run Growth: 133.8K
Growth Rate: 54.53%
Updated:May 22 2023
huggingface.co

Total runs: 209.7K
Run Growth: -107.6K
Growth Rate: -50.41%
Updated:July 25 2023
huggingface.co

Total runs: 184.6K
Run Growth: 76.7K
Growth Rate: 41.86%
Updated:September 06 2023
huggingface.co

Total runs: 184.5K
Run Growth: 57.5K
Growth Rate: 30.79%
Updated:February 12 2023
huggingface.co

Total runs: 163.6K
Run Growth: 192
Growth Rate: 0.12%
Updated:September 01 2023
huggingface.co

Total runs: 153.4K
Run Growth: -175.4K
Growth Rate: -113.72%
Updated:November 17 2023
huggingface.co

Total runs: 141.6K
Run Growth: 83.2K
Growth Rate: 57.69%
Updated:November 16 2023
huggingface.co

Total runs: 120.5K
Run Growth: -3.4K
Growth Rate: -2.76%
Updated:June 03 2022
huggingface.co

Total runs: 117.8K
Run Growth: 26.8K
Growth Rate: 22.92%
Updated:November 20 2023
huggingface.co

Total runs: 116.1K
Run Growth: 24.7K
Growth Rate: 21.40%
Updated:January 25 2023
huggingface.co

Total runs: 108.3K
Run Growth: -23.0K
Growth Rate: -20.76%
Updated:June 13 2023
huggingface.co

Total runs: 103.0K
Run Growth: -14.5K
Growth Rate: -13.76%
Updated:September 15 2023
huggingface.co

Total runs: 91.7K
Run Growth: 63.6K
Growth Rate: 70.36%
Updated:February 12 2023
huggingface.co

Total runs: 81.8K
Run Growth: -168.8K
Growth Rate: -199.60%
Updated:June 13 2023
huggingface.co

Total runs: 60.3K
Run Growth: -16.8K
Growth Rate: -27.88%
Updated:March 28 2026
huggingface.co

Total runs: 59.1K
Run Growth: 18.6K
Growth Rate: 31.05%
Updated:January 25 2023
huggingface.co

Total runs: 48.3K
Run Growth: -1.1K
Growth Rate: -2.16%
Updated:March 13 2024
huggingface.co

Total runs: 48.0K
Run Growth: -22.0K
Growth Rate: -45.79%
Updated:January 29 2026