Transformers documentation

SpeechT5

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 14.10.2021 и добавлена в Hugging Face Transformers 03.02.2023.

SpeechT5

Обзор

Модель SpeechT5 была предложена в работе SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing авторами 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. Исходный код можно найти здесь.

Установите use_kernels=True в from_pretrained(), чтобы заменить поддерживаемые слои на оптимизированные ядра из Hub. Подробнее см. в разделе Загрузка ядер.

SpeechT5Config

класс transformers.SpeechT5Config

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 81hidden_size: int = 768encoder_layers: int = 12encoder_attention_heads: int = 12encoder_ffn_dim: int = 3072encoder_layerdrop: float | int = 0.1decoder_layers: int = 6decoder_ffn_dim: int = 3072decoder_attention_heads: int = 12decoder_layerdrop: float | int = 0.1hidden_act: str = 'gelu'positional_dropout: float | int = 0.1hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05scale_embedding: bool = Falsefeat_extract_norm: str = 'group'feat_proj_dropout: float | int = 0.0feat_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 = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16apply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10mask_feature_min_masks: int = 0pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2decoder_start_token_id: int | None = 2num_mel_bins: int = 80speech_decoder_prenet_layers: int = 2speech_decoder_prenet_units: int = 256speech_decoder_prenet_dropout: float | int = 0.5speaker_embedding_dim: int = 512speech_decoder_postnet_layers: int = 5speech_decoder_postnet_units: int = 256speech_decoder_postnet_kernel: int = 5speech_decoder_postnet_dropout: float | int = 0.5reduction_factor: int = 2max_speech_positions: int = 4000max_text_positions: int = 450encoder_max_relative_position: int = 160use_guided_attention_loss: bool = Trueguided_attention_loss_num_heads: int = 2guided_attention_loss_sigma: float = 0.4guided_attention_loss_scale: float = 10.0use_cache: bool = Truetie_word_embeddings: bool = True )

