# PE Audio

[PE Audio](https://huggingface.co/papers/2504.13181)は、MetaのPerception Encoderファミリーのオーディオ系モデルです。生波形とテキストを対照的にアラインして共有埋め込み空間にマッピングし、オーディオとキャプションのペアデータで学習することで、クロスモーダル検索とゼロショットのオーディオ分類を実現します。

同じエンコーダーの上に2つのヘッドが公開されています。[PeAudioModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioModel)はクリップレベルの検索用に1クリップあたり1つのプーリング済み埋め込みを返し、[PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel)はイベントの位置特定と細粒度の時間解析用に40 msごとに1つの埋め込みを返します。

公式のPE Audioチェックポイントはすべて、[perception-encoder-audio-visual](https://huggingface.co/collections/facebook/perception-encoder-audio-visual)コレクションの下で確認できます。

## クイックスタート

```py
import torch
from datasets import load_dataset
from transformers import AutoProcessor, PeAudioModel

processor = AutoProcessor.from_pretrained("facebook/pe-av-large")
model = PeAudioModel.from_pretrained(
    "facebook/pe-av-large",
    device_map="auto",
)

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = ds[0]["audio"]["array"]
labels = ["a dog barking", "a person speaking", "music playing"]

audio_inputs = processor.feature_extractor(audio, sampling_rate=48_000, return_tensors="pt").to(model.device)
text_inputs = processor.tokenizer(labels, padding=True, return_tensors="pt").to(model.device)
inputs = {**audio_inputs, **text_inputs}

with torch.no_grad():
    outputs = model(**inputs)

probs = outputs.logits_audio_text.sigmoid()
print({label: p.item() for label, p in zip(labels, probs[0])})
```

## 使用上のヒントと注意点

- Audio はモノラル (`feature_size=1`) である必要があります。また、48 kHz にリサンプリングされている必要があります。feature extractor は警告は出しますが、リサンプリングは行いません。ステレオ入力はサポートされていません。
- 可変長のオーディオは`padding_mask`（通常の`attention_mask`ではなく）で処理されます。マスクはエンコーダーに到達する前に`dac_config.hop_length`で内部的にダウンサンプリングされるため、特徴抽出器が返す生波形解像度のマスクを渡してください。
- [PeAudioModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioModel) は、形状が `(n_audio, n_text)` の logits を返します。[PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) は、40 ms ごとに 1 フレームとなる `(n_audio, n_text, n_frames)` を返します。タスクに合ったクラスを選択してください。両者は重みを共有しているため、切り替えのコストは低いです。
- テキストタワーは、`config.text_config` から `AutoModel` を介して読み込まれる共有エンコーダーです。トークナイザーは専用クラスではなく、`AutoTokenizer` を介してプロセッサーに接続されます。

## PeAudioConfig[[transformers.PeAudioConfig]]

#### transformers.PeAudioConfig[[transformers.PeAudioConfig]]

```python
transformers.PeAudioConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, audio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/configuration_pe_audio.py#L88)

**パラメータ:**

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *任意*) : テキストバックボーンの config オブジェクトまたは辞書。

audio_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *任意*) : 音声バックボーンの config オブジェクトまたは辞書。

これはPeAudioModelの設定を保存するための設定クラスです。指定された引数に基づいてPe Audioモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、[facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)と類似した設定が得られます。

設定オブジェクトは [PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) を継承し、モデルの出力を制御するために使用できます。詳細については、[PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) のドキュメントを参照してください。

例:

```python
>>> from transformers import PeAudioModel, PeAudioConfig

>>> # Initializing a PeAudioModel style configuration
>>> configuration = PeAudioConfig()

>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## PeAudioEncoderConfig[[transformers.PeAudioEncoderConfig]]

#### transformers.PeAudioEncoderConfig[[transformers.PeAudioEncoderConfig]]

```python
transformers.PeAudioEncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, dac_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, hidden_size: int = 1792, intermediate_size: int = 4800, num_hidden_layers: int = 6, num_attention_heads: int = 14, num_key_value_heads: int | None = None, head_dim: int = 128, hidden_act: str = 'silu', max_position_embeddings: int = 10000, initializer_range: float = 0.02, rms_norm_eps: float = 1e-05, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, attention_bias: bool = False, attention_dropout: float | int = 0.0)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/configuration_pe_audio.py#L26)

**パラメータ:**

dac_config (`Union[PreTrainedConfig, dict]`, *省略可*) : 生オーディオ入力をトークン化するために使用されるDACオーディオエンコーダーの設定です。辞書が渡された場合、デフォルトのDACハイパーパラメータで[DacConfig](/docs/transformers/main/ja/model_doc/dac#transformers.DacConfig)をインスタンス化するために使用されます。

hidden_size (`int`、*optional*、デフォルトは`1792`) : 隠れ表現の次元数。

intermediate_size (`int`、*任意*、デフォルトは`4800`) : MLP 表現の次元数。

num_hidden_layers (`int`、*任意*、デフォルトは`6`) : Transformer デコーダーの隠れ層の数。

num_attention_heads (`int`、*任意*、デフォルトは`14`) : Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。

num_key_value_heads (`int`, *optional*) : Grouped Query Attention を実装するために使用する key_value ヘッドの数です。`num_key_value_heads=num_attention_heads` の場合、モデルは Multi Head Attention (MHA) を使用し、`num_key_value_heads=1` の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、[この論文](https://huggingface.co/papers/2305.13245)を参照してください。指定されない場合、デフォルトで `num_attention_heads` が使用されます。

head_dim (`int`、*任意*、デフォルトは`128`) : アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。

hidden_act (`str`、*任意*、デフォルトは`silu`) : デコーダーで使用する非線形活性化関数（関数または文字列）。例えば、`"gelu"`、`"relu"`、`"silu"`など。

max_position_embeddings (`int`、*任意*、デフォルトは`10000`) : このモデルが使用される可能性のある最大シーケンス長です。

initializer_range (`float`、*任意*、デフォルトは`0.02`) : すべての重み行列を初期化するためのtruncated_normal_initializerの標準偏差です。

rms_norm_eps (`float`、*任意*、デフォルトは`1e-05`) : rms 正規化レイヤーで使用する epsilon。

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`, *optional*) : RoPE 埋め込みの設定パラメータを含む辞書です。この辞書には `rope_theta` の値が含まれていなければならず、より長い `max_position_embeddings` で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。

attention_bias (`bool`、*任意*、デフォルトは`False`) : セルフアテンションにおけるクエリ、キー、バリュー、出力の投影層でバイアスを使用するかどうか。

attention_dropout (`Union[float, int]`、*任意*、デフォルトは`0.0`) : 注意確率のドロップアウト率。

これはPeAudioModelの設定を保存するための設定クラスです。指定された引数に基づいてPe Audioモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、[facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)と類似した設定が得られます。

設定オブジェクトは [PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) を継承し、モデルの出力を制御するために使用できます。詳細については、[PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) のドキュメントを参照してください。

```python
>>> from transformers import PeAudioEncoder, PeAudioEncoderConfig

>>> # Initializing a PeAudioEncoder style configuration
>>> configuration = PeAudioEncoderConfig()

>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioEncoder(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## PeAudioFeatureExtractor[[transformers.PeAudioFeatureExtractor]]

#### transformers.PeAudioFeatureExtractor[[transformers.PeAudioFeatureExtractor]]

```python
transformers.PeAudioFeatureExtractor(feature_size: int = 1, sampling_rate: int = 48000, padding_value: float = 0.0, hop_length: int = 1920, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/feature_extraction_pe_audio.py#L26)

**パラメータ:**

feature_size (`int`, *optional*, デフォルトは 1) : 抽出された特徴量の次元数です。モノラルの場合は 1、ステレオの場合は 2 を指定します。

sampling_rate (`int`、*optional*、デフォルトは 48000) : 音声波形をデジタル化するためのサンプリングレート（ヘルツ (Hz) 表記）。

padding_value (`float`、*任意*、デフォルト値は 0.0) : パディングに使用される値。

hop_length (`int`, *optional*, デフォルトは 1920) : 連続するウィンドウ間のオーバーラップ長。

PeAudioFeatureExtractor 特徴抽出器を構築します。

このフィーチャーエクストラクターは、主要なメソッドの大部分を含む [SequenceFeatureExtractor](/docs/transformers/main/ja/main_classes/feature_extractor#transformers.SequenceFeatureExtractor) を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

#### __call__[[transformers.PeAudioFeatureExtractor.__call__]]

```python
__call__(raw_audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | str | list[str], padding: bool | str | transformers.utils.generic.PaddingStrategy | None = None, truncation: bool | None = False, max_length: int | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, sampling_rate: int | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/feature_extraction_pe_audio.py#L63)

## PeAudioProcessor[[transformers.PeAudioProcessor]]

#### transformers.PeAudioProcessor[[transformers.PeAudioProcessor]]

```python
transformers.PeAudioProcessor(*args, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/processing_pe_audio.py#L17)

## PeAudioEncoder[[transformers.PeAudioEncoder]]

#### transformers.PeAudioEncoder[[transformers.PeAudioEncoder]]

```python
transformers.PeAudioEncoder(config: PeAudioEncoderConfig)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L606)

**パラメータ:**

config ([PeAudioEncoderConfig](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioEncoderConfig)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

PeAudio Encoder モデル。

このモデルは [PreTrainedModel](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### forward[[transformers.PeAudioEncoder.forward]]

```python
forward(input_values: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L625)

**パラメータ:**

input_values (`torch.Tensor`、shape `(batch_size, sequence_length)`) : 入力生の音声波形の浮動小数点数値。値は、`.flac` または `.wav` 音声ファイルを `list[float]` 型、`numpy.ndarray`、または `torch.Tensor` の配列に読み込むことで取得できます。*例えば*、torchcodec ライブラリ（`pip install torchcodec`）や soundfile ライブラリ（`pip install soundfile`）を通じて行います。`input_values` として配列を準備するには、パディングと `torch.Tensor` 型への変換のために [AutoProcessor](/docs/transformers/main/ja/model_doc/auto#transformers.AutoProcessor) を使用してください。詳細は [PeAudioProcessor.__call__()](/docs/transformers/main/ja/main_classes/processors#transformers.ProcessorMixin.__call__) を参照してください。

padding_mask (`torch.Tensor`、形状 `(batch_size, sequence_length)`、*任意*) : `input_values` のパディングサンプルに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されたマスク値:  - **マスクされていない**サンプルは 1、 - **マスクされている**サンプルは 0。

**戻り値:** [BaseModelOutputWithPooling](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) または `tuple(torch.Tensor)`

`torch.Tensor` のタプル（`return_dict=False` が渡された場合、または `config.return_dict=False` の場合）または [BaseModelOutputWithPooling](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling)。設定（[PeAudioConfig](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioConfig)）と入力に応じて、さまざまな要素で構成されます。

[PeAudioEncoder](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioEncoder)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **last_hidden_state** (`torch.Tensor`、形状 `(batch_size, sequence_length, hidden_size)`) -- モデルの最終層の出力における隠れ状態のシーケンス。
- **pooler_output** (`torch.Tensor`、形状 `(batch_size, hidden_size)`) -- 補助的な事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン（分類トークン）の最終層の隠れ状態です。例えば、BERT系のモデルでは、線形層とtanh活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次の文予測（分類）目的から学習されます。
- **hidden_states** (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル（モデルに埋め込み層がある場合はその出力用 1 つ、各層の出力用 1 つずつ）で、形状は `(batch_size, sequence_length, hidden_size)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple(torch.Tensor)`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.Tensor` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

## PeAudioModel[[transformers.PeAudioModel]]

#### transformers.PeAudioModel[[transformers.PeAudioModel]]

```python
transformers.PeAudioModel(config: PeAudioConfig)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L711)

#### forward[[transformers.PeAudioModel.forward]]

```python
forward(input_ids: Tensor, input_values: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, padding_mask: typing.Optional[torch.Tensor] = None, return_loss: bool | None = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L744)

**パラメータ:**

input_ids (`torch.Tensor`、shape `(batch_size, sequence_length)`) : 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力IDとは何ですか？](../glossary#input-ids)

input_values (`torch.Tensor`、shape `(batch_size, sequence_length)`) : 入力生の音声波形の浮動小数点数値。値は、`.flac` または `.wav` 音声ファイルを `list[float]` 型、`numpy.ndarray`、または `torch.Tensor` の配列に読み込むことで取得できます。*例えば*、torchcodec ライブラリ（`pip install torchcodec`）や soundfile ライブラリ（`pip install soundfile`）を通じて行います。`input_values` として配列を準備するには、パディングと `torch.Tensor` 型への変換のために [AutoProcessor](/docs/transformers/main/ja/model_doc/auto#transformers.AutoProcessor) を使用してください。詳細は [PeAudioProcessor.__call__()](/docs/transformers/main/ja/main_classes/processors#transformers.ProcessorMixin.__call__) を参照してください。

attention_mask (`torch.Tensor`、shape `(batch_size, sequence_length)`、*任意*) : padding トークンのインデックスに対する attention を回避するためのマスクです。マスクの値は `[0, 1]` から選択されます:  - **マスクされない**トークンは 1、- **マスクされる**トークンは 0。  [attention マスクとは?](../glossary#attention-mask)

padding_mask (`torch.Tensor`、形状 `(batch_size, sequence_length)`、*任意*) : `input_values` のパディングサンプルに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されたマスク値:  - **マスクされていない**サンプルは 1、 - **マスクされている**サンプルは 0。

return_loss (`bool`, *任意*) : 損失を返すかどうか。

**戻り値:** `PeAudioOutput` または `tuple(torch.Tensor)`

`PeAudioOutput`、または`torch.Tensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。設定（[PeAudioConfig](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioConfig)）と入力に応じて、さまざまな要素で構成されます。

[PeAudioModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioModel)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.Tensor`、形状 `(1,)`、*任意*) -- 音声とテキストの表現間で計算される対比損失。
- **logits_audio_text** (`torch.Tensor`、形状 `(batch_size, batch_size)`、*任意*) -- 音声とテキストの埋め込み間の類似度ロジツ。 [PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) は、代わりに形状 `(batch_size, batch_size, sequence_length)` のフレームごとのロジツを返します。
- **text_audio_embeds** (`torch.Tensor`、形状 `(batch_size, hidden_size)`、*任意*) -- 音声テキスト空間に射影されたテキスト埋め込み。
- **audio_embeds** (`torch.Tensor`、形状 `(batch_size, hidden_size)`、*任意*) -- 音声テキスト空間に射影された音声埋め込み。 [PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) は、代わりに形状 `(batch_size, sequence_length, hidden_size)` のフレームごとの埋め込みを返します。
- **text_outputs** (`BaseModelOutputWithPooling`、*任意*) -- テキストエンコーダーの出力。最終隠れ状態とプーリング済み出力を含みます。
- **audio_outputs** (`BaseModelOutputWithPooling`、*任意*) -- 音声エンコーダーの出力。最後の隠れ状態とプーリングされた出力を含みます。

## PeAudioFrameLevelModel[[transformers.PeAudioFrameLevelModel]]

#### transformers.PeAudioFrameLevelModel[[transformers.PeAudioFrameLevelModel]]

```python
transformers.PeAudioFrameLevelModel(config: PeAudioConfig)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L800)

#### forward[[transformers.PeAudioFrameLevelModel.forward]]

```python
forward(input_ids: Tensor, input_values: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, padding_mask: typing.Optional[torch.Tensor] = None, return_loss: bool | None = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio/modeling_pe_audio.py#L811)

**パラメータ:**

input_ids (`torch.Tensor`、shape `(batch_size, sequence_length)`) : 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力IDとは何ですか？](../glossary#input-ids)

input_values (`torch.Tensor`、shape `(batch_size, sequence_length)`) : 入力生の音声波形の浮動小数点数値。値は、`.flac` または `.wav` 音声ファイルを `list[float]` 型、`numpy.ndarray`、または `torch.Tensor` の配列に読み込むことで取得できます。*例えば*、torchcodec ライブラリ（`pip install torchcodec`）や soundfile ライブラリ（`pip install soundfile`）を通じて行います。`input_values` として配列を準備するには、パディングと `torch.Tensor` 型への変換のために [AutoProcessor](/docs/transformers/main/ja/model_doc/auto#transformers.AutoProcessor) を使用してください。詳細は [PeAudioProcessor.__call__()](/docs/transformers/main/ja/main_classes/processors#transformers.ProcessorMixin.__call__) を参照してください。

attention_mask (`torch.Tensor`、shape `(batch_size, sequence_length)`、*任意*) : padding トークンのインデックスに対する attention を回避するためのマスクです。マスクの値は `[0, 1]` から選択されます:  - **マスクされない**トークンは 1、- **マスクされる**トークンは 0。  [attention マスクとは?](../glossary#attention-mask)

padding_mask (`torch.Tensor`、形状 `(batch_size, sequence_length)`、*任意*) : `input_values` のパディングサンプルに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されたマスク値:  - **マスクされていない**サンプルは 1、 - **マスクされている**サンプルは 0。

return_loss (`bool`, *任意*) : 損失を返すかどうか。

**戻り値:** `PeAudioOutput` または `tuple(torch.Tensor)`

`PeAudioOutput`、または`torch.Tensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。設定（[PeAudioConfig](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioConfig)）と入力に応じて、さまざまな要素で構成されます。

[PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.Tensor`、形状 `(1,)`、*任意*) -- 音声とテキストの表現間で計算される対比損失。
- **logits_audio_text** (`torch.Tensor`、形状 `(batch_size, batch_size)`、*任意*) -- 音声とテキストの埋め込み間の類似度ロジツ。 [PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) は、代わりに形状 `(batch_size, batch_size, sequence_length)` のフレームごとのロジツを返します。
- **text_audio_embeds** (`torch.Tensor`、形状 `(batch_size, hidden_size)`、*任意*) -- 音声テキスト空間に射影されたテキスト埋め込み。
- **audio_embeds** (`torch.Tensor`、形状 `(batch_size, hidden_size)`、*任意*) -- 音声テキスト空間に射影された音声埋め込み。 [PeAudioFrameLevelModel](/docs/transformers/main/ja/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) は、代わりに形状 `(batch_size, sequence_length, hidden_size)` のフレームごとの埋め込みを返します。
- **text_outputs** (`BaseModelOutputWithPooling`、*任意*) -- テキストエンコーダーの出力。最終隠れ状態とプーリング済み出力を含みます。
- **audio_outputs** (`BaseModelOutputWithPooling`、*任意*) -- 音声エンコーダーの出力。最後の隠れ状態とプーリングされた出力を含みます。

