Transformers documentation
Аудиотокенизатор Pocket TTS
Эта модель была добавлена в Hugging Face Transformers 2026-10-20.
Аудиотокенизатор Pocket TTS
Обзор
Аудиотокенизатор Pocket TTS: кодек с архитектурой Mimi (свёртки SEANet и небольшой каузальный трансформер с каждой стороны), в котором остаточный векторный квантизатор заменён непрерывным 32-мерным бутылочным горлышком, VAE-GAN из Continuous Audio Language Models. Он преобразует аудио 24 кГц в латенты с частотой 12,5 Гц и обратно. Его энкодер и декодер можно загрузить по отдельности (PocketTTSAudioTokenizerEncoderModel, PocketTTSAudioTokenizerDecoderModel). Это audio_tokenizer в PocketTTSProcessor, общий для всех чекпоинтов Pocket TTS: процессор кодирует голосовые промпты с его помощью и декодирует сгенерированные латенты.
Эта модель была предоставлена Eustache Le Bihan. Исходный код — kyutai-labs/pocket-tts.
Использование
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel
model = AutoModel.from_pretrained("eustlb/pocket-tts-audio-tokenizer", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("eustlb/pocket-tts-audio-tokenizer")
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(sampling_rate=24000))
inputs = feature_extractor(dataset[0]["audio"]["array"], sampling_rate=24000, return_tensors="pt").to(model.device)
latents = model.encode(**inputs).latents
audio_values = model.decode(latents).audio_valuesPocketTTSAudioTokenizerConfig
класс transformers.PocketTTSAudioTokenizerConfig
< 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
Параметры
- sampling_rate (
int, необязательный, по умолчанию24000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц). - audio_channels (
int, необязательный, по умолчанию 1) — Количество каналов в аудиоданных; опубликованные контрольные точки и данная реализация используют моно. - hidden_size (
int, необязательный, по умолчанию512) — Размерность скрытых представлений. - num_filters (
int, необязательный, по умолчанию 64) — Количество свёрточных ядер первого слояPocketTTSAudioTokenizerConv1dв кодере. - num_residual_layers (
int, необязательный, по умолчанию 1) — Количество остаточных слоёв. - upsampling_ratios (
list[int], необязательный) — Соотношения размеров ядра и шага для транспонированных свёрток декодера; энкодер использует их в обратном порядке. Если не указано, по умолчанию[6, 5, 4]. - kernel_size (
int, необязательный, по умолчанию7) — Размер свёрточного ядра. - last_kernel_size (
int, необязательный, по умолчанию 3) — Размер ядра для последнего свёрточного слоя. - residual_kernel_size (
int, необязательный, по умолчанию 3) — Размер ядра для остаточных слоёв. - dilation_growth_rate (
int, необязательный, по умолчанию 2) — Во сколько раз увеличивать дилатацию на каждом слое. - use_causal_conv (
bool, необязательный, по умолчаниюTrue) — Использовать ли полностью каузальную свёртку. - pad_mode (
str, необязательный, по умолчанию"constant") — Режим дополнения (padding) для свёрток. - compress (
int, необязательный, по умолчанию 2) — Сокращённая размерность в остаточных ветвях. - trim_right_ratio (
float, необязательный, по умолчанию 1.0) — Коэффициент обрезки справа для транспонированной свёртки при настройкеuse_causal_conv = True. Если равен 1.0, это означает, что вся обрезка выполняется справа. - use_conv_shortcut (
bool, необязательный, по умолчаниюFalse) — Использовать ли свёртку в качестве обходного соединения (skip connection) в остаточных блоках SEANet; в опубликованных контрольных точках это не используется. - upsample_groups (
int, необязательный, по умолчанию 512) — Количество групп в транспонированной свёртке, которая повышает разрешение латентов до частоты SEANet. - num_hidden_layers (
int, необязательный, по умолчанию2) — Количество скрытых слоев в декодере Transformer. - intermediate_size (
int, необязательный, по умолчанию2048) — Размерность представлений MLP. - num_attention_heads (
int, необязательный, по умолчанию8) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный, по умолчанию8) — Это количество ключевых и value-голов, используемых для реализации Grouped Query Attention. Еслиnum_key_value_heads=num_attention_heads, модель использует Multi Head Attention (MHA); еслиnum_key_value_heads=1— Multi Query Attention (MQA); в остальных случаях применяется GQA. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна конструироваться путем усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные подробности — в этой статье. Если значение не указано, по умолчанию используетсяnum_attention_heads. - head_dim (
int, необязательный) — Размер измерения головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - hidden_act (
str, необязательный, по умолчаниюgelu_pytorch_tanh) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - max_position_embeddings (
int, необязательный, по умолчанию8000) — Максимальная длина последовательности, с которой может использоваться эта модель. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - norm_eps (
float, необязательный, по умолчанию1e-05) — Значение epsilon, используемое слоями нормализации. - use_cache (
bool, необязательный, по умолчаниюFalse) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером. - use_streaming (
bool, необязательный, по умолчаниюFalse) — Указывает, включён ли по умолчанию режим потоковой обработки в кодировщике: в этом случае он возвращает кэш заполнителей и кэш ключей-значений для передачи в следующий вызов. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - sliding_window (
int, необязательный, по умолчанию250) — Размер окна скользящего внимания. ЕслиNone, скользящее окно не применяется. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - layer_scale_initial_scale (
float, необязательный, по умолчанию0.01) — Масштаб, используемый в слоях само-внимания. 0.1 для базовой модели, 1e-6 для крупной. Установите 0, чтобы отключить масштабирование слоя. - attention_bias (
bool, необязательный, по умолчаниюFalse) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании. - latent_stride (
int, необязательный, по умолчанию 16) — Число кадров SEANet на один латентный кадр: шаг свёртки энкодера, которая уменьшает размерность выходных данных SEANet до латентов, и шага транспонированной свёртки декодера, которая восстанавливает их обратно. Один латентный кадр покрываетprod(upsampling_ratios) * latent_strideаудиовыборок (frame_size, 1920 для опубликованных контрольных точек). - latent_dim (
int, необязательный, по умолчанию 32) — Размерность непрерывных латентов. Резидуальный векторный квантизатор Mimi заменяется этим бутылочным горлышком: свёртка понижающей дискретизации в кодере выводитlatent_dimканалов, а декодер проецирует их обратно вhidden_sizeперед повышающей дискретизацией.
Это класс конфигурации для хранения конфигурации модели PocketTTSAudioTokenizerModel. Он используется для создания модели Pocket Tts Audio Tokenizer в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации eustlb/pocket-tts-audio-tokenizer
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import PocketTTSAudioTokenizerConfig, PocketTTSAudioTokenizerModel
>>> # a full codec, and its decoder alone
>>> model = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig())
>>> decoder_only = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig(encoder_config=None))PocketTTSAudioTokenizerEncoderConfig
класс transformers.PocketTTSAudioTokenizerEncoderConfig
< 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
Конфигурация энкодерной части PocketTTSAudioTokenizer (энкодер SEANet, энкодер-трансформер и понижающая дискретизация). Она разделяет все поля с PocketTTSAudioTokenizerConfig (см. документацию для аргументов), поэтому её можно загрузить напрямую из полного чекпоинта PocketTTSAudioTokenizer.
PocketTTSAudioTokenizerDecoderConfig
класс transformers.PocketTTSAudioTokenizerDecoderConfig
< 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
Конфигурация декодерной части PocketTTSAudioTokenizer (апсемплинг, трансформер-декодер и декодер SEANet). Она разделяет все поля с PocketTTSAudioTokenizerConfig (см. документацию по аргументам), поэтому её можно загрузить напрямую из полного чекпоинта PocketTTSAudioTokenizer.
PocketTTSAudioTokenizerModel
класс transformers.PocketTTSAudioTokenizerModel
< source >( config: PocketTTSAudioTokenizerConfig )
Параметры
- config (PocketTTSAudioTokenizerConfig) — Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Аудиотокенизатор Pocket TTS: кодек с архитектурой Mimi, использующий непрерывное 32-мерное латентное пространство с частотой 12,5 Гц (VAE-GAN из Continuous Audio Language Models), который преобразует аудио с частотой 24 кГц в латенты и обратно.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
encode
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.pocket_tts_audio_tokenizer.modeling_pocket_tts_audio_tokenizer.PocketTTSAudioTokenizerConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Параметры
- input_values (
torch.Tensorформы(batch_size, audio_channels, num_samples)) — Аудиосигнал, возвращаемый EncodecFeatureExtractor, который дополняет нулями до кратногоconfig.frame_sizeвыборок, как и в оригинале. - padding_mask (
torch.Tensorформы(batch_size, num_samples), необязательный) — Маска аудиопризнаков (1) в отличие от заполнителей (0), на основе которой вычисляетсяlatents_mask. - encoder_past_key_values (
Cache, необязательный) — Кэш ключей и значений трансформера-энкодера, возвращаемый предыдущим вызовом при потоковой обработке. - padding_cache (
PocketTTSAudioTokenizerConv1dPaddingCache, optional) — Кэш отступов для каузальных свёрток энкодера, возвращаемый предыдущим вызовом при потоковой обработке. - use_streaming (
bool, необязательный) — Указывает, следует ли кодировать в потоковом режиме, возвращая кэши для передачи в следующий вызов.
Кодирует аудио в непрерывные латенты формы (batch_size, num_frames, latent_dim): латенты PocketTTSAudioTokenizerEncoderModel.forward(), сначала кадры.
decode
< source >( latents: Tensordecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Параметры
- latents (
torch.Tensorформы(batch_size, num_frames, latent_dim)) — Непрерывные латенты для декодирования, один кадр наconfig.frame_sizeаудиовыборок. - decoder_past_key_values (
Cache, необязательный) — Кэш ключей и значений декодера трансформера, возвращаемый предыдущим вызовом при декодировании по частям.
Декодирует непрерывные латенты в аудио: латенты проецируются в hidden_size, после чего декодируются с помощью PocketTTSAudioTokenizerDecoderModel.forward().
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerOutput or tuple(torch.Tensor)
Параметры
- input_values (
torch.Tensorформы(batch_size, audio_channels, num_samples)) — Аудиосигнал, возвращаемый EncodecFeatureExtractor. - padding_mask (
torch.Tensorформы(batch_size, num_samples), необязательный) — Маска аудиопризнаков (1) в отличие от заполнителей (0).
Возвращает
PocketTTSAudioTokenizerOutput или tuple(torch.Tensor)
PocketTTSAudioTokenizerOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PocketTTSAudioTokenizerConfig) и входных данных.
Метод forward модели PocketTTSAudioTokenizerModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- latents (
torch.Tensorформы(batch_size, num_frames, latent_dim)) — Непрерывные латенты аудио. - latents_mask (
torch.LongTensorформы(batch_size, num_frames), необязательный) — Маска латентных кадров, вычисленная из аудиоданных (1), а не из заполнителей (0). - audio_values (
torch.Tensorформы(batch_size, audio_channels, num_samples)) — Аудиосигнал, восстановленный из латентов. - hidden_states (
tuple(torch.Tensor), необязательный, возвращается приoutput_hidden_states=True) — Скрытые состояния трансформера-кодировщика на выходе каждого слоя, включая его вход. - attentions (
tuple(torch.Tensor), необязательный, возвращается приoutput_attentions=True) — Веса внимания каждого слоя трансформера-кодировщика.
PocketTTSAudioTokenizerEncoderModel
класс transformers.PocketTTSAudioTokenizerEncoderModel
< source >( config: PocketTTSAudioTokenizerEncoderConfig )
Параметры
- config (PocketTTSAudioTokenizerEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Кодировательная часть PocketTTSAudioTokenizer: кодировщик SEANet, трансформер-кодировщик и понижающая дискретизация, преобразующие аудио в непрерывные латенты.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.pocket_tts_audio_tokenizer.modeling_pocket_tts_audio_tokenizer.PocketTTSAudioTokenizerConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerEncoderModelOutput or tuple(torch.Tensor)
Параметры
- input_values (
torch.Tensorформы(batch_size, channels, sequence_length)) — Значения типа float для входной аудиоволны. - padding_mask (
torch.Tensorформы(batch_size, channels, sequence_length), необязательный) — Указывает, какие входные данные следует игнорировать из-за отступов (padding), где элементы равны 1 для не замаскированных или 0 для замаскированных. - past_key_values (
Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) трансформера-кодировщика, используемые для ускорения потокового кодирования. - padding_cache (
PocketTTSAudioTokenizerConv1dPaddingCache, optional) — Кэш отступов для каузальных свёрток, используемый для потокового кодирования. - use_streaming (
bool, необязательный) — Указывает, следует ли кодировать в потоковом режиме, возвращая кэши для передачи в следующий вызов. - Encodes входную аудиоволну в непрерывные латенты формы
(batch_size, latent_dim, frames). —
Возвращает
PocketTTSAudioTokenizerEncoderModelOutput или tuple(torch.Tensor)
PocketTTSAudioTokenizerEncoderModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PocketTTSAudioTokenizerConfig) и входных данных.
Метод forward модели PocketTTSAudioTokenizerEncoderModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- latents (
torch.Tensorформы(batch_size, latent_dim, frames)) — Непрерывные латенты аудио, один кадр наconfig.frame_sizeаудиовыборок. - past_key_values (
Cache, необязательный) — предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания) трансформера-кодировщика, возвращаемые при потоковой обработке. - padding_cache (
PocketTTSAudioTokenizerConv1dPaddingCache, optional) — Кэш отступов для каузальных свёрток в PocketTTSAudioTokenizerConv1d, обеспечивающий поддержку потоковой обработки за счёт отступов в кэше. - hidden_states (
tuple(torch.Tensor), необязательный, возвращается приoutput_hidden_states=True) — Скрытые состояния трансформера-кодировщика на выходе каждого слоя, включая его вход. - attentions (
tuple(torch.Tensor), необязательный, возвращается приoutput_attentions=True) — Веса внимания каждого слоя трансформера-кодировщика.
PocketTTSAudioTokenizerDecoderModel
класс transformers.PocketTTSAudioTokenizerDecoderModel
< source >( config: PocketTTSAudioTokenizerDecoderConfig )
Параметры
- config (PocketTTSAudioTokenizerDecoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().
Декодерская часть PocketTTSAudioTokenizer: апсемплинг, декодер-трансформер и декодер SEANet, преобразующие непрерывные латенты в аудио.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( latents: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerDecoderOutput or tuple(torch.Tensor)
Параметры
- latents (
torch.Tensorформы(batch_size, hidden_size, frames)) — Непрерывные латенты для декодирования, вычисленные с помощью PocketTTSAudioTokenizerModel.decode(). - padding_mask (
torch.Tensorформы(batch_size, channels, sequence_length), необязательный) — Указывает, какие входные данные следует игнорировать из-за отступов (padding), где элементы равны 1 для не замаскированных или 0 для замаскированных. - past_key_values (
Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) декодера-трансформера, используемые для ускорения потокового декодирования. - Decodes преобразует указанные кадры в выходную аудиоволну. Обратите внимание, что выходной сигнал может быть немного больше, чем —
- input. В этом случае любые дополнительные шаги в конце можно отбросить. —
Возвращает
PocketTTSAudioTokenizerDecoderOutput или tuple(torch.Tensor)
PocketTTSAudioTokenizerDecoderOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PocketTTSAudioTokenizerConfig) и входных данных.
Метод forward модели PocketTTSAudioTokenizerDecoderModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
audio_values (
torch.Tensorформы(batch_size, audio_channels, num_samples), необязательный) — Декодированные значения аудио, полученные с помощью декодерной части PocketTTSAudioTokenizer.decoder_past_key_values (
Cache, необязательный) — заранее вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования декодерного трансформера. Обычно этоpast_key_values, возвращаемые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, пользователь может по желанию передать только последниеaudio_valuesили `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).hidden_states (
tuple(torch.Tensor), необязательный, возвращается приoutput_hidden_states=True) — Скрытые состояния декодера-трансформера на выходе каждого слоя, включая его вход.attentions (
tuple(torch.Tensor), необязательный, возвращается приoutput_attentions=True) — Веса внимания каждого слоя декодера трансформера.