SkillAgentSearch skills...

ParaCLAP

Towards a general language-audio model for computational paralinguistic tasks

Install / Use

npx skills add KeiKinn/ParaCLAP

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

ParaCLAP – Towards a general language-audio model for computational paralinguistic tasks

official paper arxiv

This repo includes the official PyTorch implementation of ParaCLAP – Towards a general language-audio model for computational paralinguistic tasks

Abstract

Contrastive language-audio pretraining (CLAP) has recently emerged as a method for making audio analysis more generalisable. Specifically, CLAP-style models are able to ‘answer’ a diverse set of language queries, extending the capabilities of audio models beyond a closed set of labels. However, CLAP relies on a large set of (audio, query) pairs for pretraining. While such sets are available for general audio tasks, like captioning or sound event detection, there are no datasets with matched audio and text queries for computational paralinguistic (CP) tasks. As a result, the community relies on generic CLAP models trained for general audio with limited success. In the present study, we explore training considerations for ParaCLAP, a CLAP-style model suited to CP, including a novel process for creating audio-language queries. We demonstrate its effectiveness on a set of computational paralinguistic tasks, where it is shown to surpass the performance of open-source state-of-the-art models.

Instruction

The goal of this work is to create a CLAP-style model for computational paralinguistics. This is done by training an acoustic model (audeering-w2v2-emo) and a text model (bert-base-uncased) with the CLIP objective (contrastive loss).

The text-audio pairs are generated through a novel art of templating which accepts as input eGeMAPS features and generates pseudo-captions.

The templates are generated by preprocessing/template_creation.py. This script can be adapted to generate more pseudo-captions and control which variables are used.

The remaining scripts in this repository can be used as follows:

  • train.py trains the CLAP model
  • features.py extracts eGeMAPS features for MSP-Podcast
  • evaluate.py evaluates the CLAP model on emotion recognition on different datasets
    • Depending on which data has been used for training, this is may be a zero-shot scenario

Please find our best checkpoint at HuggingFace trained and evalatuted on the MSP-Podcast.

Evaluation

Evaluation on file

  1. update your candidit list and filepath in eval.py, and the checkpoint will be automaticly downloaded

  2. run the following command:

python ./eval.py

Evaluation on dataset

  1. update your dataset path in eval_dataset.py, and the checkpoint will be automaticly downloaded

  2. run the following command:

python ./eval_dataset.py

Evaluation on Your Dataset

Dataset Requirements

Please check the './Data/cremad.py' for the dataset template. There are two requirements for your dataset to be compatible with the evaluation script:

  1. Initialization (__init__(self)):

    • Define the following variables in your dataset class:
      • self.emotion_map: A dictionary mapping emotion labels to corresponding numerical values (e.g., {'happy': 0, 'sad': 1}). This mapping is used for statistical analysis of predictions.
      • self.emo_list: A list of available emotion labels (e.g., ['happy', 'sad']). This will serve as candidates during evaluation.
  2. Dataset Return Format:
    Your dataset should return the following in each iteration:

    • torch.Tensor(waveform): The audio waveform to be processed.
    • emotion: A placeholder for additional information (optional).
    • self.emotion_map[emotion]: The numerical label corresponding to the emotion of the sample.

Citation Info

ParaCLAP has been accept at InterSpeech 2024 for presentation.

@inproceedings{Jing24_PTA,
  title     = {ParaCLAP – Towards a general language-audio model for computational paralinguistic tasks},
  author    = {Xin Jing and Andreas Triantafyllopoulos and Björn Schuller},
  year      = {2024},
  booktitle = {Interspeech 2024},
  pages     = {1155--1159},
  doi       = {10.21437/Interspeech.2024-1315},
  issn      = {2958-1796},
}

Related Skills

View on GitHub
GitHub Stars31
CategoryDevelopment
Updated11d ago
Forks1

Languages

Python

Security Score

75/100

Audited on Jul 28, 2026

No findings