Параметры

  • is_encoder_decoder (bool, необязательный, по умолчанию True) — Указывает, используется ли модель в качестве энкодера/декодера.
  • vocab_size (int, необязательный, по умолчанию 81) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в input_ids.
  • hidden_size (int, необязательный, по умолчанию 768) — Размерность скрытых представлений.
  • encoder_layers (int, необязательный, по умолчанию 12) — Количество скрытых слоев в кодере Transformer. Если не задано, используется то же значение, что и у num_layers.
  • encoder_attention_heads (int, необязательный, по умолчанию 12) — Количество головок внимания в каждом слое внимания кодировщика Transformer.
  • encoder_ffn_dim (int, необязательный, по умолчанию 3072) — Размерность «промежуточного» (часто называемого feed-forward) слоя в энкодере.
  • encoder_layerdrop (Union[float, int], необязательный, по умолчанию 0.1) — Вероятность LayerDrop для энкодера. Подробности — в [статье о LayerDrop](см. 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](см. 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, необязательный, по умолчанию "group") — Тип нормализации, применяемой к одномерным свёрточным слоям в предсетке речевого энкодера. Одно из значений: "group" для групповой нормализации только первого одномерного свёрточного слоя или "layer" для послойной нормализации всех одномерных свёрточных слоёв.
  • feat_proj_dropout (float, необязательный, по умолчанию 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)) — Кортеж целых чисел, определяющий количество входных и выходных каналов каждого слоя 1D-свёртки в предсетке речевого энкодера. Длина conv_dim определяет количество 1D-свёрточных слоёв.
  • 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, необязательный, по умолчанию 128) — Количество сверточных позиционных эмбеддингов. Определяет размер ядра слоя 1D сверточных позиционных эмбеддингов.
  • num_conv_pos_embedding_groups (int, необязательный, по умолчанию 16) — Количество групп слоя одномерных свёрточных позиционных эмбеддингов.
  • apply_spec_augment (bool, необязательный, по умолчанию True) — Указывает, следует ли применять аугментацию данных SpecAugment к выходам предсети речевого энкодера. Для справки см. SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition.
  • mask_time_prob (float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_time_length (int, необязательный, по умолчанию 10) — Длина векторного диапазона вдоль временной оси.
  • mask_time_min_masks (int, необязательный, по умолчанию 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, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if 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, необязательный, по умолчанию 10) — Длина векторного диапазона вдоль оси признаков.
  • mask_feature_min_masks (int, необязательный, по умолчанию 0), — Минимальное количество масок длины mask_feature_length, генерируемых вдоль оси признаков на каждом шаге, независимо от значения mask_feature_prob. Актуально только в том случае, если ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”
  • num_mel_bins (int, необязательный, по умолчанию 80) — Количество мел-функций, используемых на каждый входной признак. Используется в предсети речевого декодера. Должно соответствовать значению, используемому в классе SpeechT5Processor.
  • pad_token_id (int, необязательный, по умолчанию 1) — Идентификатор токена, используемого для дополнения (padding) в словаре.
  • bos_token_id (int, необязательный, по умолчанию 0) — Идентификатор токена, используемого для обозначения начала потока в словаре.
  • eos_token_id (Union[int, list[int]], необязательный, по умолчанию 2) — Идентификатор токена, используемого для обозначения конца потока в словаре.
  • decoder_start_token_id (int, необязательный, по умолчанию 2) — Если модель encoder-decoder начинает декодирование с токена, отличного от bos, то идентификатор этого токена.
  • num_mel_bins (int, необязательный, по умолчанию 80) — Количество mel-признаков, используемых на входной кадр. Должно соответствовать значению, применяемому в классе AutoFeatureExtractor.
  • speech_decoder_prenet_layers (int, необязательный, по умолчанию 2) — Количество слоёв в pre-net декодера речи.
  • speech_decoder_prenet_units (int, необязательный, по умолчанию 256) — Размерность слоёв в pre-net декодера речи.
  • speech_decoder_prenet_dropout (float, необязательный, по умолчанию 0.5) — Вероятность dropout для слоёв pre-net речевого декодера.
  • speaker_embedding_dim (int, необязательный, по умолчанию 512) — Размерность векторов встраивания XVector.
  • speech_decoder_postnet_layers (int, необязательный, по умолчанию 5) — Количество слоев в пост-сети декодера речи.
  • speech_decoder_postnet_units (int, необязательный, по умолчанию 256) — Размерность слоёв в пост-сети речевого декодера.
  • speech_decoder_postnet_kernel (int, необязательный, по умолчанию 5) — Число каналов свёрточных фильтров в пост-сети декодера речи.
  • speech_decoder_postnet_dropout (float, необязательный, по умолчанию 0.5) — Вероятность dropout для пост-слоёв декодера речи.
  • 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 при обучении TTS-модели.
  • guided_attention_loss_num_heads (int, необязательный, по умолчанию 2) — Количество головок внимания, к которым будет применяться функция потерь guided attention. Используйте -1, чтобы применить эту потерю ко всем головкам внимания.
  • guided_attention_loss_sigma (float, необязательный, по умолчанию 0.4) — Стандартное отклонение для потерь направленного внимания.
  • guided_attention_loss_scale (float, необязательный, по умолчанию 10.0) — Коэффициент масштабирования для потерь направленного внимания (также известный как lambda).
  • use_cache (bool, необязательный, по умолчанию True) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только если config.is_decoder=True или если модель является генеративной моделью только с декодером.
  • tie_word_embeddings (bool, необязательный, по умолчанию True) — Определяет, следует ли связывать веса эмбеддингов согласно маппингу tied_weights_keys модели.

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

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> 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_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonemodel_in_dim: int = 80sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_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.01leaky_relu_slope: float = 0.1normalize_before: bool = True )

