CLAP HTSAT-unfused, exporte en ONNX
Export ONNX de laion/clap-htsat-unfused,
publie sous la licence de l'original (Apache-2.0). Sert a
NoiseKernel pour l'auto-tagging et la recherche semantique
de samples, en local et hors ligne.
Ceci est une redistribution, pas un modele nouveau. Les poids sont ceux de LAION ; seul le format change. LAION ne publie CLAP qu'en checkpoints PyTorch, et un moteur C++ qui embarquerait PyTorch pour lire quelques centaines de megaoctets de poids n'est pas une option sur telephone.
Fichiers
| Fichier | Taille | Role |
|---|---|---|
clap-audio.onnx |
116 Mo | Branche audio. Suffit a tagger et a « des sons comme celui-ci ». |
clap-text.onnx |
501 Mo | Branche texte. N'achete QUE la recherche en texte libre. |
vocab.json |
798 Ko | Tokenizer RoBERTa BPE, copie conforme de l'amont. |
merges.txt |
456 Ko | Idem. |
labelvec.bin |
172 Ko | Vecteurs des 86 labels de la taxonomie NoiseKernel. Specifique au projet. |
labelvec.bin est ce qui permet de tagger sans jamais charger la branche texte : les 86 vecteurs
de labels sont calcules une fois ici, au lieu d'exiger 501 Mo sur chaque appareil pour retrouver
exactement les memes.
Contrat mesure
entree audio input_features float32 (batch, 1, 1001, 64)
entree texte input_ids int64 (batch, tokens)
attention_mask int64 (batch, tokens)
sortie embedding float32 (batch, 512), DEJA normalise L2
Pre-traitement audio : 48 kHz, 64 mels, n_fft 1024, hop 480, fmin 50 Hz, fmax 14 kHz, clip de 10 s
(480 000 echantillons), echelle mel Slaney (pas HTK), fenetre de Hann periodique, padding par
reflexion, plancher 1e-10, sortie en dB.
is_longer, seconde entree du modele amont, est absorbee dans l'enveloppe : verifiee inerte sur
la variante unfused (ecart exactement nul). Cela ne vaut pas pour la variante fused.
Parite avec l'original
Verifiee dans un processus neuf, modele recharge depuis le disque : tracer un modele le laisse dans un etat qui n'est plus celui d'un chargement neuf, et une verification qui partage son processus avec l'export ne verifie pas l'export, elle verifie un souvenir.
audio ecart_max 3.390e-07 cos_min 1.000000
texte/9 ecart_max 6.221e-07 cos_min 1.000000
texte/16 ecart_max 6.650e-07 cos_min 1.000000
texte/64 ecart_max 5.364e-07 cos_min 1.000000
Reproduire cet export
L'artefact ne vaut que si quelqu'un peut le refaire depuis la source. Un binaire heberge sans son script de generation est une boite noire que personne ne peut auditer, y compris son auteur dans deux ans.
pip install torch transformers onnx onnxruntime numpy
tools/clap/export-clap.py --out build/clap # les quatre premiers fichiers
engine/build/rm_make_labelvec build/clap # labelvec.bin (taxonomie NoiseKernel)
Les deux outils sont dans le depot NoiseKernel. Le second depend de la taxonomie compilee : il refuse de relire une table qui ne correspond pas au vocabulaire courant, plutot que de laisser chaque son se voir poser l'etiquette de son voisin.
Provenance des donnees d'entrainement, sans enjoliver
CLAP est entraine sur LAION-Audio-630K, dont les clips portent des licences mixtes, et dont quatre sources achetees ne sont pas redistribuees. Les poids sont sous Apache-2.0 ; la chaine de droits des donnees en amont, elle, n'est pas auditee clip par clip.
Un avis juridique est requis avant toute commercialisation. Ce document n'en tient pas lieu.
Citer l'original
@inproceedings{laionclap2023,
title = {Large-scale Contrastive Language-Audio Pretraining with
Feature Fusion and Keyword-to-Caption Augmentation},
author = {Wu, Yusong and Chen, Ke and Zhang, Tianyu and Hui, Yuchen and
Berg-Kirkpatrick, Taylor and Dubnov, Shlomo},
booktitle = {IEEE International Conference on Acoustics, Speech and Signal Processing, ICASSP},
year = {2023}
}
Model tree for YashiruSoL/noisekernel-clap-onnx
Base model
laion/clap-htsat-unfused