🚀 voc2vec-as-pt
voc2vec是专门为非语言人类数据设计的基础模型。它利用了涵盖约125小时非语言音频的10个数据集,预训练了一个类似Wav2Vec2的模型,为非语言音频处理提供了强大的支持。
🚀 快速开始
你可以直接按照以下方式使用该模型:
import torch
import librosa
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor
audio_array, sr = librosa.load("path_to_audio.wav", sr=16000)
model = AutoModelForAudioClassification.from_pretrained("alkiskoudounas/voc2vec-as-pt")
feature_extractor = AutoFeatureExtractor.from_pretrained("alkiskoudounas/voc2vec-as-pt")
inputs = feature_extractor(audio_array.squeeze(), sampling_rate=feature_extractor.sampling_rate, padding=True, return_tensors="pt")
logits = model(**inputs).logits
✨ 主要特性
- 针对性设计:专门为非语言人类数据打造,在非语言音频处理方面具有独特优势。
- 丰富数据集训练:使用了10个数据集进行预训练,涵盖约125小时的非语言音频,模型泛化能力强。
📚 详细文档
模型描述
Voc2vec基于wav2vec 2.0框架构建,并遵循其预训练设置。预训练数据集包括:AudioSet(发声)、FreeSound(婴儿声音)、HumanVoiceDataset、NNIME、NonSpeech7K、ReCANVo、SingingDatabase、TUT(婴儿声音)、VocalSketch、VocalSound。该模型从一个最初在Audioset数据集上训练的模型继续进行预训练。
任务和数据集描述
我们在六个数据集上评估了voc2vec-as-pt:ASVP-ESD、ASPV-ESD(婴儿)、CNVVE、非语言发声数据集、Donate a Cry、VIVAE。
下表报告了上述六个数据集上未加权平均召回率(UAR)和F1宏观指标的平均性能。
模型 |
架构 |
预训练数据集 |
UAR |
F1宏观指标 |
voc2vec |
wav2vec 2.0 |
Voc125 |
.612±.212 |
.580±.230 |
voc2vec-as-pt |
wav2vec 2.0 |
AudioSet + Voc125 |
.603±.183 |
.574±.194 |
voc2vec-ls-pt |
wav2vec 2.0 |
LibriSpeech + Voc125 |
.661±.206 |
.636±.223 |
voc2vec-hubert-ls-pt |
HuBERT |
LibriSpeech + Voc125 |
.696±.189 |
.678±.200 |
可用模型
模型 |
描述 |
链接 |
voc2vec |
在125小时非语言音频上预训练的模型。 |
🔗 模型 |
voc2vec-as-pt |
从一个最初在AudioSet数据集上训练的类似wav2vec2的模型继续预训练。 |
🔗 模型 |
voc2vec-ls-pt |
从一个最初在LibriSpeech数据集上训练的类似wav2vec2的模型继续预训练。 |
🔗 模型 |
voc2vec-hubert-ls-pt |
从一个最初在LibriSpeech数据集上训练的类似hubert的模型继续预训练。 |
🔗 模型 |
💻 使用示例
基础用法
import torch
import librosa
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor
audio_array, sr = librosa.load("path_to_audio.wav", sr=16000)
model = AutoModelForAudioClassification.from_pretrained("alkiskoudounas/voc2vec-as-pt")
feature_extractor = AutoFeatureExtractor.from_pretrained("alkiskoudounas/voc2vec-as-pt")
inputs = feature_extractor(audio_array.squeeze(), sampling_rate=feature_extractor.sampling_rate, padding=True, return_tensors="pt")
logits = model(**inputs).logits
📄 许可证
本项目采用Apache-2.0许可证。
📖 BibTeX引用和引用信息
@INPROCEEDINGS{koudounas2025icassp,
author={Koudounas, Alkis and La Quatra, Moreno and Siniscalchi, Sabato Marco and Baralis, Elena},
booktitle={ICASSP 2025 - 2025 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
title={voc2vec: A Foundation Model for Non-Verbal Vocalization},
year={2025},
volume={},
number={},
pages={1-5},
keywords={Pediatrics;Accuracy;Foundation models;Benchmark testing;Signal processing;Data models;Acoustics;Speech processing;Nonverbal vocalization;Representation Learning;Self-Supervised Models;Pre-trained Models},
doi={10.1109/ICASSP49660.2025.10890672}}