| --- |
| license: mit |
| tags: |
| - audio-jepa |
| - jepa |
| - audio-representation-learning |
| - self-supervised |
| paper: |
| title: "Audio-JEPA: Joint-Embedding Predictive Architecture for Audio Representation Learning" |
| authors: |
| - Ludovic Tuncay |
| - Etienne Labbé |
| - Emmanouil Benetos |
| - Thomas Pellegrini |
| venue: "ICME 2025" |
| arxiv: "2507.02915" |
| hal: "hal-05128180" |
| --- |
| |
| # Audio-JEPA: pretrained encoder |
|
|
| Weights for the encoder trained in *Audio-JEPA: Joint-Embedding Predictive Architecture for Audio Representation Learning* (Tuncay, Labbé, Benetos, Pellegrini, ICME 2025). Source code: [`LudovicTuncay/Audio-JEPA`](https://github.com/LudovicTuncay/Audio-JEPA). |
|
|
| ## Files |
|
|
| | File | Purpose | |
| |------|---------| |
| | `JEPA.ckpt` | PyTorch Lightning checkpoint (state_dict + trainer metadata). | |
| | `config.json` | Standalone documentation of the architecture and audio pipeline. Machine-readable. | |
| | `README.md` | This document. | |
| |
| ## Model summary |
| |
| - Encoder: `VisionTransformer` (ViT-Base, 12 layers, 768-dim, 12 heads). |
| - Input: log-mel spectrogram of shape `(target_time_bins=256, n_mels=128)` from a 10 s mono waveform at 32 kHz. |
| - Patchification: `(16, 16)`, giving a grid `8 x 16 = 128` patches. |
| - Each patch spans ~625 ms of audio × 16 mel bins. |
| - Output: `(128, 768)` embeddings per 10 s clip. |
| - Effective temporal resolution: **1.6 positions/s** (the 12.8 tokens/s counts 8 temporal × 16 frequency patches per second). |
|
|
| ## Minimal inference (CPU, no `flash-attn` install required) |
|
|
| The training repo depends on `flash-attn`, which requires CUDA to build. For inference-only use, `flash_attn.modules.mha.MHA` can be substituted with a torch-native equivalent that matches the checkpoint's parameter names (`qkv`, `proj`). See `inference_example.py` in this repository for a ~150-line standalone script. |
|
|
| ```bash |
| # 1. Clone the source code (needed for the ViT class) |
| git clone --depth 1 https://github.com/LudovicTuncay/Audio-JEPA.git |
| |
| # 2. Install a lean set of deps |
| pip install torch torchaudio numpy huggingface_hub |
| |
| # 3. Run the example (downloads JEPA.ckpt on first run) |
| python inference_example.py --audio-jepa-src ./Audio-JEPA |
| ``` |
|
|
| The script prints the loading diagnostics (should be `0 missing, 0 unexpected`) and the embedding shape. |
|
|
| ## Domain fit: where the model excels vs where it doesn't |
|
|
| Audio-JEPA is designed to learn a **generic audio representation**. The 16×16 patch shape is a compromise across speech, music, and environmental sounds. Consequences: |
|
|
| - **Strong on**: music, environmental sounds, audio captioning, general audio tagging. |
| - **Weaker on**: speech-only downstream tasks (see the paper's X-ARES tables). Speech-specific SSL models such as `wav2vec 2.0`, HuBERT and the Whisper encoder currently outperform Audio-JEPA on speech-centric benchmarks. |
| - **A follow-up from the same author**, [`BEST-RQ-2`](https://huggingface.co/ltuncay/BEST-RQ-2) (Tuncay, Labbé, Pellegrini, Interspeech 2026, [arXiv 2606.30700](https://arxiv.org/abs/2606.30700)), combines the encoder-predictor decomposition of Audio-JEPA with BEST-RQ discrete targets. It yields substantially better cross-domain results while sharing the exact same encoder inference speed. |
|
|
| ## Citation |
|
|
| ```bibtex |
| @inproceedings{tuncay2025audio, |
| title = {Audio-JEPA: Joint-Embedding Predictive Architecture for Audio Representation Learning}, |
| author = {Tuncay, Ludovic and Labb{\'e}, Etienne and Benetos, Emmanouil and Pellegrini, Thomas}, |
| booktitle = {ICME 2025}, |
| address = {Nantes, France}, |
| year = {2025}, |
| url = {https://hal.science/hal-05128180} |
| } |
| ``` |
|
|
| ## License |
|
|
| MIT. |
|
|