Параметры

  • model_in_dim (int, необязательный, по умолчанию 80) — Количество частотных бинов во входной лог-мел-спектрограмме.
  • sampling_rate (int, необязательный, по умолчанию 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]]) — Вложенный кортеж целых чисел, определяющий коэффициенты дилатации для дилатационных одномерных свёрточных слоёв в модуле multi-receptive field fusion (MRF).
  • initializer_range (float, необязательный, по умолчанию 0.01) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
  • leaky_relu_slope (float, необязательный, по умолчанию 0.1) — Угол отрицательного наклона, используемого активацией leaky ReLU.
  • normalize_before (bool, необязательный, по умолчанию True) — Указывает, следует ли нормализовать спектрограмму перед вокодером, используя усреднённые значения и дисперсию, выученные вокодером.

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

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> 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

< >

( vocab_filebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'normalize = Falsesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )

Параметры

  • vocab_file (str) — файл 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 может использоваться, в том числе, для настройки:
    • 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, используемый для каждого преобразования (строки, токены и ID).

Создайте токенизатор SpeechT5. Основан на SentencePiece.

Этот токенизатор наследуется от PreTrainedTokenizer, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Параметры

  • 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, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

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

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • return_token_type_ids (bool, необязательный) — Возвращать ли идентификаторы типов токенов. Если значение не указано, идентификаторы типов токенов будут возвращены в соответствии со значением по умолчанию для конкретного токенизатора, заданным атрибутом return_outputs .

    Что такое идентификаторы типов токенов?

  • return_attention_mask (bool, необязательный) — Возвращать ли маску внимания. Если значение не указано, маска внимания будет возвращена в соответствии со значением по умолчанию для конкретного токенизатора, определяемым атрибутом return_outputs .

    Что такое маски внимания?

  • 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. Если используется токенизатор на Python, этот метод вызовет NotImplementedError.

  • return_length (bool, необязательный, по умолчанию False) — Возвращать ли длины закодированных входных данных.
  • verbose (bool, необязательный, по умолчанию True) — Выводить ли дополнительную информацию и предупреждения.
  • **kwargs — передаются в метод self.tokenize()

Возвращает

BatchEncoding

BatchEncoding со следующими полями:

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

    Что такое входные идентификаторы?

  • token_type_ids — список идентификаторов типов токенов, передаваемых в модель (если return_token_type_ids=True или если “token_type_ids” входит в self.model_input_names).

    Что такое идентификаторы типов токенов?

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

    Что такое маски внимания?

  • 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

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Параметры

  • save_directory (str) — Каталог, в котором сохраняется словарь.
  • filename_prefix (str, необязательный) — Необязательный префикс, добавляемый к именам сохраняемых файлов.

Возвращает

tuple(str)

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

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

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Параметры

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Одна последовательность или батч (список последовательностей) токенизированных входных идентификаторов. Может быть получен с помощью метода __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

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Параметры

  • 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

< >

( feature_size: int = 1sampling_rate: int = 16000padding_value: float = 0.0do_normalize: bool = Falsenum_mel_bins: int = 80hop_length: int = 16win_length: int = 64win_function: str = 'hann_window'fmin: float = 80fmax: float = 7600mel_floor: float = 1e-10return_attention_mask: bool = True**kwargs )

Параметры

  • feature_size (int, необязательный, по умолчанию 1) — Размерность признаков извлечённых признаков.
  • sampling_rate (int, необязательный, по умолчанию 16000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц).
  • padding_value (float, необязательный, по умолчанию 0.0) — Значение, используемое для заполнения позиций, отведённых под padding.
  • do_normalize (bool, необязательный, по умолчанию False) — Указывает, следует ли нормализовать входные данные до нулевого среднего и единичной дисперсии. Нормализация может значительно улучшить производительность некоторых моделей.
  • num_mel_bins (int, необязательный, по умолчанию 80) — Количество мел-частотных бинов в извлечённых спектрограммных признаках.
  • hop_length (int, необязательный, по умолчанию 16) — Количество миллисекунд между окнами. Во многих статьях также называется «сдвиг».
  • win_length (int, необязательный, по умолчанию 64) — Длительность окна в миллисекундах.
  • win_function (str, optional, по умолчанию "hann_window") — Название оконной функции, используемой для оконирования; должна быть доступна через torch.{win_function}
  • fmin (float, необязательный, по умолчанию 80) — Минимальная частота в меле, Гц.
  • fmax (float, необязательный, по умолчанию 7600) — Максимальная мел-частота в Гц.
  • mel_floor (float, необязательный, по умолчанию 1e-10) — Минимальное значение банков мел-частот.
  • return_attention_mask (bool, необязательный, по умолчанию True) — Указывает, должен ли call() возвращать attention_mask.

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

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

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

Этот экстрактор признаков наследуется от SequenceFeatureExtractor, который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.

__call__

< >

( audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Noneaudio_target: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = None**kwargs )

Параметры

  • 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]], необязательный) — Последовательность или батч последовательностей, обрабатываемых в качестве целевых. Каждая последовательность может быть массивом numpy, списком значений float, списком массивов numpy или списком списков значений float. На выходе формируются признаки лог-мел-спектрограммы.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Выберите стратегию дополнения возвращаемых последовательностей (с учётом стороны дополнения модели и индекса дополнения) из следующих вариантов:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • max_length (int, необязательный) — Максимальная длина возвращаемого списка и, при необходимости, длина отступов (см. выше).
  • truncation (bool) — Включает усечение, чтобы обрезать входные последовательности длиннее max_length до max_length.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения.

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

  • return_attention_mask (bool, необязательный) — Следует ли возвращать attention mask. Если значение не указано, будет возвращена attention mask в соответствии со значением по умолчанию для конкретного feature_extractor.

    Что такое маски внимания?

  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • sampling_rate (int, необязательный) — Частота дискретизации, с которой были оцифрованы входные данные audio или audio_target. Настоятельно рекомендуется передавать sampling_rate при вызове forward, чтобы избежать скрытых ошибок.

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

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

