Transformers 文件
CLAP
並獲得增強的文件體驗
開始使用
CLAP
概述
CLAP 模型由 Yusong Wu、Ke Chen、Tianyu Zhang、Yuchen Hui、Taylor Berg-Kirkpatrick 和 Shlomo Dubnov 在論文 Large Scale Contrastive Language-Audio pretraining with feature fusion and keyword-to-caption augmentation 中提出。
CLAP(Contrastive Language-Audio Pretraining,對比語言-音訊預訓練)是一個在多種(音訊,文字)對上訓練的神經網路。它可以被指示在給定音訊的情況下預測最相關的文字片段,而無需直接為該任務進行最佳化。CLAP 模型使用 SWINTransformer 從對數-梅爾頻譜圖輸入中獲取音訊特徵,並使用 RoBERTa 模型獲取文字特徵。然後,文字和音訊特徵都被投影到一個具有相同維度的潛在空間。投影后的音訊和文字特徵之間的點積被用作相似度分數。
論文摘要如下:
對比學習在多模態表示學習領域取得了顯著成功。在本文中,我們提出了一種對比語言-音訊預訓練的流程,透過將音訊資料與自然語言描述相結合來開發音訊表示。為實現這一目標,我們首先發布了 LAION-Audio-630K,這是一個包含 633,526 個來自不同資料來源的音訊-文字對的大型集合。其次,我們透過考慮不同的音訊編碼器和文字編碼器,構建了一個對比語言-音訊預訓練模型。我們在模型設計中加入了特徵融合機制和關鍵詞到標題的增強,以進一步使模型能夠處理可變長度的音訊輸入並提升效能。第三,我們進行了全面的實驗,在三個任務上評估我們的模型:文字到音訊檢索、零樣本音訊分類和有監督音訊分類。結果表明,我們的模型在文字到音訊檢索任務中取得了優越的效能。在音訊分類任務中,該模型在零樣本設定下達到了最先進的效能,並能夠在非零樣本設定下獲得與模型結果相當的效能。LAION-Audio-6
該模型由 Younes Belkada 和 Arthur Zucker 貢獻。原始程式碼可在此處找到。
ClapConfig
class transformers.ClapConfig
< 來源 >( text_config = None audio_config = None logit_scale_init_value = 14.285714285714285 projection_dim = 512 projection_hidden_act = 'relu' initializer_factor = 1.0 **kwargs )
引數
- text_config (
dict
, 可選) — 用於初始化 ClapTextConfig 的配置選項字典。 - audio_config (
dict
, 可選) — 用於初始化 ClapAudioConfig 的配置選項字典。 - logit_scale_init_value (
float
, 可選, 預設為 14.29) — logit_scale 引數的初始值。預設值根據原始 CLAP 實現使用。 - projection_dim (
int
, 可選, 預設為 512) — 文字和音訊投影層的維度。 - projection_hidden_act (
str
, 可選, 預設為"relu"
) — 投影層的啟用函式。 - initializer_factor (
float
, 可選, 預設為 1.0) — 用於縮放模型權重初始化的因子。 - kwargs (可選) — 關鍵字引數字典。
ClapConfig 是用於儲存 ClapModel 配置的配置類。它用於根據指定的引數例項化一個 CLAP 模型,定義文字模型和音訊模型的配置。使用預設值例項化配置將產生與 CLAP laion/clap-htsat-fused 架構相似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。
示例
>>> from transformers import ClapConfig, ClapModel
>>> # Initializing a ClapConfig with laion-ai/base style configuration
>>> configuration = ClapConfig()
>>> # Initializing a ClapModel (with random weights) from the laion-ai/base style configuration
>>> model = ClapModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
>>> # We can also initialize a ClapConfig from a ClapTextConfig and a ClapAudioConfig
>>> from transformers import ClapTextConfig, ClapAudioConfig
>>> # Initializing a ClapText and ClapAudioConfig configuration
>>> config_text = ClapTextConfig()
>>> config_audio = ClapAudioConfig()
>>> config = ClapConfig.from_text_audio_configs(config_text, config_audio)
from_text_audio_configs
< 來源 >( text_config: ClapTextConfig audio_config: ClapAudioConfig **kwargs ) → ClapConfig
從 clap 文字模型配置和 clap 音訊模型配置例項化一個 ClapConfig(或其派生類)。
ClapTextConfig
class transformers.ClapTextConfig
< 來源 >( vocab_size = 50265 hidden_size = 768 num_hidden_layers = 12 num_attention_heads = 12 intermediate_size = 3072 hidden_act = 'gelu' hidden_dropout_prob = 0.1 attention_probs_dropout_prob = 0.1 max_position_embeddings = 514 type_vocab_size = 1 initializer_factor = 1.0 layer_norm_eps = 1e-12 projection_dim = 512 pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 position_embedding_type = 'absolute' use_cache = True projection_hidden_act = 'relu' **kwargs )
引數
- vocab_size (
int
, 可選, 預設為 30522) — CLAP 模型的詞彙表大小。定義了在呼叫 ClapTextModel 時,可以透過inputs_ids
表示的不同 token 的數量。 - hidden_size (
int
, 可選, 預設為 768) — 編碼器層和池化層的維度。 - num_hidden_layers (
int
, 可選, 預設為 12) — Transformer 編碼器中的隱藏層數量。 - num_attention_heads (
int
, 可選, 預設為 12) — Transformer 編碼器中每個注意力層的注意力頭數量。 - intermediate_size (
int
, 可選, 預設為 3072) — Transformer 編碼器中“中間”層(通常稱為前饋層)的維度。 - hidden_act (
str
或Callable
, 可選, 預設為"relu"
) — 編碼器和池化層中的非線性啟用函式(函式或字串)。如果為字串,支援"relu"
、"relu"
、"silu"
和"relu_new"
。 - hidden_dropout_prob (
float
, 可選, 預設為 0.1) — 嵌入、編碼器和池化層中所有全連線層的丟棄機率。 - attention_probs_dropout_prob (
float
, 可選, 預設為 0.1) — 注意力機率的丟棄率。 - max_position_embeddings (
int
, 可選, 預設為 512) — 該模型可能使用的最大序列長度。通常將其設定為一個較大的值以防萬一(例如 512、1024 或 2048)。 - type_vocab_size (
int
, 可選, 預設為 2) — 呼叫 ClapTextModel 時傳入的token_type_ids
的詞彙表大小。 - layer_norm_eps (
float
, 可選, 預設為 1e-12) — 層歸一化層使用的 epsilon 值。 - position_embedding_type (
str
, 可選, 預設為"absolute"
) — 位置嵌入的型別。從"absolute"
,"relative_key"
,"relative_key_query"
中選擇一個。對於位置嵌入,請使用"absolute"
。有關"relative_key"
的更多資訊,請參閱 Self-Attention with Relative Position Representations (Shaw et al.)。有關"relative_key_query"
的更多資訊,請參閱 Improve Transformer Models with Better Relative Position Embeddings (Huang et al.) 中的 Method 4。 - is_decoder (
bool
, 可選, 預設為False
) — 模型是否用作解碼器。如果為False
,則模型用作編碼器。 - use_cache (
bool
, 可選, 預設為True
) — 模型是否應返回最後的鍵/值注意力(並非所有模型都使用)。僅當config.is_decoder=True
時相關。 - projection_hidden_act (
str
, 可選, 預設為"relu"
) — 投影層中的非線性啟用函式(函式或字串)。如果為字串,支援"gelu"
、"relu"
、"silu"
和"gelu_new"
。 - projection_dim (
int
, 可選, 預設為 512) —ClapTextModelWithProjection
投影頭的維度。
這是用於儲存 ClapTextModel 配置的配置類。它用於根據指定的引數例項化一個 CLAP 模型,定義模型架構。使用預設值例項化配置將產生與 CLAP calp-hsat-fused 架構相似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。
示例
>>> from transformers import ClapTextConfig, ClapTextModel
>>> # Initializing a CLAP text configuration
>>> configuration = ClapTextConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = ClapTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
ClapAudioConfig
class transformers.ClapAudioConfig
< 來源 >( window_size = 8 num_mel_bins = 64 spec_size = 256 hidden_act = 'gelu' patch_size = 4 patch_stride = [4, 4] num_classes = 527 hidden_size = 768 projection_dim = 512 depths = [2, 2, 6, 2] num_attention_heads = [4, 8, 16, 32] enable_fusion = False hidden_dropout_prob = 0.1 fusion_type = None patch_embed_input_channels = 1 flatten_patch_embeds = True patch_embeds_hidden_size = 96 enable_patch_layer_norm = True drop_path_rate = 0.0 attention_probs_dropout_prob = 0.0 qkv_bias = True mlp_ratio = 4.0 aff_block_r = 4 num_hidden_layers = 4 projection_hidden_act = 'relu' layer_norm_eps = 1e-05 initializer_factor = 1.0 **kwargs )
引數
- window_size (
int
, 可選, 預設為 8) — 頻譜圖的影像大小 - num_mel_bins (
int
, 可選, 預設為 64) — 每幀使用的梅爾特徵數量。應與 `ClapProcessor` 類中使用的值相對應。 - spec_size (
int
, 可選, 預設為 256) — 模型支援的頻譜圖的期望輸入大小。它可以與 `ClapFeatureExtractor` 的輸出不同,在這種情況下,輸入特徵將被調整大小。對應於音訊模型的 `image_size`。 - hidden_act (
str
, 可選, 預設為"gelu"
) — 編碼器和池化層中的非線性啟用函式(函式或字串)。如果為字串,支援"gelu"
、"relu"
、"silu"
和"gelu_new"
。 - patch_size (
int
, 可選, 預設為 4) — 音訊頻譜圖的補丁大小 - patch_stride (
list
, 可選, 預設為[4, 4]
) — 音訊頻譜圖的補丁步長 - num_classes (
int
, 可選, 預設為 527) — 用於頭訓練的類別數量 - hidden_size (
int
, 可選, 預設為 768) — 音訊編碼器輸出的隱藏大小。對應於倒數第二層輸出的維度,該輸出被髮送到投影 MLP 層。 - projection_dim (
int
, 可選, 預設為 512) — 投影層的隱藏大小。 - depths (
list
, 可選, 預設為[2, 2, 6, 2]
) — 用於音訊模型的 Swin 層的深度。 - num_attention_heads (
list
, 可選, 預設為[4, 8, 16, 32]
) — 用於音訊模型的 Swin 層的注意力頭數量。 - enable_fusion (
bool
, 可選, 預設為False
) — 是否啟用補丁融合 (patch fusion)。這是原作者的主要貢獻,應能獲得最佳結果。 - hidden_dropout_prob (
float
, 可選, 預設為 0.1) — 編碼器中所有全連線層的丟棄機率。 - fusion_type (
[type]
, 可選) — 用於補丁融合的融合型別。 - patch_embed_input_channels (
int
, 可選, 預設為 1) — 用於輸入頻譜圖的通道數。 - flatten_patch_embeds (
bool
, 可選, 預設為True
) — 是否將補丁嵌入展平。 - patch_embeds_hidden_size (
int
, 可選, 預設為 96) — 補丁嵌入的隱藏大小。它用作輸出通道的數量。 - enable_patch_layer_norm (
bool
, 可選, 預設為True
) — 是否為補丁嵌入啟用層歸一化。 - drop_path_rate (
float
, 可選, 預設為 0.0) — 補丁融合的路徑丟棄率。 - attention_probs_dropout_prob (
float
, 可選, 預設為 0.0) — 注意力機率的丟棄率。 - qkv_bias (
bool
, 可選, 預設為True
) — 是否為查詢 (query)、鍵 (key)、值 (value) 投影新增偏置。 - mlp_ratio (
float
, 可選, 預設為 4.0) — MLP 隱藏維度與嵌入維度的比率。 - aff_block_r (
int
, 可選, 預設為 4) — AudioFF 塊中使用的縮小比例 (downsize_ratio)。 - num_hidden_layers (
int
, 可選, 預設為 4) — Transformer 編碼器中的隱藏層數量。 - projection_hidden_act (
str
, 可選, 預設為"relu"
) — 投影層中的非線性啟用函式(函式或字串)。如果為字串,則支援"gelu"
、"relu"
、"silu"
和"gelu_new"
。 - layer_norm_eps (
[type]
, 可選, 預設為 1e-05) — 層歸一化層使用的 epsilon 值。 - initializer_factor (
float
, 可選, 預設為 1.0) — 初始化所有權重矩陣的因子(應保持為 1,內部用於初始化測試)。
這是一個用於儲存 ClapAudioModel 配置的配置類。它根據指定的引數來例項化一個 CLAP 音訊編碼器,定義了模型架構。使用預設值例項化配置將產生與 CLAP laion/clap-htsat-fused 架構的音訊編碼器相似的配置。
配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。
示例
>>> from transformers import ClapAudioConfig, ClapAudioModel
>>> # Initializing a ClapAudioConfig with laion/clap-htsat-fused style configuration
>>> configuration = ClapAudioConfig()
>>> # Initializing a ClapAudioModel (with random weights) from the laion/clap-htsat-fused style configuration
>>> model = ClapAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
ClapFeatureExtractor
class transformers.ClapFeatureExtractor
< 源 >( feature_size = 64 sampling_rate = 48000 hop_length = 480 max_length_s = 10 fft_window_size = 1024 padding_value = 0.0 return_attention_mask = False frequency_min: float = 0 frequency_max: float = 14000 top_db: typing.Optional[int] = None truncation: str = 'fusion' padding: str = 'repeatpad' **kwargs )
引數
- feature_size (
int
, 可選, 預設為 64) — 提取的梅爾頻譜圖的特徵維度。這對應於梅爾濾波器的數量(n_mels
)。 - sampling_rate (
int
, 可選, 預設為 48000) — 音訊檔案數字化的取樣率,以赫茲 (Hz) 表示。這僅用於警告使用者,如果輸入到特徵提取器的音訊取樣率不同。 - hop_length (
int
,可選, 預設為 480) — 用於獲取梅爾頻譜圖的 STFT 重疊視窗的長度。音訊將被分割成較小的frames
,每個幀之間的步長為hop_length
。 - max_length_s (
int
, 可選, 預設為 10) — 模型的最大輸入長度(以秒為單位)。用於填充音訊。 - fft_window_size (
int
, 可選, 預設為 1024) — 應用傅立葉變換的視窗大小(以樣本為單位)。這控制頻譜圖的頻率解析度。400 表示在 400 個樣本的視窗上計算傅立葉變換。 - padding_value (
float
, 可選, 預設為 0.0) — 用於填充音訊的填充值。應對應於靜音。 - return_attention_mask (
bool
, 可選, 預設為False
) — 模型是否應返回與輸入相對應的注意力掩碼。 - frequency_min (
float
, 可選, 預設為 0) — 感興趣的最低頻率。低於此值的 STFT 將不會計算。 - frequency_max (
float
, 可選, 預設為 14000) — 感興趣的最高頻率。高於此值的 STFT 將不會計算。 - top_db (
float
, 可選) — 用於將梅爾頻譜圖轉換為對數尺度的最高分貝值。更多細節請參見audio_utils.power_to_db
函式。 - truncation (
str
, 可選, 預設為"fusion"
) — 長音訊輸入的截斷模式。有兩種模式可用:fusion
將使用_random_mel_fusion
,它會堆疊來自梅爾頻譜圖的 3 個隨機裁剪和一個整個梅爾頻譜圖的下采樣版本。如果config.fusion
設定為 True,較短的音訊也需要返回 4 個梅爾頻譜圖,它們將只是從填充音訊中獲得的原始梅爾頻譜圖的副本。rand_trunc
將選擇梅爾頻譜圖的一個隨機裁剪。
- padding (
str
, 可選, 預設為"repeatpad"
) — 短音訊輸入的填充模式。最初實現了三種模式:repeatpad
:音訊被重複,然後填充以適應max_length
。repeat
:音訊被重複,然後剪下以適應max_length
。pad
:音訊被填充。
構建一個 CLAP 特徵提取器。
該特徵提取器繼承自 SequenceFeatureExtractor,其中包含大部分主要方法。使用者應參考該超類以獲取有關這些方法的更多資訊。
該類使用短時傅立葉變換 (STFT) 的自定義 numpy 實現從原始語音中提取梅爾濾波器組特徵,該實現應與 pytorch 的 torch.stft
等效。
將此例項序列化為 Python 字典。
ClapProcessor
class transformers.ClapProcessor
< 源 >( feature_extractor tokenizer )
引數
- feature_extractor (ClapFeatureExtractor) — 音訊處理器是必需的輸入。
- tokenizer (RobertaTokenizerFast) — 分詞器是必需的輸入。
構建一個 CLAP 處理器,它將 CLAP 特徵提取器和 RoBerta 分詞器包裝成一個單一的處理器。
ClapProcessor 提供了 ClapFeatureExtractor 和 RobertaTokenizerFast 的所有功能。請參閱 __call__()
和 decode() 瞭解更多資訊。
此方法將其所有引數轉發給 RobertaTokenizerFast 的 batch_decode()。有關更多資訊,請參閱該方法的文件字串。
ClapModel
class transformers.ClapModel
< 源 >( config: ClapConfig )
引數
- config (ClapConfig) — 模型配置類,包含模型的所有引數。使用配置檔案初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。
基礎的 Clap 模型,輸出原始的隱藏狀態,頂部沒有任何特定的頭。
此模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。
該模型也是 PyTorch torch.nn.Module 的子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。
forward
< 源 >( input_ids: typing.Optional[torch.LongTensor] = None input_features: typing.Optional[torch.FloatTensor] = None is_longer: typing.Optional[torch.BoolTensor] = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.LongTensor] = None return_loss: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.models.clap.modeling_clap.ClapOutput
or tuple(torch.FloatTensor)
引數
- input_ids (
torch.LongTensor
, 形狀為(batch_size, sequence_length)
, 可選) — 詞彙表中輸入序列標記的索引。預設情況下,填充將被忽略。可以使用 AutoTokenizer 獲取索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- input_features (
torch.FloatTensor
, 形狀為(batch_size, num_channels, height, width)
) — 輸入音訊特徵。這應由 ClapFeatureExtractor 類返回,您也可以從 AutoFeatureExtractor 中檢索。有關詳細資訊,請參閱ClapFeatureExtractor.__call__()
。 - is_longer (
torch.FloatTensor
, 形狀為(batch_size, 1)
, 可選) — 音訊剪輯是否長於max_length
。如果為True
,將啟用特徵融合以增強特徵。 - attention_mask (
torch.Tensor
, 形狀為(batch_size, sequence_length)
, 可選) — 避免對填充標記索引執行注意力的掩碼。掩碼值選擇在[0, 1]
中:- 1 表示 未被遮蔽 的標記,
- 0 表示 被遮蔽 的標記。
- position_ids (
torch.LongTensor
,形狀為(batch_size, sequence_length)
,可選) — 位置嵌入中每個輸入序列詞元的位置索引。在[0, config.n_positions - 1]
範圍內選擇。 - return_loss (
bool
,可選) — 是否返回對比損失。 - output_attentions (
bool
,可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
,可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
,可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
transformers.models.clap.modeling_clap.ClapOutput
或 tuple(torch.FloatTensor)
一個 transformers.models.clap.modeling_clap.ClapOutput
或一個 torch.FloatTensor
的元組 (如果傳遞了 return_dict=False
或當 config.return_dict=False
時),根據配置 (ClapConfig) 和輸入包含不同的元素。
- loss (
torch.FloatTensor
,形狀為(1,)
,可選,當return_loss
為True
時返回) — 音訊-文字相似度的對比損失。 - logits_per_audio (
torch.FloatTensor
,形狀為(audio_batch_size, text_batch_size)
) —audio_embeds
和text_embeds
之間的縮放點積得分。這表示音訊-文字相似度得分。 - logits_per_text (
torch.FloatTensor
,形狀為(text_batch_size, audio_batch_size)
) —text_embeds
和audio_embeds
之間的縮放點積得分。這表示文字-音訊相似度得分。 - text_embeds (
torch.FloatTensor
,形狀為(batch_size, output_dim)
) — 透過將投影層應用於 ClapTextModel 的池化輸出而獲得的文字嵌入。 - audio_embeds (
torch.FloatTensor
,形狀為(batch_size, output_dim)
) — 透過將投影層應用於 ClapAudioModel 的池化輸出而獲得的音訊嵌入。 - text_model_output (
<class '~modeling_outputs.BaseModelOutputWithPooling'>.text_model_output
,預設為None
) — ClapTextModel 的輸出。 - audio_model_output (
<class '~modeling_outputs.BaseModelOutputWithPooling'>.audio_model_output
,預設為None
) — ClapAudioModel 的輸出。
ClapModel 的前向方法,重寫了 __call__
特殊方法。
儘管前向傳遞的配方需要在此函式中定義,但之後應該呼叫 Module
例項而不是這個函式,因為前者負責執行預處理和後處理步驟,而後者會靜默地忽略它們。
示例
>>> from datasets import load_dataset
>>> from transformers import AutoProcessor, ClapModel
>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-unfused")
>>> input_text = ["Sound of a dog", "Sound of vaccum cleaner"]
>>> inputs = processor(text=input_text, audios=audio_sample, return_tensors="pt", padding=True)
>>> outputs = model(**inputs)
>>> logits_per_audio = outputs.logits_per_audio # this is the audio-text similarity score
>>> probs = logits_per_audio.softmax(dim=-1) # we can take the softmax to get the label probabilities
get_text_features
< 原始碼 >( input_ids: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → text_features (torch.FloatTensor
,形狀為 (batch_size, output_dim)
)
引數
- input_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 詞彙表中輸入序列詞元的索引。預設情況下將忽略填充。可以使用 AutoTokenizer 獲得索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於避免在填充詞元索引上執行注意力的掩碼。掩碼值在[0, 1]
中選擇:- 1 表示詞元未被掩碼,
- 0 表示詞元被掩碼。
- position_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 位置嵌入中每個輸入序列詞元的位置索引。在[0, config.n_positions - 1]
範圍內選擇。 - output_attentions (
bool
,可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
,可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
,可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
text_features (torch.FloatTensor
, 形狀為 (batch_size, output_dim
)
透過將投影層應用於 ClapTextModel 的池化輸出而獲得的文字嵌入。
示例
>>> from transformers import AutoTokenizer, ClapModel
>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused")
>>> inputs = tokenizer(["the sound of a cat", "the sound of a dog"], padding=True, return_tensors="pt")
>>> text_features = model.get_text_features(**inputs)
get_audio_features
< 原始碼 >( input_features: typing.Optional[torch.Tensor] = None is_longer: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → audio_features (torch.FloatTensor
,形狀為 (batch_size, output_dim)
)
引數
- input_features (
torch.FloatTensor
,形狀為(batch_size, num_channels, height, width)
) — 輸入音訊特徵。這應該由 ClapFeatureExtractor 類返回,你也可以從 AutoFeatureExtractor 獲取。有關詳細資訊,請參閱ClapFeatureExtractor.__call__()
。 - is_longer (
torch.FloatTensor
,形狀為(batch_size, 1)
,可選) — 音訊剪輯是否長於max_length
。如果為True
,將啟用特徵融合以增強特徵。 - attention_mask (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於避免在填充詞元索引上執行注意力的掩碼。掩碼值在[0, 1]
中選擇:- 1 表示詞元未被掩碼,
- 0 表示詞元被掩碼。
- output_attentions (
bool
,可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
,可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
,可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
audio_features (torch.FloatTensor
,形狀為 (batch_size, output_dim)
)
透過將投影層應用於 ClapAudioModel 的池化輸出而獲得的音訊嵌入。
示例
>>> from transformers import AutoFeatureExtractor, ClapModel
>>> import torch
>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("laion/clap-htsat-unfused")
>>> random_audio = torch.rand((16_000))
>>> inputs = feature_extractor(random_audio, return_tensors="pt")
>>> audio_features = model.get_audio_features(**inputs)
ClapTextModel
class transformers.ClapTextModel
< 原始碼 >( config add_pooling_layer = True )
引數
- config (ClapTextModel) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,只會載入配置。請檢視 from_pretrained() 方法以載入模型權重。
- add_pooling_layer (
bool
,可選,預設為True
) — 是否新增池化層。
該模型既可以作為編碼器(僅使用自注意力),也可以作為解碼器。在作為解碼器的情況下,會在自注意力層之間新增一個交叉注意力層,遵循 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser 和 Illia Polosukhin 在 Attention is all you need_ 中描述的架構。
要作為解碼器使用,模型需要在初始化時將配置的 is_decoder
引數設定為 True
。要在 Seq2Seq 模型中使用,模型需要在初始化時將 is_decoder
引數和 add_cross_attention
都設定為 True
;然後,在前向傳遞中需要一個 encoder_hidden_states
作為輸入。
.. _Attention is all you need: https://huggingface.co/papers/1706.03762
此模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。
該模型也是 PyTorch torch.nn.Module 的子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。
forward
< 原始碼 >( input_ids: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None token_type_ids: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.Tensor] = None head_mask: typing.Optional[torch.Tensor] = None inputs_embeds: typing.Optional[torch.Tensor] = None encoder_hidden_states: typing.Optional[torch.Tensor] = None encoder_attention_mask: typing.Optional[torch.Tensor] = None past_key_values: typing.Optional[list[torch.FloatTensor]] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或 tuple(torch.FloatTensor)
引數
- input_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 詞彙表中輸入序列詞元的索引。預設情況下將忽略填充。可以使用 AutoTokenizer 獲得索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於避免在填充詞元索引上執行注意力的掩碼。掩碼值在[0, 1]
中選擇:- 1 表示詞元未被掩碼,
- 0 表示詞元被掩碼。
- token_type_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於指示輸入的第一部分和第二部分的段詞元索引。索引在[0, 1]
中選擇:- 0 對應於 *A 句* 詞元,
- 1 對應於 *B 句* 詞元。
- position_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 位置嵌入中每個輸入序列詞元的位置索引。在[0, config.n_positions - 1]
範圍內選擇。 - head_mask (
torch.Tensor
,形狀為(num_heads,)
或(num_layers, num_heads)
,可選) — 用於置零自注意力模組中選定頭的掩碼。掩碼值在[0, 1]
中選擇:- 1 表示頭未被掩碼,
- 0 表示頭被掩碼。
- inputs_embeds (
torch.Tensor
,形狀為(batch_size, sequence_length, hidden_size)
,可選) — 可選地,你可以選擇直接傳遞嵌入表示,而不是傳遞input_ids
。如果你想比模型內部的嵌入查詢矩陣更好地控制如何將input_ids
索引轉換為關聯向量,這將非常有用。 - encoder_hidden_states (
torch.Tensor
,形狀為(batch_size, sequence_length, hidden_size)
,可選) — 編碼器最後一層輸出的隱藏狀態序列。如果模型被配置為解碼器,則用於交叉注意力。 - encoder_attention_mask (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於避免對編碼器輸入的填充詞元索引執行注意力的掩碼。如果模型被配置為解碼器,則此掩碼用於交叉注意力。掩碼值在[0, 1]
中選擇:- 1 表示詞元未被掩碼,
- 0 表示詞元被掩碼。
- past_key_values (
list[torch.FloatTensor]
,可選) — 預先計算的隱藏狀態(自注意力塊和交叉注意力塊中的鍵和值),可用於加速順序解碼。這通常是在解碼的前一個階段由模型返回的past_key_values
,當use_cache=True
或config.use_cache=True
時。允許兩種格式:
- 一個 Cache 例項,請參閱我們的 kv 快取指南;
- 長度為
config.n_layers
的tuple(torch.FloatTensor)
的元組,每個元組有兩個形狀為(batch_size, num_heads, sequence_length, embed_size_per_head)
的張量。這也稱為傳統快取格式。
模型將輸出與輸入相同的快取格式。如果未傳遞
past_key_values
,則將返回傳統快取格式。如果使用
past_key_values
,使用者可以選擇只輸入最後一個input_ids
(那些沒有給出其過去鍵值狀態給此模型的詞元),形狀為(batch_size, 1)
,而不是所有形狀為(batch_size, sequence_length)
的input_ids
。 - use_cache (
bool
,可選) — 如果設定為True
,則返回past_key_values
鍵值狀態,並可用於加速解碼(請參閱past_key_values
)。 - output_attentions (
bool
,可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
,可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
,可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或 tuple(torch.FloatTensor)
一個 transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或一個 torch.FloatTensor
的元組 (如果傳遞了 return_dict=False
或當 config.return_dict=False
時),根據配置 (ClapConfig) 和輸入包含不同的元素。
-
last_hidden_state (
torch.FloatTensor
, 形狀為(batch_size, sequence_length, hidden_size)
) — 模型最後一層輸出的隱藏狀態序列。 -
pooler_output (
torch.FloatTensor
,形狀為(batch_size, hidden_size)
) — 序列的第一個詞元(分類詞元)的最後一層隱藏狀態,經過用於輔助預訓練任務的層進一步處理。例如,對於 BERT 系列模型,這將返回經過線性層和 tanh 啟用函式處理後的分類詞元。線性層權重是在預訓練期間從下一句預測(分類)目標中訓練的。 -
hidden_states (
tuple(torch.FloatTensor)
,可選,當傳遞output_hidden_states=True
或當config.output_hidden_states=True
時返回) —torch.FloatTensor
的元組(如果模型有嵌入層,則一個用於嵌入層的輸出,+ 每個層一個用於其輸出),形狀為(batch_size, sequence_length, hidden_size)
。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
-
attentions (
tuple(torch.FloatTensor)
,可選,當傳遞output_attentions=True
或當config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每層一個),形狀為(batch_size, num_heads, sequence_length, sequence_length)
。注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。
-
cross_attentions (
tuple(torch.FloatTensor)
,可選,當傳遞output_attentions=True
且config.add_cross_attention=True
或當config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每層一個),形狀為(batch_size, num_heads, sequence_length, sequence_length)
。解碼器交叉注意力層的注意力權重,在注意力 softmax 之後,用於計算交叉注意力頭中的加權平均。
-
past_key_values (
Cache
,可選,當傳遞use_cache=True
或當config.use_cache=True
時返回) — 這是一個 Cache 例項。有關更多詳細資訊,請參閱我們的 kv 快取指南。包含預先計算的隱藏狀態(自注意力塊中的鍵和值,以及如果
config.is_encoder_decoder=True
,則在交叉注意力塊中),可用於(參見past_key_values
輸入)加速順序解碼。
ClapTextModel 的前向方法,重寫了 __call__
特殊方法。
儘管前向傳遞的配方需要在此函式中定義,但之後應該呼叫 Module
例項而不是這個函式,因為前者負責執行預處理和後處理步驟,而後者會靜默地忽略它們。
ClapTextModelWithProjection
class transformers.ClapTextModelWithProjection
< 原始碼 >( config: ClapTextConfig )
引數
- config (ClapTextConfig) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,只會載入配置。請檢視 from_pretrained() 方法以載入模型權重。
頂部帶有投影層的 Clap 模型(在池化輸出之上有一個線性層)。
此模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。
該模型也是 PyTorch torch.nn.Module 的子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。
forward
< 原始碼 >( input_ids: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.models.clap.modeling_clap.ClapTextModelOutput
或 tuple(torch.FloatTensor)
引數
- input_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 詞彙表中輸入序列詞元的索引。預設情況下將忽略填充。可以使用 AutoTokenizer 獲得索引。有關詳細資訊,請參閱 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 用於避免在填充詞元索引上執行注意力的掩碼。掩碼值在[0, 1]
中選擇:- 1 表示詞元未被掩碼,
- 0 表示詞元被掩碼。
- position_ids (
torch.Tensor
,形狀為(batch_size, sequence_length)
,可選) — 位置嵌入中每個輸入序列詞元的位置索引。在[0, config.n_positions - 1]
範圍內選擇。 - output_attentions (
bool
,可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的attentions
。 - output_hidden_states (
bool
,可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的hidden_states
。 - return_dict (
bool
,可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
transformers.models.clap.modeling_clap.ClapTextModelOutput
或 tuple(torch.FloatTensor)
一個 transformers.models.clap.modeling_clap.ClapTextModelOutput
或一個 torch.FloatTensor
的元組(如果傳遞了 return_dict=False
或當 config.return_dict=False
時),根據配置(ClapConfig)和輸入,包含各種元素。
-
text_embeds (
torch.FloatTensor
,形狀為(batch_size, output_dim)
,可選,當模型以with_projection=True
初始化時返回) — 透過將投影層應用於 pooler_output 獲得的文字嵌入。 -
last_hidden_state (形狀為
(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
, 可選,預設為None
) — 模型最後一層輸出的隱藏狀態序列。 -
hidden_states (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_hidden_states=True
或當config.output_hidden_states=True
時返回) —torch.FloatTensor
的元組(如果模型有嵌入層,則一個用於嵌入的輸出,另加每個層的一個輸出),形狀為(batch_size, sequence_length, hidden_size)
。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
-
attentions (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_attentions=True
或當config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每層一個),形狀為(batch_size, num_heads, sequence_length, sequence_length)
。注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。
ClapTextModelWithProjection 的 forward 方法會覆蓋 __call__
特殊方法。
儘管前向傳遞的配方需要在此函式中定義,但之後應該呼叫 Module
例項而不是這個函式,因為前者負責執行預處理和後處理步驟,而後者會靜默地忽略它們。
示例
>>> from transformers import AutoTokenizer, ClapTextModelWithProjection
>>> model = ClapTextModelWithProjection.from_pretrained("laion/clap-htsat-unfused")
>>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused")
>>> inputs = tokenizer(["a sound of a cat", "a sound of a dog"], padding=True, return_tensors="pt")
>>> outputs = model(**inputs)
>>> text_embeds = outputs.text_embeds
ClapAudioModel
forward
< 原始碼 >( input_features: typing.Optional[torch.FloatTensor] = None is_longer: typing.Optional[torch.BoolTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.modeling_outputs.BaseModelOutputWithPooling 或 tuple(torch.FloatTensor)
引數
- input_features (
torch.FloatTensor
,形狀為(batch_size, num_channels, height, width)
) — 輸入的音訊特徵。這應該由 ClapFeatureExtractor 類返回,你也可以從 AutoFeatureExtractor 中檢索到它。詳情請參閱ClapFeatureExtractor.__call__()
。 - is_longer (
torch.FloatTensor
,形狀為(batch_size, 1)
, 可選) — 音訊片段是否比max_length
長。如果為True
,將啟用特徵融合以增強特徵。 - output_attentions (
bool
, 可選) — 是否返回所有注意力層的注意力張量。更多細節請參閱返回張量下的attentions
。 - output_hidden_states (
bool
, 可選) — 是否返回所有層的隱藏狀態。更多細節請參閱返回張量下的hidden_states
。 - return_dict (
bool
, 可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
transformers.modeling_outputs.BaseModelOutputWithPooling 或 tuple(torch.FloatTensor)
一個 transformers.modeling_outputs.BaseModelOutputWithPooling 或一個 torch.FloatTensor
的元組(如果傳遞了 return_dict=False
或當 config.return_dict=False
時),根據配置(ClapConfig)和輸入,包含各種元素。
-
last_hidden_state (
torch.FloatTensor
, 形狀為(batch_size, sequence_length, hidden_size)
) — 模型最後一層輸出的隱藏狀態序列。 -
pooler_output (
torch.FloatTensor
,形狀為(batch_size, hidden_size)
) — 序列的第一個詞元(分類詞元)的最後一層隱藏狀態,經過用於輔助預訓練任務的層進一步處理。例如,對於 BERT 系列模型,這將返回經過線性層和 tanh 啟用函式處理後的分類詞元。線性層權重是在預訓練期間從下一句預測(分類)目標中訓練的。 -
hidden_states (
tuple(torch.FloatTensor)
,可選,當傳遞output_hidden_states=True
或當config.output_hidden_states=True
時返回) —torch.FloatTensor
的元組(如果模型有嵌入層,則一個用於嵌入層的輸出,+ 每個層一個用於其輸出),形狀為(batch_size, sequence_length, hidden_size)
。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
-
attentions (
tuple(torch.FloatTensor)
,可選,當傳遞output_attentions=True
或當config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每層一個),形狀為(batch_size, num_heads, sequence_length, sequence_length)
。注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。
ClapAudioModel 的 forward 方法會覆蓋 __call__
特殊方法。
儘管前向傳遞的配方需要在此函式中定義,但之後應該呼叫 Module
例項而不是這個函式,因為前者負責執行預處理和後處理步驟,而後者會靜默地忽略它們。
示例
>>> from datasets import load_dataset
>>> from transformers import AutoProcessor, ClapAudioModel
>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> model = ClapAudioModel.from_pretrained("laion/clap-htsat-fused")
>>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-fused")
>>> inputs = processor(audios=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
ClapAudioModelWithProjection
class transformers.ClapAudioModelWithProjection
< 原始碼 >( config: ClapAudioConfig )
引數
- config (ClapAudioConfig) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。
頂部帶有投影層的 Clap 模型(在池化輸出之上有一個線性層)。
此模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。
該模型也是 PyTorch torch.nn.Module 的子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。
forward
< 原始碼 >( input_features: typing.Optional[torch.FloatTensor] = None is_longer: typing.Optional[torch.BoolTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) → transformers.models.clap.modeling_clap.ClapAudioModelOutput
或 tuple(torch.FloatTensor)
引數
- input_features (
torch.FloatTensor
,形狀為(batch_size, num_channels, height, width)
) — 輸入的音訊特徵。這應該由 ClapFeatureExtractor 類返回,你也可以從 AutoFeatureExtractor 中檢索到它。詳情請參閱ClapFeatureExtractor.__call__()
。 - is_longer (
torch.FloatTensor
,形狀為(batch_size, 1)
, 可選) — 音訊片段是否比max_length
長。如果為True
,將啟用特徵融合以增強特徵。 - output_attentions (
bool
, 可選) — 是否返回所有注意力層的注意力張量。更多細節請參閱返回張量下的attentions
。 - output_hidden_states (
bool
, 可選) — 是否返回所有層的隱藏狀態。更多細節請參閱返回張量下的hidden_states
。 - return_dict (
bool
, 可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
返回
transformers.models.clap.modeling_clap.ClapAudioModelOutput
或 tuple(torch.FloatTensor)
一個 transformers.models.clap.modeling_clap.ClapAudioModelOutput
或一個 torch.FloatTensor
的元組(如果傳遞了 return_dict=False
或當 config.return_dict=False
時),根據配置(ClapConfig)和輸入,包含各種元素。
-
audio_embeds (
torch.FloatTensor
,形狀為(batch_size, hidden_size)
) — 透過將投影層應用於 pooler_output 獲得的音訊嵌入。 -
last_hidden_state (形狀為
(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
, 可選,預設為None
) — 模型最後一層輸出的隱藏狀態序列。 -
hidden_states (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_hidden_states=True
或當config.output_hidden_states=True
時返回) —torch.FloatTensor
的元組(如果模型有嵌入層,則一個用於嵌入的輸出,另加每個層的一個輸出),形狀為(batch_size, sequence_length, hidden_size)
。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。
-
attentions (
tuple[torch.FloatTensor, ...]
, 可選, 當傳遞output_attentions=True
或當config.output_attentions=True
時返回) —torch.FloatTensor
的元組(每層一個),形狀為(batch_size, num_heads, sequence_length, sequence_length)
。注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。
ClapAudioModelWithProjection 的 forward 方法會覆蓋 __call__
特殊方法。
儘管前向傳遞的配方需要在此函式中定義,但之後應該呼叫 Module
例項而不是這個函式,因為前者負責執行預處理和後處理步驟,而後者會靜默地忽略它們。
示例
>>> from datasets import load_dataset
>>> from transformers import ClapAudioModelWithProjection, ClapProcessor
>>> model = ClapAudioModelWithProjection.from_pretrained("laion/clap-htsat-fused")
>>> processor = ClapProcessor.from_pretrained("laion/clap-htsat-fused")
>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> inputs = processor(audios=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> audio_embeds = outputs.audio_embeds