# PE Audio

[PE Audio](https://huggingface.co/papers/2504.13181) — это аудиоветвь семейства Perception Encoder от Meta. Она контрастно выравнивает исходные звуковые сигналы и текст в общем пространстве эмбеддингов, обучаясь на парных данных «аудио — описание» для кросс-модального поиска и классификации аудио в режиме zero-shot.

На вершине одного и того же энкодера размещены две головки. [PeAudioModel](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioModel) возвращает одно пул-эмбеддинг на каждый клип для поиска на уровне клипов, а [PeAudioFrameLevelModel](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) возвращает одно эмбеддинг каждые 40 мс для локализации событий и детального временного анализа.

Все официальные контрольные точки 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])})
```

## Советы и примечания по использованию

- Аудио должно быть моно (`feature_size=1`) и пересэмплировано до 48 кГц — экстрактор признаков выводит предупреждение, но не выполняет пересэмплирование за вас. Стерео-вход не поддерживается.
- Аудио переменной длины обрабатывается с помощью `padding_mask` (а не стандартного `attention_mask`). Маска внутренним образом уменьшается в `dac_config.hop_length` раз до того, как попадёт в энкодер, поэтому передавайте маску в разрешении исходной формы волны, которую возвращает извлекатель признаков.
- [PeAudioModel](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioModel) возвращает логиты формы `(n_audio, n_text)`. [PeAudioFrameLevelModel](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) возвращает `(n_audio, n_text, n_frames)` с одним кадром каждые 40 мс. Выберите класс, соответствующий задаче, — они разделяют веса, поэтому переключение между ними дёшево.
- Башня текста представляет собой общий энкодер, загружаемый через `AutoModel` из `config.text_config`. Токенизатор подключается к процессору через `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/v5.23.0/src/transformers/models/pe_audio/configuration_pe_audio.py#L88)

**Параметры:**

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Объект конфигурации или словарь текстового бэкбона.

audio_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Объект конфигурации или словарь аудио-бэкбона.

Это класс конфигурации для хранения настроек модели PeAudioModel. Он используется для создания модели Pe Audio в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/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/v5.23.0/src/transformers/models/pe_audio/configuration_pe_audio.py#L26)

**Параметры:**

dac_config (`Union[PreTrainedConfig, dict]`, *необязательный*) : Конфигурация аудио-кодера DAC, используемая для токенизации исходных аудиовходов. Если передан словарь, он будет использован для создания экземпляра [DacConfig](/docs/transformers/v5.23.0/ru/model_doc/dac#transformers.DacConfig) с параметрами DAC по умолчанию.

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*) : Это количество ключевых и value-голов, которое следует использовать для реализации Grouped Query Attention. Если `num_key_value_heads=num_attention_heads`, модель будет использовать Multi Head Attention (MHA), если `num_key_value_heads=1` — Multi Query Attention (MQA), в противном случае используется GQA. При конвертации multi-head checkpoint в GQA checkpoint каждая группа ключевых и value-голов должна быть построена путем усреднения (meanpooling) всех исходных голов в этой группе. Подробнее см. в [этой статье](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`) : Значение epsilon, используемое слоями нормализации rms.

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`, *optional*) : Словарь, содержащий параметры конфигурации для вложений RoPE. Словарь должен содержать значение для `rope_theta` и, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длинными `max_position_embeddings`.

attention_bias (`bool`, *необязательный*, по умолчанию `False`) : Использовать ли смещение (bias) в слоях проекции запроса, ключа, значения и вывода при само-внимании.

