Transformers documentation
SpeechT5
Эта модель была опубликована в 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
< source >( 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 ifapply_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 ifapply_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.configSpeechT5HifiGanConfig
класс transformers.SpeechT5HifiGanConfig
< source >( 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.configSpeechT5Tokenizer
класс transformers.SpeechT5Tokenizer
< source >( 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__
< source >( 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.TensorPyTorch.'np': возвращает объекты Numpynp.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 со следующими полями:
-
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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Сохраните словарь sentencepiece (скопируйте исходный файл) в каталог.
decode
< source >( 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
< source >( 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
< source >( 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__
< source >( 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.TensorPyTorch.'np': возвращает объекты Numpynp.ndarray.
- sampling_rate (
int, необязательный) — Частота дискретизации, с которой были оцифрованы входные данныеaudioилиaudio_target. Настоятельно рекомендуется передаватьsampling_rateпри вызове forward, чтобы избежать скрытых ошибок.
Основной метод для создания признаков и подготовки одной или нескольких последовательностей для модели.
Передайте значение для audio, чтобы извлечь характеристики волновой формы. Передайте значение для audio_target, чтобы извлечь характеристики лог-мел-спектрограммы.
SpeechT5Processor
класс transformers.SpeechT5Processor
< source >( feature_extractortokenizer )
Создаёт SpeechT5Processor, который объединяет feature extractor и tokenizer в единый processor.
SpeechT5Processor предоставляет все возможности SpeechT5FeatureExtractor и SpeechT5Tokenizer. Подробнее см. в ~SpeechT5FeatureExtractor и ~SpeechT5Tokenizer.
__call__
< source >( *args**kwargs )
Параметры
- return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
Собирает аудио- и текстовые входные данные, а также их целевые значения, в батч с выравниванием.
Аудиовходные данные дополняются методом pad() класса SpeechT5FeatureExtractor. Текстовые входные данные дополняются методом pad() класса SpeechT5Tokenizer.
Допустимые комбинации входных данных:
- только
input_ids - только
input_values labels— только лог-мел-спектрограммы или текстовые токеныinput_idsи лог-мел-спектрограммаlabelsinput_valuesи текстовыеlabels
Подробнее см. в docstring двух описанных выше методов.
from_pretrained
< source >( 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
< source >( 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() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.
Этот метод передаёт все свои аргументы в decode() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.
SpeechT5Model
класс transformers.SpeechT5Model
< source >( 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
< source >( 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
< source >( config: SpeechT5Config )
Параметры
- config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель SpeechT5 с речевым энкодером и текстовым декодером.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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'SpeechT5ForTextToSpeech
класс transformers.SpeechT5ForTextToSpeech
< source >( config: SpeechT5Config )
Параметры
- config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель SpeechT5 с текстовым энкодером и речевым декодером.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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
< source >( 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
< source >( config: SpeechT5Config )
Параметры
- config (SpeechT5Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель SpeechT5 с речевым энкодером и речевым декодером.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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.Tensorof 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 typelist[float], anumpy.ndarrayor atorch.Tensor, e.g. via the torchcodec library (pip install torchcodec) or the soundfile library (pip install soundfile). To prepare the array intoinput_values, the SpeechT5Processor should be used for padding and conversion into a tensor of typetorch.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
< source >( 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
< source >( config: SpeechT5HifiGanConfig )
Параметры
- config (SpeechT5HifiGanConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Вокодер HiFi-GAN.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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,).
Преобразует лог-мел-спектрограмму в речевую волну. Передача батча лог-мел-спектрограмм возвращает батч речевых волн. Передача одной, не сгруппированной в батч лог-мел-спектрограммы возвращает одну, не сгруппированную в батч речевую волну.