# SpeechT5

## Обзор

Модель SpeechT5 была предложена в работе [SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing](https://huggingface.co/papers/2110.07205) авторами Junyi Ao, Rui Wang, Long Zhou, Chengyi Wang, Shuo Ren, Yu Wu, Shujie Liu, Tom Ko, Qing Li, Yu Zhang, Zhihua Wei, Yao Qian, Jinyu Li, Furu Wei.

Аннотация из статьи следующая:

*Вдохновлённые успехом T5 (Text-To-Text Transfer Transformer) в области предобученных моделей обработки естественного языка, мы предлагаем SpeechT5 — унифицированную мультимодальную фреймворк, исследующую предобучение с архитектурой «энкодер-декодер» для самообучения представлений речи и текста. Фреймворк SpeechT5 состоит из общей сети «энкодер-декодер» и шести специфичных для модальности (речь/текст) пред- и пост-сетей. После предобработки входной речи или текста с помощью пред-сетей общая сеть «энкодер-декодер» моделирует последовательностно-последовательное преобразование, а затем пост-сети генерируют выход в модальности речи или текста на основе вывода декодера. Используя большие объёмы размеченных данных речи и текста, мы предобучаем SpeechT5 для обучения унифицированному мультимодальному представлению, с целью повышения способности моделирования как речи, так и текста. Для согласования текстовой и речевой информации в этом унифицированном семантическом пространстве мы предлагаем подход к кросс-модальной векторной квантизации, который случайно смешивает состояния речи/текста с латентными юнитами, выступая интерфейсом между энкодером и декодером. Многочисленные оценки демонстрируют превосходство предложенного фреймворка SpeechT5 на широком спектре задач обработки устной речи, включая автоматическое распознавание речи, синтез речи, машинный перевод речи, конвертацию голоса, улучшение качества речи и идентификацию говорящего.*

Эта модель была предоставлена [Matthijs](https://huggingface.co/Matthijs). Исходный код можно найти [здесь](https://github.com/microsoft/SpeechT5).

> [!TIP]
> Установите `use_kernels=True` в [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained), чтобы заменить поддерживаемые слои на оптимизированные ядра из Hub. Подробнее см. в разделе [Загрузка ядер](../kernel_doc/loading_kernels).

## SpeechT5Config[[transformers.SpeechT5Config]]

#### transformers.SpeechT5Config[[transformers.SpeechT5Config]]

```python
transformers.SpeechT5Config(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, 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, is_encoder_decoder: bool = True, vocab_size: int = 81, hidden_size: int = 768, encoder_layers: int = 12, encoder_attention_heads: int = 12, encoder_ffn_dim: int = 3072, encoder_layerdrop: float | int = 0.1, decoder_layers: int = 6, decoder_ffn_dim: int = 3072, decoder_attention_heads: int = 12, decoder_layerdrop: float | int = 0.1, hidden_act: str = 'gelu', positional_dropout: float | int = 0.1, hidden_dropout: float | int = 0.1, attention_dropout: float | int = 0.1, activation_dropout: float | int = 0.1, initializer_range: float = 0.02, layer_norm_eps: float = 1e-05, scale_embedding: bool = False, feat_extract_norm: str = 'group', feat_proj_dropout: float | int = 0.0, feat_extract_activation: str = 'gelu', conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512), conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2), conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2), conv_bias: bool = False, num_conv_pos_embeddings: int = 128, num_conv_pos_embedding_groups: int = 16, apply_spec_augment: bool = True, mask_time_prob: float | int = 0.05, mask_time_length: int = 10, mask_time_min_masks: int = 2, mask_feature_prob: float | int = 0.0, mask_feature_length: int = 10, mask_feature_min_masks: int = 0, pad_token_id: int | None = 1, bos_token_id: int | None = 0, eos_token_id: int | list[int] | None = 2, decoder_start_token_id: int | None = 2, num_mel_bins: int = 80, speech_decoder_prenet_layers: int = 2, speech_decoder_prenet_units: int = 256, speech_decoder_prenet_dropout: float | int = 0.5, speaker_embedding_dim: int = 512, speech_decoder_postnet_layers: int = 5, speech_decoder_postnet_units: int = 256, speech_decoder_postnet_kernel: int = 5, speech_decoder_postnet_dropout: float | int = 0.5, reduction_factor: int = 2, max_speech_positions: int = 4000, max_text_positions: int = 450, encoder_max_relative_position: int = 160, use_guided_attention_loss: bool = True, guided_attention_loss_num_heads: int = 2, guided_attention_loss_sigma: float = 0.4, guided_attention_loss_scale: float = 10.0, use_cache: bool = True, tie_word_embeddings: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/configuration_speecht5.py#L27)

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

is_encoder_decoder (`bool`, *необязательный*, по умолчанию `True`) : Используется ли модель в качестве энкодера/декодера.

vocab_size (`int`, *необязательный*, по умолчанию `81`) : Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в `input_ids`.

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

encoder_layers (`int`, *необязательный*, по умолчанию `12`) : Количество скрытых слоев в кодере Transformer. Если не задано, будет использовано то же значение, что и у `num_layers`.

encoder_attention_heads (`int`, *необязательный*, по умолчанию `12`) : Количество головок внимания для каждого слоя внимания в кодере Transformer.

encoder_ffn_dim (`int`, *optional*, по умолчанию `3072`) : Размерность «промежуточного» (часто называемого feed-forward) слоя в энкодере.

encoder_layerdrop (`Union[float, int]`, *необязательный*, по умолчанию `0.1`) : Вероятность LayerDrop для энкодера. Подробнее см. в [статье о LayerDrop](see https://huggingface.co/papers/1909.11556).

decoder_layers (`int`, *необязательный*, по умолчанию `6`) : Количество скрытых слоев в декодере Transformer. Если не задано, будет использовано то же значение, что и у `num_layers`.

decoder_ffn_dim (`int`, *необязательный*, по умолчанию `3072`) : Размерность «промежуточного» (часто называемого feed-forward) слоя в декодере.

decoder_attention_heads (`int`, *необязательный*, по умолчанию `12`) : Количество головок внимания для каждого слоя внимания в декодере Transformer.

decoder_layerdrop (`Union[float, int]`, *необязательный*, по умолчанию `0.1`) : Вероятность LayerDrop для декодера. Подробнее см. в [статье о LayerDrop](see https://huggingface.co/papers/1909.11556).

hidden_act (`str`, *необязательный*, по умолчанию `gelu`) : Нелинейная функция активации (функция или строка) в декодере. Например, `"gelu"`, `"relu"`, `"silu"` и т. д.

positional_dropout (`float`, *необязательный*, по умолчанию 0.1) : Вероятность dropout для слоёв кодирования позиционных признаков текста.

hidden_dropout (`Union[float, int]`, *необязательный*, по умолчанию `0.1`) : Вероятность dropout для всех полносвязных слоев в эмбеддингах, энкодере и пулере.

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

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

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-05`) : Значение epsilon, используемое слоями нормализации.

scale_embedding (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли масштабировать эмбеддинги, деля их на sqrt(d_model).

feat_extract_norm (`str`, *optional*, по умолчанию `"group"`) : Нормализация, применяемая к одномерным свёрточным слоям в предсети речевого энкодера. Одно из значений: `"group"` для групповой нормализации только первого одномерного свёрточного слоя или `"layer"` для послойной нормализации всех одномерных свёрточных слоев.

feat_proj_dropout (`float`, *optional*, по умолчанию 0.0) : Вероятность dropout для выхода pre-net речевого энкодера.

feat_extract_activation (`str, `optional`, defaults to `"gelu"`) : The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, `"gelu"`, `"relu"`, `"selu"` and `"gelu_new"` are supported.

conv_dim (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `(512, 512, 512, 512, 512, 512, 512)`) : Кортеж целых чисел, определяющий количество входных и выходных каналов каждого одномерного свёрточного слоя в предсети речевого энкодера. Длина *conv_dim* определяет количество одномерных свёрточных слоёв.

conv_stride (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `(5, 2, 2, 2, 2, 2, 2)`) : Кортеж целых чисел, определяющий шаг каждого одномерного свёрточного слоя в предсети речевого энкодера. Длина *conv_stride* определяет количество свёрточных слоёв и должна совпадать с длиной *conv_dim*.

conv_kernel (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `(10, 3, 3, 3, 3, 3, 3)`) : Кортеж целых чисел, определяющий размер ядра каждого одномерного свёрточного слоя в предсети речевого энкодера. Длина *conv_kernel* определяет количество свёрточных слоёв и должна совпадать с длиной *conv_dim*.

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

num_conv_pos_embeddings (`int`, *optional*, по умолчанию 128) : Количество сверточных позиционных эмбеддингов. Определяет размер ядра слоя 1D сверточных позиционных эмбеддингов.

num_conv_pos_embedding_groups (`int`, *optional*, по умолчанию 16) : Количество групп слоя одномерных свёрточных позиционных эмбеддингов.

apply_spec_augment (`bool`, *необязательный*, по умолчанию `True`) : Применяется ли аугментация данных *SpecAugment* к выходам предсети речевого энкодера. Для справки см. [SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition](https://huggingface.co/papers/1904.08779).

mask_time_prob (`float`, *optional*, по умолчанию 0.05) : Доля (от 0 до 1) всех векторов признаков вдоль временной оси, которые будут замаскированы. Процедура маскирования генерирует ''mask_time_prob*len(time_axis)/mask_time_length'' независимых масок вдоль оси. Если рассуждать с точки зрения вероятности того, что каждый вектор признаков будет выбран в качестве начала векторного диапазона для маскирования, *mask_time_prob* должно быть равно `prob_vector_start*mask_time_length`. Обратите внимание, что перекрытие может уменьшить фактическую долю замаскированных векторов. Это имеет значение только в том случае, если `apply_spec_augment is True`.

mask_time_length (`int`, *optional*, по умолчанию 10) : Длина векторного охвата вдоль временной оси.

mask_time_min_masks (`int`, *optional*, по умолчанию 2), : минимальное количество масок длины `mask_feature_length`, генерируемых вдоль временной оси, на каждом шаге времени, независимо от `mask_feature_prob`. Актуально только если ''mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks''

mask_feature_prob (`float`, *optional*, по умолчанию 0.0) : Доля (от 0 до 1) всех векторов признаков вдоль оси признаков, которые будут замаскированы. Процедура маскирования генерирует ''mask_feature_prob*len(feature_axis)/mask_time_length'' независимых масок вдоль оси. Если рассуждать с точки зрения вероятности того, что каждый вектор признаков будет выбран в качестве начала векторного диапазона для маскирования, *mask_feature_prob* должно быть равно `prob_vector_start*mask_feature_length`. Обратите внимание, что перекрытие может уменьшить фактическую долю замаскированных векторов. Это имеет значение только в том случае, если `apply_spec_augment is True`.

mask_feature_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Процент (от 0 до 1) всех векторов признаков вдоль оси признаков, которые будут замаскированы. Процедура маскирования генерирует `mask_feature_prob*len(feature_axis)/mask_time_length` независимых масок вдоль оси. Если рассуждать с точки зрения вероятности того, что каждый вектор признаков будет выбран в качестве начала векторного диапазона для маскирования, *mask_feature_prob* должен быть равен `prob_vector_start*mask_feature_length`. Обратите внимание, что перекрытие может уменьшить фактический процент замаскированных векторов. Это имеет значение только в том случае, если `apply_spec_augment` равно `True`.

mask_feature_length (`int`, *optional*, по умолчанию 10) : Длина векторного охвата вдоль оси признаков.

mask_feature_min_masks (`int`, *optional*, по умолчанию 0), : минимальное количество масок длины `mask_feature_length`, генерируемых вдоль оси признаков на каждом шаге времени, независимо от `mask_feature_prob`. Актуально только если ''mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks''

num_mel_bins (`int`, *optional*, по умолчанию 80) : Количество мел-функций, используемых на входные признаки. Используется предсетью речевого декодера. Должно соответствовать значению, используемому в классе [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor).

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

bos_token_id (`int`, *необязательный*, по умолчанию `0`) : Идентификатор токена, используемый для обозначения начала потока в словаре.

eos_token_id (`Union[int, list[int]]`, *необязательный*, по умолчанию `2`) : Идентификатор токена, используемого для обозначения конца потока в словаре.

decoder_start_token_id (`int`, *optional*, по умолчанию `2`) : Если модель с кодировщиком-декодировщиком начинает декодирование с токена, отличного от `bos`, идентификатор этого токена.

num_mel_bins (`int`, *optional*, по умолчанию `80`) : Количество мел-признаков, используемых на входной кадр. Должно соответствовать значению, используемому в классе `AutoFeatureExtractor`.

speech_decoder_prenet_layers (`int`, *optional*, по умолчанию 2) : Количество слоёв в пред-сети декодера речи.

speech_decoder_prenet_units (`int`, *optional*, по умолчанию 256) : Размерность слоёв в предсети декодера речи.

speech_decoder_prenet_dropout (`float`, *optional*, по умолчанию 0.5) : Вероятность dropout для предсетевых слоёв речевого декодера.

speaker_embedding_dim (`int`, *необязательный*, по умолчанию 512) : Размерность векторов встраивания *XVector*.

speech_decoder_postnet_layers (`int`, *optional*, по умолчанию 5) : Количество слоёв в post-net декодера речи.

speech_decoder_postnet_units (`int`, *optional*, по умолчанию 256) : Размерность слоёв в post-net декодера речи.

speech_decoder_postnet_kernel (`int`, *optional*, по умолчанию 5) : Количество каналов свёрточных фильтров в пост-сети речевого декодера.

speech_decoder_postnet_dropout (`float`, *optional*, по умолчанию 0.5) : Вероятность dropout для пост-слоёв речевого декодера.

reduction_factor (`int`, *optional*, по умолчанию 2) : Коэффициент сокращения длины спектрограммы для входных данных декодера речи.

max_speech_positions (`int`, *optional*, по умолчанию 4000) : Максимальная длина последовательности речевых признаков, с которой может использоваться данная модель.

max_text_positions (`int`, *optional*, по умолчанию 450) : Максимальная длина последовательности текстовых признаков, с которыми может использоваться данная модель.

encoder_max_relative_position (`int`, *optional*, по умолчанию 160) : Максимальное расстояние для встраивания относительного положения в кодировщике.

use_guided_attention_loss (`bool`, *необязательный*, по умолчанию `True`) : Нужно ли применять потерю направленного внимания при обучении модели TTS.

guided_attention_loss_num_heads (`int`, *optional*, по умолчанию 2) : Количество головок внимания, к которым будет применяться loss направленного внимания. Используйте -1, чтобы применить этот loss ко всем головкам внимания.

guided_attention_loss_sigma (`float`, *необязательный*, по умолчанию 0.4) : Стандартное отклонение для потерь направленного внимания.

guided_attention_loss_scale (`float`, *необязательный*, по умолчанию 10.0) : Коэффициент масштабирования для потерь направленного внимания (также известный как lambda).

use_cache (`bool`, *необязательный*, по умолчанию `True`) : Следует ли модели возвращать последние значения внимания key/values (не используется во всех моделях). Актуально только при `config.is_decoder=True` или если модель является генеративной моделью только с декодером.

tie_word_embeddings (`bool`, *необязательный*, по умолчанию `True`) : Связывать ли веса эмбеддингов согласно отображению `tied_weights_keys` модели.

Это класс конфигурации для хранения настроек модели SpeechT5Model. Он используется для создания модели Speecht5 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [microsoft/speecht5_asr](https://huggingface.co/microsoft/speecht5_asr)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import SpeechT5Model, SpeechT5Config

>>> # Initializing a "microsoft/speecht5_asr" style configuration
>>> configuration = SpeechT5Config()

>>> # Initializing a model (with random weights) from the "microsoft/speecht5_asr" style configuration
>>> model = SpeechT5Model(configuration)

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

## SpeechT5HifiGanConfig[[transformers.SpeechT5HifiGanConfig]]

#### transformers.SpeechT5HifiGanConfig[[transformers.SpeechT5HifiGanConfig]]

```python
transformers.SpeechT5HifiGanConfig(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, model_in_dim: int = 80, sampling_rate: int = 16000, upsample_initial_channel: int = 512, upsample_rates: list[int] | tuple[int, ...] = (4, 4, 4, 4), upsample_kernel_sizes: list[int] | tuple[int, ...] = (8, 8, 8, 8), resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11), resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5)), initializer_range: float = 0.01, leaky_relu_slope: float = 0.1, normalize_before: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/configuration_speecht5.py#L225)

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

model_in_dim (`int`, *optional*, по умолчанию 80) : Количество частотных бинов во входной лог-мел-спектрограмме.

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

upsample_initial_channel (`int`, *необязательный*, по умолчанию 512) : Количество входных каналов для сети апсемплинга.

upsample_rates (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `[4, 4, 4, 4]`) : Кортеж целых чисел, определяющий шаг каждого одномерного свёрточного слоя в сети апсемплинга. Длина *upsample_rates* определяет количество свёрточных слоёв и должна совпадать с длиной *upsample_kernel_sizes*.

upsample_kernel_sizes (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `[8, 8, 8, 8]`) : Кортеж целых чисел, определяющий размер ядра каждого одномерного свёрточного слоя в сети апсемплинга. Длина *upsample_kernel_sizes* определяет количество свёрточных слоёв и должна совпадать с длиной *upsample_rates*.

resblock_kernel_sizes (`tuple[int]` или `list[int]`, *необязательный*, по умолчанию `[3, 7, 11]`) : Кортеж целых чисел, определяющий размеры ядер одномерных свёрточных слоев в модуле многоприемного поля (MRF).

resblock_dilation_sizes (`tuple[tuple[int]]` или `list[list[int]]`, *необязательный*, по умолчанию `[[1, 3, 5], [1, 3, 5], [1, 3, 5]]`) : Вложенный кортеж целых чисел, определяющий коэффициенты дилатации для дилатированных одномерных свёрточных слоёв в модуле многоприёмного поля (MRF).

initializer_range (`float`, *необязательный*, по умолчанию `0.01`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

leaky_relu_slope (`float`, *optional*, по умолчанию 0.1) : Угол отрицательного наклона, используемого активацией leaky ReLU.

normalize_before (`bool`, *необязательный*, по умолчанию `True`) : Нужно ли нормализовать спектрограмму перед вокодером, используя усвоенные вокодером среднее значение и дисперсию.

Это класс конфигурации для хранения настроек модели SpeechT5Model. Он используется для создания модели Speecht5 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [microsoft/speecht5_asr](https://huggingface.co/microsoft/speecht5_asr)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import SpeechT5HifiGan, SpeechT5HifiGanConfig

>>> # Initializing a "microsoft/speecht5_hifigan" style configuration
>>> configuration = SpeechT5HifiGanConfig()

>>> # Initializing a model (with random weights) from the "microsoft/speecht5_hifigan" style configuration
>>> model = SpeechT5HifiGan(configuration)

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

## SpeechT5Tokenizer[[transformers.SpeechT5Tokenizer]]

#### transformers.SpeechT5Tokenizer[[transformers.SpeechT5Tokenizer]]

```python
transformers.SpeechT5Tokenizer(vocab_file, bos_token = '<s>', eos_token = '</s>', unk_token = '<unk>', pad_token = '<pad>', normalize = False, sp_model_kwargs: dict[str, typing.Any] | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/tokenization_speecht5.py#L30)

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

vocab_file (`str`) : файл [SentencePiece](https://github.com/google/sentencepiece) (обычно имеет расширение *.spm*), содержащий словарь, необходимый для создания токенизатора.

bos_token (`str`, *необязательный*, по умолчанию `"<s>"`) : Токен начала последовательности.

eos_token (`str`, *необязательный*, по умолчанию `"</s>"`) : Токен конца последовательности.

unk_token (`str`, *необязательный*, по умолчанию `"<unk>"`) : Неизвестный токен. Токен, отсутствующий в словаре, не может быть преобразован в ID, вместо этого ему присваивается данный токен.

pad_token (`str`, *необязательный*, по умолчанию `"<pad>"`) : токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины.

normalize (`bool`, *необязательный*, по умолчанию `False`) : Преобразовывать ли числовые значения в тексте в их словесные английские эквиваленты.

sp_model_kwargs (`dict`, *необязательный*) : Будет передан в метод `SentencePieceProcessor.__init__()`. [Обёртка Python для SentencePiece](https://github.com/google/sentencepiece/tree/master/python) может использоваться, в частности, для установки:  - `enable_sampling`: Включает субсловную регуляризацию. - `nbest_size`: Параметры выборки для униграмм. Недействительно для BPE-Dropout.  - `nbest_size = {0,1}`: Выборка не выполняется. - `nbest_size > 1`: выборка из результатов nbest_size. - `nbest_size < 0`: предполагается, что nbest_size бесконечен, и выполняется выборка из всех гипотез (решётки) с использованием алгоритма forward-filtering-and-backward-sampling.  - `alpha`: Параметр сглаживания для выборки униграмм и вероятность dropout для операций слияния в BPE-dropout.

sp_model (`SentencePieceProcessor`) : процессор *SentencePiece*, используемый для каждого преобразования (строки, токены и идентификаторы).

Создайте токенизатор SpeechT5. Основан на [SentencePiece](https://github.com/google/sentencepiece).

Этот токенизатор наследуется от [PreTrainedTokenizer](/docs/transformers/main/ru/main_classes/tokenizer#transformers.PythonBackend), который содержит большинство основных методов. Для получения дополнительной информации об этих методах пользователям следует обратиться к этому суперклассу.

#### __call__[[transformers.SpeechT5Tokenizer.__call__]]

```python
__call__(text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, add_special_tokens: bool = True, padding: bool | str | PaddingStrategy = False, truncation: bool | str | TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, is_split_into_words: bool = False, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_offsets_mapping: bool = False, return_length: bool = False, verbose: bool = True, tokenizer_kwargs: dict[str, Any] | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2449)

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

text (`str`, `list[str]`, `list[list[str]]`, *необязательный*) : Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности заданы в виде списка строк (предтокенизированных), необходимо установить `is_split_into_words=True` (чтобы устранить неоднозначность с батчем последовательностей).

text_pair (`str`, `list[str]`, `list[list[str]]`, *необязательный*) : Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности заданы в виде списка строк (предтокенизированных), необходимо установить `is_split_into_words=True` (чтобы устранить неоднозначность с батчем последовательностей).

text_target (`str`, `list[str]`, `list[list[str]]`, *необязательный*) : Последовательность или батч последовательностей, которые нужно закодировать в качестве целевых текстов. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности заданы в виде списка строк (предтокенизированных), необходимо установить `is_split_into_words=True` (чтобы устранить неоднозначность с батчем последовательностей).

text_pair_target (`str`, `list[str]`, `list[list[str]]`, *необязательный*) : Последовательность или батч последовательностей, которые нужно закодировать в качестве целевых текстов. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности заданы в виде списка строк (предтокенизированных), необходимо установить `is_split_into_words=True` (чтобы устранить неоднозначность с батчем последовательностей).

tokenizer_kwargs (`dict[str, Any]`, *необязательный*) : Дополнительные kwargs для передачи в токенизатор. Они будут объединены с явными параметрами и другими kwargs, при этом явные параметры имеют приоритет.

add_special_tokens (`bool`, *необязательный*, по умолчанию `True`) : Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция `PretrainedTokenizerBase.build_inputs_with_special_tokens`, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены `bos` или `eos`.

padding (`bool`, `str` или [PaddingStrategy](/docs/transformers/main/ru/internal/file_utils#transformers.utils.PaddingStrategy), *необязательный*, по умолчанию `False`) : Включает и управляет выравниванием. Принимает следующие значения:  - `True` или `'longest'`: Выравнивание до самой длинной последовательности в батче (или без выравнивания, если предоставлена только одна последовательность). - `'max_length'`: Выравнивание до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_pad'` (по умолчанию): Без выравнивания (т. е. на выходе может быть батч с последовательностями разной длины).

truncation (`bool`, `str` или [TruncationStrategy](/docs/transformers/main/ru/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *необязательный*, по умолчанию `False`) : Включает и управляет усечением. Принимает следующие значения:  - `True` или `'longest_first'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. Усечение выполняется посимвольно: если предоставлена пара последовательностей (или пакет пар), то символ удаляется из самой длинной последовательности в паре. - `'only_first'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. Если предоставлена пара последовательностей (или пакет пар), усечение выполняется только для первой последовательности в паре. - `'only_second'`: Усечение до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. Если предоставлена пара последовательностей (или пакет пар), усечение выполняется только для второй последовательности в паре. - `False` или `'do_not_truncate'` (по умолчанию): Усечение не выполняется (т. е. на выходе может быть пакет с длинами последовательностей, превышающими максимально допустимый размер входных данных модели).

max_length (`int`, *optional*) : Управляет максимальной длиной, используемой одним из параметров усечения/дополнения. Если значение не задано или равно `None`, будет использована предопределённая максимальная длина модели, если один из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

stride (`int`, *optional*, по умолчанию 0) : Если задано число вместе с `max_length`, то переполненные токены, возвращаемые при `return_overflowing_tokens=True`, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.

is_split_into_words (`bool`, *необязательный*, по умолчанию `False`) : Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в `True`, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.

pad_to_multiple_of (`int`, *optional*) : Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы `padding` был активирован. Это особенно полезно для использования Tensor Cores на аппаратных средствах NVIDIA с вычислительной способностью `>= 7.5` (Volta).

padding_side (`str`, *необязательный*) : Сторона, на которой модель должна применять выравнивание. Значение выбирается из ['right', 'left']. Значение по умолчанию берётся из атрибута класса с тем же именем.

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *optional*) : Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:  - `'pt'`: Возвращает объекты `torch.Tensor` PyTorch. - `'np'`: Возвращает объекты `np.ndarray` Numpy.

return_token_type_ids (`bool`, *необязательный*) : Указывает, следует ли возвращать идентификаторы типов токенов. Если значение не задано, идентификаторы типов токенов будут возвращены в соответствии со значением по умолчанию конкретного токенизатора, определяемым атрибутом `return_outputs`.  [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

return_attention_mask (`bool`, *необязательный*) : Указывает, следует ли возвращать маску внимания. Если значение не задано, маска внимания будет возвращена в соответствии со значением по умолчанию конкретного токенизатора, определяемым атрибутом `return_outputs`.  [Что такое маски внимания?](../glossary#attention-mask)

return_overflowing_tokens (`bool`, *необязательный*, по умолчанию `False`) : Возвращать ли переполненные последовательности токенов. Если передана пара последовательностей входных идентификаторов (или батч пар) с `truncation_strategy = longest_first` или `True`, вместо возврата переполненных токенов будет выброшена ошибка.

return_special_tokens_mask (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать информацию о маске специальных токенов.

return_offsets_mapping (`bool`, *необязательный*, по умолчанию `False`) : Возвращать или нет `(char_start, char_end)` для каждого токена. Это доступно только для быстрых токенизаторов, наследующихся от [PreTrainedTokenizerFast](/docs/transformers/main/ru/main_classes/tokenizer#transformers.TokenizersBackend); при использовании токенизатора на Python этот метод вызовет `NotImplementedError`.

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

verbose (`bool`, *необязательный*, по умолчанию `True`) : Выводить ли дополнительную информацию и предупреждения.

- ****kwargs** : передаются в метод `self.tokenize()`

**Возвращает:** [BatchEncoding](/docs/transformers/main/ru/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/ru/main_classes/tokenizer#transformers.BatchEncoding) со следующими полями:

- **input_ids** -- Список идентификаторов токенов, которые подаются в модель.

  [Что такое входные идентификаторы?](../glossary#input-ids)

- **token_type_ids** -- Список идентификаторов типов токенов, передаваемых в модель (если `return_token_type_ids=True` или если *"token_type_ids"* входит в `self.model_input_names`).

  [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

- **attention_mask** -- список индексов, указывающих, на какие токены модель должна обращать внимание (когда `return_attention_mask=True` или если *"attention_mask"* входит в `self.model_input_names`).

  [Что такое маски внимания?](../glossary#attention-mask)

- **overflowing_tokens** -- Список переполненных последовательностей токенов (если заданы `max_length` и `return_overflowing_tokens=True`).
- **num_truncated_tokens** -- Количество отсечённых токенов (если задано `max_length` и `return_overflowing_tokens=True`).
- **special_tokens_mask** -- Список нулей и единиц, где 1 указывает на добавленные специальные токены, а 0 — на обычные токены последовательности (при `add_special_tokens=True` и `return_special_tokens_mask=True`).
- **length** -- Длина входных данных (когда `return_length=True`)

Основной метод для токенизации и подготовки одной или нескольких последовательностей или одной или нескольких пар последовательностей для модели.

#### save_vocabulary[[transformers.SpeechT5Tokenizer.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L237)

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

save_directory (`str`) : Каталог, в котором будет сохранен словарь.

filename_prefix (`str`, *необязательный*) : Необязательный префикс, который добавляется к именам сохраняемых файлов.

**Возвращает:** `tuple(str)`

Пути к сохранённым файлам.

Сохраните словарь sentencepiece (скопируйте исходный файл) в каталог.

#### decode[[transformers.SpeechT5Tokenizer.decode]]

```python
decode(token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2885)

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

token_ids (`Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]`) : одна последовательность или батч (список последовательностей) токенизированных входных id. Может быть получена с помощью метода `__call__`.

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

kwargs (дополнительные аргументы ключ-значение, *необязательные*): будут переданы в специфичный для базовой модели метод декодирования.

**Возвращает:** `Union[str, list[str]]`

Декодированная строка для одной последовательности или список декодированных строк для батча последовательностей.

Преобразует последовательность идентификаторов в строку или список последовательностей в список строк, используя токенизатор и словарь, с опциями для удаления специальных токенов и очистки пробелов токенизации.

Аналогично выполнению `self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))`.

#### batch_decode[[transformers.SpeechT5Tokenizer.batch_decode]]

```python
batch_decode(sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2933)

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

sequences (`Union[list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Список идентификаторов токенизированного входа. Может быть получен с помощью метода `__call__`.

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

clean_up_tokenization_spaces (`bool`, *необязательный*) : Указывает, следует ли очищать пробелы токенизации. Если `None`, по умолчанию используется `self.clean_up_tokenization_spaces`.

kwargs (дополнительные аргументы ключ-значение, *необязательные*): будут переданы в специфичный для базовой модели метод декодирования.

**Возвращает:** `list[str]`

Список декодированных предложений.

Преобразуйте список списков идентификаторов токенов в список строк, вызвав decode.

Этот метод предоставляется в целях обратной совместимости. Метод `decode` теперь нативно обрабатывает пакетный ввод, поэтому вы можете использовать `decode` напрямую вместо `batch_decode`.

## SpeechT5FeatureExtractor[[transformers.SpeechT5FeatureExtractor]]

#### transformers.SpeechT5FeatureExtractor[[transformers.SpeechT5FeatureExtractor]]

```python
transformers.SpeechT5FeatureExtractor(feature_size: int = 1, sampling_rate: int = 16000, padding_value: float = 0.0, do_normalize: bool = False, num_mel_bins: int = 80, hop_length: int = 16, win_length: int = 64, win_function: str = 'hann_window', fmin: float = 80, fmax: float = 7600, mel_floor: float = 1e-10, return_attention_mask: bool = True, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/feature_extraction_speecht5.py#L29)

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

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

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

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

do_normalize (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли нормализовать входные данные до нулевого среднего и единичной дисперсии. Нормализация может значительно улучшить производительность некоторых моделей.

num_mel_bins (`int`, *optional*, по умолчанию 80) : Количество полос мел-частот в извлечённых спектрограммных признаках.

hop_length (`int`, *optional*, по умолчанию 16) : Количество миллисекунд между окнами. В многих статьях это также называется «shift».

win_length (`int`, *необязательный*, по умолчанию 64) : Количество миллисекунд в окне.

win_function (`str`, *необязательный*, по умолчанию `"hann_window"`) : Имя функции окна, используемой для оконирования; должна быть доступна через `torch.{win_function}`

fmin (`float`, *optional*, по умолчанию 80) : Минимальная частота в меле, Гц.

fmax (`float`, *optional*, по умолчанию 7600) : Максимальная мел-частота в Гц.

mel_floor (`float`, *optional*, по умолчанию 1e-10) : Минимальное значение банков частот мел-шкалы.

return_attention_mask (`bool`, *необязательный*, по умолчанию `True`) : следует ли [__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5FeatureExtractor.__call__) возвращать `attention_mask`.

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

Этот класс может выполнять предобработку сырого речевого сигнала, в том числе (опционально) нормализацию до нулевого среднего и единичной дисперсии, для использования в предсетевой части речевого энкодера SpeechT5.

Этот класс также может извлекать лог-мел-фильтробанковые признаки из сырой речи для использования в предсети декодера речи SpeechT5.

Этот экстрактор признаков наследуется от [SequenceFeatureExtractor](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.SequenceFeatureExtractor), который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.

#### __call__[[transformers.SpeechT5FeatureExtractor.__call__]]

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

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/feature_extraction_speecht5.py#L159)

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

audio (`np.ndarray`, `list[float]`, `list[np.ndarray]`, `list[list[float]]`, *optional*) : Последовательность или батч последовательностей для обработки. Каждая последовательность может быть массивом numpy, списком значений float, списком массивов numpy или списком списков значений float. На выходе формируются признаки аудиосигнала. Аудио должно быть моноканальным, а не стерео, то есть одно значение float на каждый момент времени.

audio_target (`np.ndarray`, `list[float]`, `list[np.ndarray]`, `list[list[float]]`, *optional*) : Последовательность или батч последовательностей, обрабатываемых как целевые данные. Каждая последовательность может быть массивом numpy, списком значений float, списком массивов numpy или списком списков значений float. На выходе формируются признаки лог-мел-спектрограммы.

padding (`bool`, `str` или [PaddingStrategy](/docs/transformers/main/ru/internal/file_utils#transformers.utils.PaddingStrategy), *необязательный*, по умолчанию `False`) : Выберите стратегию выравнивания возвращаемых последовательностей (с учётом стороны выравнивания и индекса выравнивания модели) из следующих:  - `True` или `'longest'`: Выровнять до самой длинной последовательности в батче (или не выравнивать, если предоставлена только одна последовательность). - `'max_length'`: Выровнять до максимальной длины, указанной в аргументе `max_length`, или до максимально допустимой входной длины для модели, если этот аргумент не указан. - `False` или `'do_not_pad'` (по умолчанию): Без выравнивания (т. е. может быть выведен батч с последовательностями разной длины).

max_length (`int`, *optional*) : Максимальная длина возвращаемого списка и, при необходимости, длина отступов (см. выше).

truncation (`bool`) : Включает усечение, чтобы обрезать входные последовательности длиннее *max_length* до *max_length*.

pad_to_multiple_of (`int`, *optional*) : Если задано, последовательность будет дополнена до кратного указанного значения. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью `>= 7.5` (Volta) или на TPU, где производительность повышается при длине последовательности, кратной 128.

return_attention_mask (`bool`, *необязательный*) : Указывает, следует ли возвращать маску внимания. Если значение не задано, маска внимания будет возвращена в соответствии со значением по умолчанию конкретного feature_extractor. [Что такое маски внимания?](../glossary#attention-mask)

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *optional*) : Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:  - `'pt'`: Возвращает объекты `torch.Tensor` PyTorch. - `'np'`: Возвращает объекты `np.ndarray` Numpy.

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

Основной метод для создания признаков и подготовки одной или нескольких последовательностей для модели.

Передайте значение для `audio`, чтобы извлечь характеристики волновой формы. Передайте значение для `audio_target`, чтобы извлечь характеристики лог-мел-спектрограммы.

## SpeechT5Processor[[transformers.SpeechT5Processor]]

#### transformers.SpeechT5Processor[[transformers.SpeechT5Processor]]

```python
transformers.SpeechT5Processor(feature_extractor, tokenizer)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/processing_speecht5.py#L21)

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

feature_extractor (`SpeechT5FeatureExtractor`) : Извлекатель признаков является обязательным входом.

tokenizer (`SpeechT5Tokenizer`) : Токенизатор является обязательным входным параметром.

Создаёт SpeechT5Processor, который объединяет feature extractor и tokenizer в единый processor.

[SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor) предоставляет все возможности [SpeechT5FeatureExtractor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5FeatureExtractor) и [SpeechT5Tokenizer](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Tokenizer). Подробнее см. в [~SpeechT5FeatureExtractor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5FeatureExtractor) и [~SpeechT5Tokenizer](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Tokenizer).

#### __call__[[transformers.SpeechT5Processor.__call__]]

```python
__call__(*args, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/processing_speecht5.py#L25)

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

return_tensors (`str` или [TensorType](/docs/transformers/main/ru/internal/file_utils#transformers.TensorType), *optional*) : Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:  - `'pt'`: возвращает объекты `torch.Tensor` PyTorch. - `'np'`: возвращает объекты `np.ndarray` NumPy.

#### pad[[transformers.SpeechT5Processor.pad]]

```python
pad(*args, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/processing_speecht5.py#L74)

Собирает аудио- и текстовые входные данные, а также их целевые значения, в батч с выравниванием.

Аудиовходные данные дополняются методом [pad()](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.SequenceFeatureExtractor.pad) класса SpeechT5FeatureExtractor. Текстовые входные данные дополняются методом [pad()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.pad) класса SpeechT5Tokenizer.

Допустимые комбинации входных данных:

- только `input_ids`
- только `input_values`
- `labels` — только лог-мел-спектрограммы или текстовые токены
- `input_ids` и лог-мел-спектрограмма `labels`
- `input_values` и текстовые `labels`

Подробнее см. в docstring двух описанных выше методов.

#### from_pretrained[[transformers.SpeechT5Processor.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike, cache_dir: str | os.PathLike | None = None, force_download: bool = False, local_files_only: bool = False, token: str | bool | None = None, revision: str = 'main', **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L1693)

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

pretrained_model_name_or_path (`str` или `os.PathLike`) : Может быть одним из следующих:  - строка, *model id* предобученного feature_extractor, размещенного в репозитории моделей на huggingface.co. - путь к *каталогу*, содержащему файл feature extractor, сохраненный с помощью метода [save_pretrained()](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.FeatureExtractionMixin.save_pretrained), например, `./my_model_directory/`. - путь к сохраненному JSON-*файлу* feature extractor, например, `./my_model_directory/preprocessor_config.json`.

- ****kwargs** : Дополнительные именованные аргументы, передаваемые как в [from_pretrained()](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.FeatureExtractionMixin.from_pretrained), так и в `~tokenization_utils_base.PreTrainedTokenizer.from_pretrained`.

Создайте экземпляр процессора, связанного с предобученной моделью.

Этот метод класса просто вызывает метод [from_pretrained()](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.FeatureExtractionMixin.from_pretrained) экстрактора признаков, метод [ImageProcessingMixin](/docs/transformers/main/ru/internal/image_processing_utils#transformers.ImageProcessingMixin) процессора изображений и метод `~tokenization_utils_base.PreTrainedTokenizer.from_pretrained` токенизатора. Более подробную информацию см. в строках документации указанных методов.

#### save_pretrained[[transformers.SpeechT5Processor.save_pretrained]]

```python
save_pretrained(save_directory, push_to_hub: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L1108)

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

save_directory (`str` или `os.PathLike`) : Каталог, в котором будут сохранены JSON-файл экстрактора признаков и файлы токенизатора (каталог будет создан, если он не существует).

push_to_hub (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли после сохранения модели загрузить её в Hugging Face model hub. Репозиторий, в который нужно загрузить модель, можно указать с помощью `repo_id` (по умолчанию используется имя `save_directory` в вашем пространстве имён).

kwargs (`dict[str, Any]`, *необязательный*) : Дополнительные именованные аргументы, передаваемые в метод [push_to_hub()](/docs/transformers/main/ru/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub).

Сохраняет атрибуты этого процессора (извлекатель признаков, токенизатор и т. д.) в указанную директорию, чтобы его можно было загрузить снова с помощью метода [from_pretrained()](/docs/transformers/main/ru/model_doc/wav2vec2#transformers.Wav2Vec2Processor.from_pretrained).

Этот метод класса просто вызывает [save_pretrained()](/docs/transformers/main/ru/main_classes/feature_extractor#transformers.FeatureExtractionMixin.save_pretrained) и [save_pretrained()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained). Подробности см. в строках документации указанных выше методов.

#### batch_decode[[transformers.SpeechT5Processor.batch_decode]]

```python
batch_decode(*args, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L1948)

Этот метод передаёт все свои аргументы в [batch_decode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.batch_decode) класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

#### decode[[transformers.SpeechT5Processor.decode]]

```python
decode(*args, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L1957)

Этот метод передаёт все свои аргументы в [decode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.decode) класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

## SpeechT5Model[[transformers.SpeechT5Model]]

#### transformers.SpeechT5Model[[transformers.SpeechT5Model]]

```python
transformers.SpeechT5Model(config: SpeechT5Config, encoder: typing.Optional[torch.nn.Module] = None, decoder: typing.Optional[torch.nn.Module] = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L1852)

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

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

encoder (`PreTrainedModel`, *необязательный*) : Модель энкодера, которую следует использовать.

decoder (`PreTrainedModel`, *необязательный*) : Модель декодера, которую следует использовать.

Модель SpeechT5 Encoder-Decoder, выводящая «сырые» скрытые состояния без каких-либо специфических пред- или пост-сетей.

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

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

#### forward[[transformers.SpeechT5Model.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, decoder_input_values: typing.Optional[torch.Tensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, use_cache: bool | None = None, speaker_embeddings: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L1894)

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

input_values (`torch.Tensor` формы `(batch_size, sequence_length)`) : В зависимости от используемого кодировщика, `input_values` представляют собой: значения с плавающей точкой входной сырой звуковой волны, индексы токенов входной последовательности в словаре или скрытые состояния.

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

decoder_input_values (`torch.Tensor` формы `(batch_size, target_sequence_length)`, *необязательный*) : В зависимости от используемого декодера, `decoder_input_values` представляют собой: значения с плавающей точкой лог-мел-фильтробанковых признаков, извлечённых из исходной речевой волны, или индексы токенов входной последовательности декодера в словаре, или скрытые состояния.

decoder_attention_mask (`torch.LongTensor` формы `(batch_size, target_sequence_length)`, *необязательный*) : Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в `decoder_input_values`. По умолчанию также будет использоваться каузальная маска. Если вы хотите изменить поведение при заполнении, прочитайте `SpeechT5Decoder._prepare_decoder_attention_mask` и измените его в соответствии со своими потребностями. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в [статье](https://huggingface.co/papers/1910.13461).

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *необязательный*) : Кортеж состоит из (`last_hidden_state`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `last_hidden_state` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) представляет собой последовательность скрытых состояний на выходе последнего слоя кодировщика. Используется в кросс-внимании декодера.

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

speaker_embeddings (`torch.Tensor` формы `(batch_size, config.speaker_embedding_dim)`, *необязательный*) : Тензор, содержащий эмбеддинги говорящих.

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/main/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

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

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

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

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

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя декодера модели.

  Если используется `past_key_values`, выводится только последнее скрытое состояние последовательностей формы `(batch_size, 1, hidden_size)`.
- **past_key_values** (`EncoderDecoderCache`, *необязательный*, возвращается при передаче `use_cache=True` или при `config.use_cache=True`) -- это экземпляр [EncoderDecoderCache](/docs/transformers/main/ru/internal/generation_utils#transformers.EncoderDecoderCache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния декодера на выходе каждого слоя, а также необязательные выходные значения начального эмбеддинга.
- **decoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или когда `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **cross_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) — Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания кросс-внимания декодера, после применения softmax к вниманию, используемые для вычисления взвешенного среднего в головах кросс-внимания.
- **encoder_last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) -- Последовательность скрытых состояний на выходе последнего слоя энкодера модели.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния энкодера на выходе каждого слоя, а также необязательные выходные значения начального эмбеддинга.
- **encoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания энкодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

## SpeechT5ForSpeechToText[[transformers.SpeechT5ForSpeechToText]]

#### transformers.SpeechT5ForSpeechToText[[transformers.SpeechT5ForSpeechToText]]

```python
transformers.SpeechT5ForSpeechToText(config: SpeechT5Config)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L1998)

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

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

Модель SpeechT5 с речевым энкодером и текстовым декодером.

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

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

#### forward[[transformers.SpeechT5ForSpeechToText.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, labels: typing.Optional[torch.LongTensor] = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2034)

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

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` следует использовать [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [SpeechT5Processor.__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor.__call__).

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` формы `(batch_size, target_sequence_length)`, *необязательно*) : Индексы токенов входной последовательности декодера в словаре. Индексы можно получить с помощью [SpeechT5Tokenizer](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Tokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы декодера?](../glossary#decoder-input-ids) SpeechT5 использует `eos_token_id` в качестве начального токена для генерации `decoder_input_ids`. Если используется `past_key_values`, необязательно вводить только последние `decoder_input_ids` (см. `past_key_values`).

decoder_attention_mask (`torch.LongTensor` формы `(batch_size, target_sequence_length)`, *необязательный*) : Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в `decoder_input_values`. По умолчанию также будет использоваться каузальная маска. Если вы хотите изменить поведение при заполнении, прочитайте `SpeechT5Decoder._prepare_decoder_attention_mask` и измените его в соответствии со своими потребностями. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в [статье](https://huggingface.co/papers/1910.13461).

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *необязательный*) : Кортеж состоит из (`last_hidden_state`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `last_hidden_state` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) представляет собой последовательность скрытых состояний на выходе последнего слоя кодировщика. Используется в кросс-внимании декодера.

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/main/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

labels (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Метки для вычисления потерь языковой модели. Индексы должны находиться в диапазоне `[0, ..., config.vocab_size]` или быть равны -100 (см. docstring `input_ids`). Токены с индексами, установленными в `-100`, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне `[0, ..., config.vocab_size]`. Индексы меток можно получить с помощью [SpeechT5Tokenizer](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Tokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__).

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

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

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

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

- **loss** (`torch.Tensor` формы `(1,)`, *необязательный*, возвращается, если задан `labels`) -- Потеря языковой модели.
- **logits** (`torch.Tensor` формы `(batch_size, sequence_length, config.vocab_size)`) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).
- **past_key_values** (`EncoderDecoderCache`, *необязательный*, возвращается при передаче `use_cache=True` или при `config.use_cache=True`) -- это экземпляр [EncoderDecoderCache](/docs/transformers/main/ru/internal/generation_utils#transformers.EncoderDecoderCache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.
- **decoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или когда `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **cross_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) — Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания кросс-внимания декодера, после применения softmax к вниманию, используемые для вычисления взвешенного среднего в головах кросс-внимания.
- **encoder_last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) -- Последовательность скрытых состояний на выходе последнего слоя энкодера модели.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.
- **encoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания энкодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToText
>>> from datasets import load_dataset

>>> dataset = load_dataset(
...     "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... )  # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_asr")
>>> model = SpeechT5ForSpeechToText.from_pretrained("microsoft/speecht5_asr")

>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> predicted_ids = model.generate(**inputs, max_length=100)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'
```

```python
>>> inputs["labels"] = processor(text_target=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
19.68
```

## SpeechT5ForTextToSpeech[[transformers.SpeechT5ForTextToSpeech]]

#### transformers.SpeechT5ForTextToSpeech[[transformers.SpeechT5ForTextToSpeech]]

```python
transformers.SpeechT5ForTextToSpeech(config: SpeechT5Config)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2310)

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

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

Модель SpeechT5 с текстовым энкодером и речевым декодером.

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

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

#### forward[[transformers.SpeechT5ForTextToSpeech.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, decoder_input_values: typing.Optional[torch.Tensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, speaker_embeddings: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, stop_labels: typing.Optional[torch.Tensor] = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2341)

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

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

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

decoder_input_values (`torch.Tensor` формы `(batch_size, sequence_length, config.num_mel_bins)`) : Значения типа Float входной мел-спектрограммы. SpeechT5 использует нулевой спектр в качестве стартового токена для генерации `decoder_input_values`. Если используется `past_key_values`, необязательно вводить только последние `decoder_input_values` (см. `past_key_values`).

decoder_attention_mask (`torch.LongTensor` формы `(batch_size, target_sequence_length)`, *необязательный*) : Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в `decoder_input_values`. По умолчанию также будет использоваться каузальная маска. Если вы хотите изменить поведение при заполнении, прочитайте `SpeechT5Decoder._prepare_decoder_attention_mask` и измените его в соответствии со своими потребностями. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в [статье](https://huggingface.co/papers/1910.13461).

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *необязательный*) : Кортеж состоит из (`last_hidden_state`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `last_hidden_state` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) представляет собой последовательность скрытых состояний на выходе последнего слоя кодировщика. Используется в кросс-внимании декодера.

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/main/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

speaker_embeddings (`torch.Tensor` формы `(batch_size, config.speaker_embedding_dim)`, *необязательный*) : Тензор, содержащий эмбеддинги говорящих.

labels (`torch.Tensor` формы `(batch_size, sequence_length, config.num_mel_bins)`, *необязательно*) : Значения типа float целевой мел-спектрограммы. Шаги времени, установленные в `-100.0`, игнорируются (маскируются) при вычислении функции потерь. Спектрограммы можно получить с помощью [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor). Подробности см. в [SpeechT5Processor.__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor.__call__).

stop_labels (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Двоичный тензор, указывающий позицию стоп-токена в последовательности.

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

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

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

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

- **loss** (`torch.Tensor` формы `(1,)`, *необязательный*, возвращается, если задан `labels`) -- Потеря генерации спектрограммы.
- **спектрограмма** (`torch.Tensor` формы `(batch_size, sequence_length, num_bins)`) -- Предсказанная спектрограмма.
- **past_key_values** (`EncoderDecoderCache`, *необязательный*, возвращается при передаче `use_cache=True` или при `config.use_cache=True`) -- это экземпляр [EncoderDecoderCache](/docs/transformers/main/ru/internal/generation_utils#transformers.EncoderDecoderCache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.
- **decoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или когда `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **cross_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) — Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания кросс-внимания декодера, после применения softmax к вниманию, используемые для вычисления взвешенного среднего в головах кросс-внимания.
- **encoder_last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) -- Последовательность скрытых состояний на выходе последнего слоя энкодера модели.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.
- **encoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания энкодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, set_seed
>>> import torch

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
>>> model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")

>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file

>>> set_seed(555)  # make deterministic

>>> # generate speech
>>> speech = model.generate(inputs["input_ids"], speaker_embeddings=speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([15872])
```

#### generate[[transformers.SpeechT5ForTextToSpeech.generate]]

```python
generate(input_ids: LongTensor, attention_mask: typing.Optional[torch.LongTensor] = None, speaker_embeddings: typing.Optional[torch.Tensor] = None, threshold: float = 0.5, minlenratio: float = 0.0, maxlenratio: float = 20.0, vocoder: typing.Optional[torch.nn.Module] = None, output_cross_attentions: bool = False, return_output_lengths: bool = False, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2464)

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

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

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`) : Маска внимания от токенизатора, необходимая для пакетного вывода, чтобы сообщить модели, какие токены заполнения в input_ids следует игнорировать.

speaker_embeddings (`torch.Tensor` формы `(batch_size, config.speaker_embedding_dim)`, *необязательный*) : Тензор, содержащий эмбеддинги говорящих.

threshold (`float`, *optional*, по умолчанию 0.5) : Генерация последовательности завершается, когда вероятность предсказанного токена остановки превышает это значение.

minlenratio (`float`, *необязательный*, по умолчанию 0.0) : Используется для вычисления минимальной требуемой длины выходной последовательности.

maxlenratio (`float`, *необязательный*, по умолчанию 20.0) : Используется для расчёта максимально допустимой длины выходной последовательности.

vocoder (`nn.Module`, *необязательный*) : Вокодер, преобразующий мел-спектрограмму в речевую волну. Если `None`, на выходе будет мел-спектрограмма.

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

return_output_lengths (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать конкретные длины спектрограммы/волновой формы.

**Возвращает:** `tuple(torch.Tensor)`, содержащий различные элементы в зависимости от входных данных

- когда `return_output_lengths` равно False
  - **спектрограмма** (*необязательный*, возвращается, если не указан `vocoder`) `torch.Tensor` формы `(output_sequence_length, config.num_mel_bins)` -- Предсказанная логарифмическая мел-спектрограмма.
  - **waveform** (*необязательный*, возвращается при указании `vocoder`) `torch.Tensor` формы `(num_frames,)` -- Предсказанная речевая волна.
  - **cross_attentions** (*необязательный*, возвращается, если `output_cross_attentions` равно `True`) `torch.Tensor` формы `(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)` -- Выходы слоёв кросс-внимания декодера.
- когда `return_output_lengths` равно True
  - **спектрограммы** (*необязательный*, возвращается, если не указан `vocoder`) `torch.Tensor` формы `(batch_size, output_sequence_length, config.num_mel_bins)` -- Предсказанные лог-мел-спектрограммы, дополненные нулями до максимальной длины.
  - **spectrogram_lengths** (*необязательный*, возвращается, если не указан `vocoder`) `list[Int]` -- Список конкретных длин для каждого спектрограммы.
  - **волновые формы** (*необязательно*, возвращается, если указан `vocoder`) `torch.Tensor` формы `(batch_size, num_frames)` -- Предсказанные речевые волновые формы, дополненные нулями до максимальной длины.
  - **waveform_lengths** (*optional*, возвращается, если указан `vocoder`) `list[Int]` -- Список конкретных длин для каждой волны.
  - **cross_attentions** (*необязательный*, возвращается, если `output_cross_attentions` равно `True`) `torch.Tensor` формы `(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)` -- Выходы слоёв кросс-внимания декодера.

Преобразует последовательность входных токенов в последовательность мел-спектрограмм, которые затем с помощью вокодера превращаются в речевую волну.

## SpeechT5ForSpeechToSpeech[[transformers.SpeechT5ForSpeechToSpeech]]

#### transformers.SpeechT5ForSpeechToSpeech[[transformers.SpeechT5ForSpeechToSpeech]]

```python
transformers.SpeechT5ForSpeechToSpeech(config: SpeechT5Config)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2658)

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

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

Модель SpeechT5 с речевым энкодером и речевым декодером.

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

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

#### forward[[transformers.SpeechT5ForSpeechToSpeech.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, decoder_input_values: typing.Optional[torch.Tensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, speaker_embeddings: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, stop_labels: typing.Optional[torch.Tensor] = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2678)

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

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` следует использовать [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [SpeechT5Processor.__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor.__call__).

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

decoder_input_values (`torch.Tensor` формы `(batch_size, sequence_length, config.num_mel_bins)`) : Значения типа Float входной мел-спектрограммы. SpeechT5 использует нулевой спектр в качестве стартового токена для генерации `decoder_input_values`. Если используется `past_key_values`, необязательно вводить только последние `decoder_input_values` (см. `past_key_values`).

decoder_attention_mask (`torch.LongTensor` формы `(batch_size, target_sequence_length)`, *необязательный*) : Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в `decoder_input_values`. По умолчанию также будет использоваться каузальная маска. Если вы хотите изменить поведение при заполнении, прочитайте `SpeechT5Decoder._prepare_decoder_attention_mask` и измените его в соответствии со своими потребностями. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в [статье](https://huggingface.co/papers/1910.13461).

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *необязательный*) : Кортеж состоит из (`last_hidden_state`, *необязательный*: `hidden_states`, *необязательный*: `attentions`) `last_hidden_state` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) представляет собой последовательность скрытых состояний на выходе последнего слоя кодировщика. Используется в кросс-внимании декодера.

past_key_values (`~cache_utils.Cache`, *необязательный*) : Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это `past_key_values`, возвращаемые моделью на предыдущем этапе декодирования, когда `use_cache=True` или `config.use_cache=True`. В качестве входного значения допускается только экземпляр [Cache](/docs/transformers/main/ru/internal/generation_utils#transformers.Cache), см. наше [руководство по kv cache](https://huggingface.co/docs/transformers/en/kv_cache). Если `past_key_values` не переданы, по умолчанию будет инициализирован [DynamicCache](/docs/transformers/main/ru/internal/generation_utils#transformers.DynamicCache). Модель будет выводить тот же формат кэша, который был передан на вход. Если используются `past_key_values`, ожидается, что пользователь передаст только необработанные `input_ids` (те, для которых не заданы их прошлые состояния ключей и значений в этой модели) с формой `(batch_size, unprocessed_length)` вместо всех `input_ids` с формой `(batch_size, sequence_length)`.

use_cache (`bool`, *необязательный*) : Если установлено в `True`, состояния ключей и значений `past_key_values` возвращаются и могут использоваться для ускорения декодирования (см. `past_key_values`).

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/main/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

speaker_embeddings (`torch.Tensor` формы `(batch_size, config.speaker_embedding_dim)`, *необязательный*) : Тензор, содержащий эмбеддинги говорящих.

labels (`torch.Tensor` формы `(batch_size, sequence_length, config.num_mel_bins)`, *необязательный*) : Значения целевой мел-спектрограммы в формате float. Спектрограммы можно получить с помощью [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor). Подробности см. в [SpeechT5Processor.__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor.__call__).

stop_labels (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Двоичный тензор, указывающий позицию стоп-токена в последовательности.

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

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

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

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

- **loss** (`torch.Tensor` формы `(1,)`, *необязательный*, возвращается, если задан `labels`) -- Потеря генерации спектрограммы.
- **спектрограмма** (`torch.Tensor` формы `(batch_size, sequence_length, num_bins)`) -- Предсказанная спектрограмма.
- **past_key_values** (`EncoderDecoderCache`, *необязательный*, возвращается при передаче `use_cache=True` или при `config.use_cache=True`) -- это экземпляр [EncoderDecoderCache](/docs/transformers/main/ru/internal/generation_utils#transformers.EncoderDecoderCache). Подробнее см. в нашем [руководстве по кэшированию kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход `past_key_values`) для ускорения последовательного декодирования.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.
- **decoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или когда `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **cross_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) — Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания кросс-внимания декодера, после применения softmax к вниманию, используемые для вычисления взвешенного среднего в головах кросс-внимания.
- **encoder_last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`, *необязательный*) -- Последовательность скрытых состояний на выходе последнего слоя энкодера модели.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или при `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.
- **encoder_attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания энкодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToSpeech, SpeechT5HifiGan, set_seed
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset(
...     "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... )  # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_vc")
>>> model = SpeechT5ForSpeechToSpeech.from_pretrained("microsoft/speecht5_vc")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")

>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")

>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file

>>> set_seed(555)  # make deterministic

>>> # generate speech
>>> speech = model.generate_speech(inputs["input_values"], speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([77824])
```

#### generate_speech[[transformers.SpeechT5ForSpeechToSpeech.generate_speech]]

```python
generate_speech(input_values: Tensor, speaker_embeddings: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, threshold: float = 0.5, minlenratio: float = 0.0, maxlenratio: float = 20.0, vocoder: typing.Optional[torch.nn.Module] = None, output_cross_attentions: bool = False, return_output_lengths: bool = False)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2796)

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

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` следует использовать [SpeechT5Processor](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [SpeechT5Processor.__call__()](/docs/transformers/main/ru/model_doc/speecht5#transformers.SpeechT5Processor.__call__).

speaker_embeddings (`torch.Tensor` формы `(batch_size, config.speaker_embedding_dim)`, *необязательный*) : Тензор, содержащий эмбеддинги говорящих.

attention_mask (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения выполнения свёртки и внимания на индексах токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

threshold (`float`, *optional*, по умолчанию 0.5) : Генерация последовательности завершается, когда вероятность предсказанного токена остановки превышает это значение.

minlenratio (`float`, *необязательный*, по умолчанию 0.0) : Используется для вычисления минимальной требуемой длины выходной последовательности.

maxlenratio (`float`, *необязательный*, по умолчанию 20.0) : Используется для расчёта максимально допустимой длины выходной последовательности.

vocoder (`nn.Module`, *необязательный*, по умолчанию `None`) : Вокодер, преобразующий мел-спектрограмму в речевую волну. Если `None`, на выходе получается мел-спектрограмма.

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

return_output_lengths (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли возвращать конкретные длины спектрограммы/волновой формы.

**Возвращает:** `tuple(torch.Tensor)`, содержащий различные элементы в зависимости от входных данных

- когда `return_output_lengths` равно False
  - **спектрограмма** (*необязательный*, возвращается, если не указан `vocoder`) `torch.Tensor` формы `(output_sequence_length, config.num_mel_bins)` -- Предсказанная логарифмическая мел-спектрограмма.
  - **waveform** (*необязательный*, возвращается при указании `vocoder`) `torch.Tensor` формы `(num_frames,)` -- Предсказанная речевая волна.
  - **cross_attentions** (*необязательный*, возвращается, если `output_cross_attentions` равно `True`) `torch.Tensor` формы `(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)` -- Выходы слоёв кросс-внимания декодера.
- когда `return_output_lengths` равно True
  - **спектрограммы** (*необязательный*, возвращается, если не указан `vocoder`) `torch.Tensor` формы `(batch_size, output_sequence_length, config.num_mel_bins)` -- Предсказанные лог-мел-спектрограммы, дополненные нулями до максимальной длины.
  - **spectrogram_lengths** (*необязательный*, возвращается, если не указан `vocoder`) `list[Int]` -- Список конкретных длин для каждого спектрограммы.
  - **волновые формы** (*необязательно*, возвращается, если указан `vocoder`) `torch.Tensor` формы `(batch_size, num_frames)` -- Предсказанные речевые волновые формы, дополненные нулями до максимальной длины.
  - **waveform_lengths** (*optional*, возвращается, если указан `vocoder`) `list[Int]` -- Список конкретных длин для каждой волны.
  - **cross_attentions** (*необязательный*, возвращается, если `output_cross_attentions` равно `True`) `torch.Tensor` формы `(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)` -- Выходы слоёв кросс-внимания декодера.

Преобразует исходную речевую форму волны в последовательность мел-спектрограмм, которые затем с помощью вокодера преобразуются обратно в речевую форму волны.

## SpeechT5HifiGan[[transformers.SpeechT5HifiGan]]

#### transformers.SpeechT5HifiGan[[transformers.SpeechT5HifiGan]]

```python
transformers.SpeechT5HifiGan(config: SpeechT5HifiGanConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L2954)

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

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

Вокодер HiFi-GAN.

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

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

#### forward[[transformers.SpeechT5HifiGan.forward]]

```python
forward(spectrogram: Tensor, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/speecht5/modeling_speecht5.py#L3022)

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

spectrogram (`torch.Tensor`) : тензор, содержащий лог-мел-спектрограммы. Может быть батчевым с формой `(batch_size, sequence_length, config.model_in_dim)` или небатчевым с формой `(sequence_length, config.model_in_dim)`.

**Возвращает:** `torch.Tensor`

Тензор, содержащий звуковую волну речи. Если входная спектрограмма имеет батч, форма будет `(batch_size, num_frames,)`. Если без батча, форма будет `(num_frames,)`.

Преобразует лог-мел-спектрограмму в речевую волну. Передача батча лог-мел-спектрограмм возвращает батч речевых волн. Передача одной небатчевой лог-мел-спектрограммы возвращает одну небатчевую речевую волну.