attention_dropout (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

Это класс конфигурации для хранения настроек модели PeAudioModel. Он используется для создания модели Pe Audio в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/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/v5.23.0/src/transformers/models/pe_audio/feature_extraction_pe_audio.py#L26)

**Параметры:**

feature_size (`int`, *optional*, по умолчанию 1) : Размерность признаков извлекаемых фич. Используйте 1 для моно, 2 для стерео.

sampling_rate (`int`, *optional*, по умолчанию 48000) : Частота дискретизации, с которой аудиосигнал должен быть оцифрован, выраженная в герцах (Гц).

padding_value (`float`, *необязательный*, по умолчанию 0.0) : Значение, используемое для дополнения (padding).

hop_length (`int`, *optional*, по умолчанию 1920) : Длина перекрытия между последовательными окнами.

Создаёт экстрактор признаков PeAudioFeatureExtractor.

Этот экстрактор признаков наследуется от [SequenceFeatureExtractor](/docs/transformers/v5.23.0/ru/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/v5.23.0/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/v5.23.0/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/v5.23.0/src/transformers/models/pe_audio/modeling_pe_audio.py#L606)

**Параметры:**

config ([PeAudioEncoderConfig](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioEncoderConfig)) : класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель PeAudio Encoder.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

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

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

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/pe_audio/modeling_pe_audio.py#L625)

**Параметры:**

input_values (`torch.Tensor` формы `(batch_size, sequence_length)`) : Значения типа float входной необработанной звуковой волны. Значения можно получить, загрузив аудиофайл `.flac` или `.wav` в массив типа `list[float]`, `numpy.ndarray` или `torch.Tensor`, *например*, с помощью библиотеки torchcodec (`pip install torchcodec`) или библиотеки soundfile (`pip install soundfile`). Для подготовки массива в `input_values` следует использовать [AutoProcessor](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoProcessor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [PeAudioProcessor.__call__()](/docs/transformers/v5.23.0/ru/main_classes/processors#transformers.ProcessorMixin.__call__).

padding_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для исключения применения внимания к заполняющим токенам в `input_values`. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([PeAudioConfig](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioConfig)) и входных данных.

Метод forward класса [PeAudioEncoder](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioEncoder) переопределяет специальный метод `__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)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(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/v5.23.0/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/v5.23.0/src/transformers/models/pe_audio/modeling_pe_audio.py#L744)

**Параметры:**

input_ids (`torch.Tensor` формы `(batch_size, sequence_length)`) : Индексы токенов входной последовательности в словаре. По умолчанию заполнение (padding) игнорируется. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

input_values (`torch.Tensor` формы `(batch_size, sequence_length)`) : Значения типа float входной необработанной звуковой волны. Значения можно получить, загрузив аудиофайл `.flac` или `.wav` в массив типа `list[float]`, `numpy.ndarray` или `torch.Tensor`, *например*, с помощью библиотеки torchcodec (`pip install torchcodec`) или библиотеки soundfile (`pip install soundfile`). Для подготовки массива в `input_values` следует использовать [AutoProcessor](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoProcessor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [PeAudioProcessor.__call__()](/docs/transformers/v5.23.0/ru/main_classes/processors#transformers.ProcessorMixin.__call__).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../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/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioConfig)) и входных данных.

Метод [PeAudioModel](/docs/transformers/v5.23.0/ru/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/v5.23.0/ru/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/v5.23.0/ru/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/v5.23.0/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/v5.23.0/src/transformers/models/pe_audio/modeling_pe_audio.py#L811)

**Параметры:**

input_ids (`torch.Tensor` формы `(batch_size, sequence_length)`) : Индексы токенов входной последовательности в словаре. По умолчанию заполнение (padding) игнорируется. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

input_values (`torch.Tensor` формы `(batch_size, sequence_length)`) : Значения типа float входной необработанной звуковой волны. Значения можно получить, загрузив аудиофайл `.flac` или `.wav` в массив типа `list[float]`, `numpy.ndarray` или `torch.Tensor`, *например*, с помощью библиотеки torchcodec (`pip install torchcodec`) или библиотеки soundfile (`pip install soundfile`). Для подготовки массива в `input_values` следует использовать [AutoProcessor](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoProcessor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [PeAudioProcessor.__call__()](/docs/transformers/v5.23.0/ru/main_classes/processors#transformers.ProcessorMixin.__call__).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../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/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioConfig)) и входных данных.

Метод forward класса [PeAudioFrameLevelModel](/docs/transformers/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **loss** (`torch.Tensor` формы `(1,)`, *необязательный*) -- Контрастивная функция потерь, вычисленная между представлениями аудио и текста.
- **logits_audio_text** (`torch.Tensor` формы `(batch_size, batch_size)`, *необязательный*) -- Логиты сходности между аудио- и текстовыми эмбеддингами. [PeAudioFrameLevelModel](/docs/transformers/v5.23.0/ru/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/v5.23.0/ru/model_doc/pe_audio#transformers.PeAudioFrameLevelModel) вместо этого возвращает векторы для каждого кадра формы `(batch_size, sequence_length, hidden_size)`.
- **text_outputs** (`BaseModelOutputWithPooling`, *необязательный*) -- Выходные данные модели для текстового кодировщика, включая последнее скрытое состояние и агрегированный выход.
- **audio_outputs** (`BaseModelOutputWithPooling`, *необязательный*) -- Выходные данные модели для аудио-кодера, включая последнее скрытое состояние и агрегированный выход.