SpeechT5Processor

класс transformers.SpeechT5Processor

< >

( feature_extractortokenizer )

Параметры

  • feature_extractor (SpeechT5FeatureExtractor) — Экстрактор признаков является обязательным входным параметром.
  • tokenizer (SpeechT5Tokenizer) — Токенизатор является обязательным входным параметром.

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

SpeechT5Processor предоставляет все возможности SpeechT5FeatureExtractor и SpeechT5Tokenizer. Подробнее см. в ~SpeechT5FeatureExtractor и ~SpeechT5Tokenizer.

__call__

< >

( *args**kwargs )

Параметры

  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты NumPy np.ndarray.

pad

< >

( *args**kwargs )

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

Аудиовходные данные дополняются методом pad() класса SpeechT5FeatureExtractor. Текстовые входные данные дополняются методом pad() класса SpeechT5Tokenizer.

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

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

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

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )

Параметры

  • pretrained_model_name_or_path (str или os.PathLike) — Это может быть:
    • строка, model id предобученного feature_extractor, размещенного в репозитории модели на huggingface.co.
    • путь к каталогу, содержащему файл feature extractor, сохранённый с помощью метода save_pretrained(), например, ./my_model_directory/.
    • путь к сохранённому JSON-файлу экстрактора признаков, например, ./my_model_directory/preprocessor_config.json.
  • **kwargs — Дополнительные именованные аргументы, передаваемые как в from_pretrained(), так и в ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

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

Этот метод класса просто вызывает метод from_pretrained() экстрактора признаков, метод ImageProcessingMixin процессора изображений и метод ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained токенизатора. Подробности см. в строках документации указанных методов.

save_pretrained

< >

( save_directorypush_to_hub: bool = False**kwargs )

Параметры

  • save_directory (str или os.PathLike) — Каталог, в котором будут сохранены JSON-файл feature extractor и файлы токенизатора (каталог будет создан, если он не существует).
  • push_to_hub (bool, необязательный, по умолчанию False) — Указывает, следует ли после сохранения отправить вашу модель в Hugging Face model hub. С помощью repo_id можно указать репозиторий, в который нужно отправить модель (по умолчанию используется имя save_directory в вашем пространстве имён).
  • kwargs (dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в метод push_to_hub().

Сохраняет атрибуты этого процессора (извлекатель признаков, токенизатор…) в указанную директорию, чтобы его можно было загрузить повторно с помощью метода from_pretrained().

Этот метод класса просто вызывает save_pretrained() и save_pretrained(). Подробности см. в строках документации методов, описанных выше.

batch_decode

< >

( *args**kwargs )

Этот метод передаёт все свои аргументы в batch_decode() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

decode

< >

( *args**kwargs )

Этот метод передаёт все свои аргументы в decode() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

SpeechT5Model

класс transformers.SpeechT5Model

< >

( config: SpeechT5Configencoder: typing.Optional[torch.nn.Module] = Nonedecoder: typing.Optional[torch.nn.Module] = None )

Параметры

  • config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
  • encoder (PreTrainedModel, необязательный) — Модель-энкодер, которую следует использовать.
  • decoder (PreTrainedModel, необязательный) — Модель декодера, которую следует использовать.

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

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

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Seq2SeqModelOutput or tuple(torch.Tensor)

Параметры

  • input_values (torch.Tensor формы (batch_size, sequence_length)) — В зависимости от используемого энкодера, input_values представляют собой: значения с плавающей точкой входной сырой речевой волны, индексы токенов входной последовательности в словаре или скрытые состояния.
  • attention_mask (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_values (torch.Tensor формы (batch_size, target_sequence_length), необязательный) — В зависимости от используемого декодера decoder_input_values представляют собой: значения float лог-мел-фильтробанковых признаков, извлечённых из исходной речевой волны; индексы токенов входной последовательности декодера в словаре; или скрытые состояния.
  • decoder_attention_mask (torch.LongTensor формы (batch_size, target_sequence_length), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий pad-токены в decoder_input_values. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при выравнивании, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените код под свои нужды. Подробнее о стратегии по умолчанию — на схеме 1 в статье.

  • 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, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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 вместо обычного кортежа.

Возвращает

Seq2SeqModelOutput или tuple(torch.Tensor)

Объект Seq2SeqModelOutput или кортеж torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (SpeechT5Config) и входных данных.

Метод forward модели 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход 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

< >

( config: SpeechT5Config )

Параметры

  • config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

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

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

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Параметры

  • 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 для выравнивания и преобразования в тензор типа torch.Tensor. Подробности см. в SpeechT5Processor.call().
  • attention_mask (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_ids (torch.LongTensor формы (batch_size, target_sequence_length), необязательный) — Индексы токенов входной последовательности декодера в словаре. Индексы можно получить с помощью SpeechT5Tokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call(). Что такое decoder input IDs? SpeechT5 использует eos_token_id в качестве начального токена для генерации decoder_input_ids. Если используется past_key_values, необязательно вводить все decoder_input_ids — достаточно только последних (см. past_key_values).

    Индексы можно получить с помощью SpeechT5Tokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы декодера?

    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), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий pad-токены в decoder_input_values. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при выравнивании, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените код под свои нужды. Подробнее о стратегии по умолчанию — на схеме 1 в статье.

  • 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, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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 вместо обычного кортежа.
  • labels (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Метки для вычисления потерь языковой модели. Индексы должны находиться в диапазоне [0, ..., config.vocab_size] или быть равны -100 (см. input_ids в документации). Токены с индексом -100 игнорируются (маскируются), потери вычисляются только для токенов с метками в диапазоне [0, ..., config.vocab_size].

    Индексы меток можно получить с помощью SpeechT5Tokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

Возвращает

Seq2SeqLMOutput или tuple(torch.Tensor)

Объект Seq2SeqLMOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (SpeechT5Config) и входных данных.

Метод forward класса 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход 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 внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

>>> 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'
>>> 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

< >

( config: SpeechT5Config )

Параметры

  • config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

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

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

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length)) — Индексы токенов входной последовательности в словаре.

    Индексы можно получить с помощью SpeechT5Tokenizer. Подробности — в encode() и call().

    Что такое входные идентификаторы?

  • attention_mask (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • 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), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий pad-токены в decoder_input_values. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при выравнивании, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените код под свои нужды. Подробнее о стратегии по умолчанию — на схеме 1 в статье.

  • 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, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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 вместо обычного кортежа.
  • 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. Подробности см. в SpeechT5Processor.call().
  • stop_labels (torch.Tensor формы (batch_size, sequence_length), необязательный) — Двоичный тензор, указывающий позицию стоп-токена в последовательности.

Возвращает

Seq2SeqSpectrogramOutput или tuple(torch.Tensor)

Объект Seq2SeqSpectrogramOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (SpeechT5Config) и входных данных.

Метод forward класса 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход 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 внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

>>> 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

< >

( input_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False**kwargs ) → tuple(torch.Tensor) comprising various elements depending on the inputs

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length)) — Индексы токенов входной последовательности в словаре.

    Индексы можно получить с помощью SpeechT5Tokenizer. Подробности — в encode() и call().

    Что такое входные идентификаторы?

  • attention_mask (torch.LongTensor формы (batch_size, sequence_length)) — Маска внимания от токенизатора, необходимая для пакетного вывода, чтобы сообщить модели, где игнорировать заполняющие токены в input_ids.
  • speaker_embeddings (torch.Tensor формы (batch_size, config.speaker_embedding_dim), необязательный) — Тензор, содержащий эмбеддинги говорящих.
  • threshold (float, необязательный, по умолчанию 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 (необязательный, возвращается, если указан 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

< >

( config: SpeechT5Config )

Параметры

  • config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

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

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

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)

Параметры

  • input_values (torch.Tensor of shape (batch_size, sequence_length)) — Float values of input raw speech waveform. Values can be obtained by loading a .flac or .wav audio file into an array of type list[float], a numpy.ndarray or a torch.Tensor, e.g. via the torchcodec library (pip install torchcodec) or the soundfile library (pip install soundfile). To prepare the array into input_values, the SpeechT5Processor should be used for padding and conversion into a tensor of type torch.Tensor. See SpeechT5Processor.call() for details.
  • attention_mask (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • 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), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий pad-токены в decoder_input_values. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при выравнивании, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, прочитайте SpeechT5Decoder._prepare_decoder_attention_mask и измените код под свои нужды. Подробнее о стратегии по умолчанию — на схеме 1 в статье.

  • 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, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован 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 вместо обычного кортежа.
  • speaker_embeddings (torch.Tensor формы (batch_size, config.speaker_embedding_dim), необязательный) — Тензор, содержащий эмбеддинги говорящих.
  • labels (torch.Tensor формы (batch_size, sequence_length, config.num_mel_bins), необязательный) — Значения float целевой мел-спектрограммы. Спектрограммы можно получить с помощью SpeechT5Processor. Подробности см. в SpeechT5Processor.call().
  • stop_labels (torch.Tensor формы (batch_size, sequence_length), необязательный) — Двоичный тензор, указывающий позицию стоп-токена в последовательности.

Возвращает

Seq2SeqSpectrogramOutput или tuple(torch.Tensor)

Объект Seq2SeqSpectrogramOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (SpeechT5Config) и входных данных.

Метод forward класса 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. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход 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 внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Пример:

>>> 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

< >

( input_values: Tensorspeaker_embeddings: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False ) → tuple(torch.Tensor) comprising various elements depending on the inputs

Параметры

  • 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 для выравнивания и преобразования в тензор типа torch.Tensor. Подробности см. в SpeechT5Processor.call().

  • speaker_embeddings (torch.Tensor формы (batch_size, config.speaker_embedding_dim), необязательный) — Тензор, содержащий эмбеддинги говорящих.
  • attention_mask (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения выполнения свёртки и внимания на индексах токенов-заполнителей. Значения маски выбираются из [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • threshold (float, необязательный, по умолчанию 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 (необязательный, возвращается, если указан 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

< >

( config: SpeechT5HifiGanConfig )

Параметры

  • config (SpeechT5HifiGanConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Вокодер HiFi-GAN.

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

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( spectrogram: Tensor**kwargs ) → torch.Tensor

Параметры

  • 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,).

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

Update on GitHub