Transformers documentation
SpeechT5
이 모델은 2021-10-14에 HF papers에 게시되었으며, 2023-02-03에 Hugging Face Transformers에 기여되었습니다.
SpeechT5
개요
SpeechT5 모델은 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가 SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing에서 제안했습니다.
해당 논문의 초록은 다음과 같습니다:
자연어 처리 사전 학습 모델에서 T5(Text-To-Text Transfer Transformer)의 성공에 힘입어, 우리는 자기 지도형 음성/텍스트 표현 학습을 위한 인코더-디코더 사전 학습을 탐구하는 통합 모달 SpeechT5 프레임워크를 제안합니다. SpeechT5 프레임워크는 공유 인코더-디코더 네트워크와 6개의 모달별(음성/텍스트) 사전/사후 네트워크로 구성됩니다. 입력 음성/텍스트를 사전 네트워크로 전처리한 후, 공유 인코더-디코더 네트워크가 시퀀스-투-시퀀스 변환을 모델링하고, 이후 사후 네트워크가 디코더의 출력을 기반으로 음성/텍스트 모달의 출력을 생성합니다. 대규모 무라벨 음성 및 텍스트 데이터를 활용하여 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 인코더의 각 attention layer에 사용할 attention head의 수입니다. - 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 decoder의 hidden layer 수입니다. 설정하지 않으면num_layers와 동일한 값을 사용합니다. - decoder_ffn_dim (
int, 선택 사항, 기본값3072) — decoder의 “intermediate”(일반적으로 feed-forward라고도 함) 레이어의 차원입니다. - decoder_attention_heads (
int, 선택 사항, 기본값12) — Transformer decoder의 각 attention layer에 사용할 attention head 수입니다. - 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) — Attention 확률에 적용할 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") — 음성 인코더의 pre-net에 있는 1D 컨볼루션 레이어에 적용할 정규화입니다. 첫 번째 1D 컨볼루션 레이어에만 group normalization을 적용하려면"group", 모든 1D 컨볼루션 레이어에 layer normalization을 적용하려면"layer"를 사용합니다. - feat_proj_dropout (
float, 선택 사항, 기본값 0.0) — 음성 인코더 pre-net 출력의 dropout 확률입니다. - 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)) — 음성 인코더 프리넷의 각 1D 컨볼루션 레이어의 스트라이드를 정의하는 정수 튜플입니다. conv_stride의 길이는 컨볼루션 레이어의 수를 정의하며, conv_dim의 길이와 일치해야 합니다. - conv_kernel (
tuple[int]또는list[int], 선택 사항, 기본값(10, 3, 3, 3, 3, 3, 3)) — 음성 인코더 프리넷의 각 1D 컨볼루션 레이어의 커널 크기를 정의하는 정수 튜플입니다. conv_kernel의 길이는 컨볼루션 레이어의 수를 정의하며, conv_dim의 길이와 일치해야 합니다. - conv_bias (
bool, 선택 사항, 기본값False) — 1D 컨볼루션 레이어에 bias가 있는지 여부. - num_conv_pos_embeddings (
int, 선택 사항, 기본값 128) — 컨볼루션 위치 임베딩의 개수입니다. 1차원 컨볼루션 위치 임베딩 레이어의 커널 크기를 정의합니다. - num_conv_pos_embedding_groups (
int, 선택 사항, 기본값 16) — 1D 합성곱 위치 임베딩 레이어의 그룹 수. - apply_spec_augment (
bool, 선택 사항, 기본값True) — 음성 인코더 pre-net의 출력에 SpecAugment 데이터 증강을 적용할지 여부입니다. 참고로 SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition를 확인하세요. - mask_time_prob (
float, optional, defaults to 0.05) — 시간 축을 따라 모든 feature vector 중 마스킹될 비율(0에서 1 사이). 마스킹 절차는 해당 축에 대해 ”mask_time_problen(time_axis)/mask_time_length”개의 독립적인 마스크를 생성합니다. 마스킹될 벡터 스팬의 시작점으로 각 feature vector가 선택될 확률로부터 추론한다면, 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_prob와 무관하게, 시간축의 각 시간 단계에서mask_feature_length길이의 최소 마스크 수입니다. "mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks"인 경우에만 관련이 있습니다. - mask_feature_prob (
float, 선택 사항, 기본값 0.0) — feature 축을 따라 모든 feature 벡터 중 마스킹될 비율(0에서 1 사이). 마스킹 절차는 해당 축에 대해 ”mask_feature_problen(feature_axis)/mask_time_length”개의 독립적인 마스크를 생성합니다. 마스킹될 벡터 스팬의 시작점으로 선택될 각 feature 벡터의 확률로 추론한다면, 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) — feature 축을 따라 마스킹될 모든 feature 벡터의 비율(0에서 1 사이). 마스킹 절차는 해당 축에 대해mask_feature_prob*len(feature_axis)/mask_time_length개의 독립적인 마스크를 생성합니다. 각 feature 벡터가 마스킹될 벡터 스팬의 시작점으로 선택될 확률로부터 추론한다면, mask_feature_prob는prob_vector_start*mask_feature_length여야 합니다. 겹침(overlap)으로 인해 실제 마스킹된 벡터의 비율이 감소할 수 있습니다. 이는apply_spec_augment가True인 경우에만 관련이 있습니다. - mask_feature_length (
int, 선택 사항, 기본값 10) — feature 축을 따라 벡터가 확장되는 길이입니다. - mask_feature_min_masks (
int, 선택 사항, 기본값 0), —mask_feature_prob와 무관하게, 각 시간 단계마다 feature 축을 따라 생성되는mask_feature_length길이의 mask의 최소 개수입니다. “mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”인 경우에만 관련이 있습니다. - num_mel_bins (
int, 선택 사항, 기본값 80) — 입력 특징별로 사용되는 mel 특징의 수입니다. 음성 디코더 pre-net에서 사용됩니다. SpeechT5Processor 클래스에서 사용된 값과 일치해야 합니다. - pad_token_id (
int, 선택 사항, 기본값1) — 어휘에서 패딩에 사용되는 토큰 ID입니다. - bos_token_id (
int, 선택 사항, 기본값0) — 어휘에서 스트림 시작에 사용되는 토큰 id입니다. - eos_token_id (
Union[int, list[int]], 선택 사항, 기본값2) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다. - decoder_start_token_id (
int, 선택 사항, 기본값2) — 인코더-디코더 모델이bos와 다른 토큰으로 디코딩을 시작하는 경우, 해당 토큰의 id입니다. - num_mel_bins (
int, 선택 사항, 기본값80) — 입력 프레임당 사용되는 mel 특징의 수입니다.AutoFeatureExtractor클래스에서 사용된 값과 일치해야 합니다. - speech_decoder_prenet_layers (
int, 선택 사항, 기본값 2) — 음성 디코더 프리넷의 레이어 수입니다. - speech_decoder_prenet_units (
int, 선택 사항, 기본값 256) — 음성 디코더 pre-net 레이어의 차원입니다. - speech_decoder_prenet_dropout (
float, 선택 사항, 기본값 0.5) — 음성 디코더 pre-net 레이어의 dropout 확률입니다. - speaker_embedding_dim (
int, 선택 사항, 기본값 512) — XVector 임베딩 벡터의 차원입니다. - speech_decoder_postnet_layers (
int, 선택 사항, 기본값 5) — 음성 디코더 포스트넷의 레이어 수입니다. - speech_decoder_postnet_units (
int, 선택 사항, 기본값 256) — 음성 디코더 포스트넷 레이어의 차원입니다. - speech_decoder_postnet_kernel (
int, 선택 사항, 기본값 5) — 음성 디코더 post-net의 컨볼루션 필터 채널 수입니다. - speech_decoder_postnet_dropout (
float, 선택 사항, 기본값 0.5) — 음성 디코더 post-net 레이어의 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) — TTS 모델 학습 시 guided attention loss를 적용할지 여부. - guided_attention_loss_num_heads (
int, 선택 사항, 기본값 2) — guided attention loss가 적용될 attention head의 수입니다. 모든 attention head에 이 loss를 적용하려면 -1을 사용하세요. - guided_attention_loss_sigma (
float, 선택 사항, 기본값 0.4) — guided attention loss의 표준 편차입니다. - guided_attention_loss_scale (
float, 선택 사항, 기본값 10.0) — 가이드드 어텐션 손실의 스케일 계수(lambda로도 불림). - use_cache (
bool, 선택 사항, 기본값True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음).config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다. - tie_word_embeddings (
bool, 선택, 기본값True) — 모델의tied_weights_keys매핑에 따라 가중치 임베딩을 묶을지 여부.
이것은 SpeechT5Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Speecht5 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 microsoft/speecht5_asr와 유사한 설정이 생성됩니다.
Configuration 객체는 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) — 입력 log-mel spectrogram의 주파수 빈(bin) 수입니다. - sampling_rate (
int, 선택 사항, 기본값16000) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수입니다. 헤르츠(Hz) 단위로 표시됩니다. - upsample_initial_channel (
int, 선택 사항, 기본값 512) — 업샘플링 네트워크의 입력 채널 수입니다. - upsample_rates (
tuple[int]또는list[int], 선택 사항, 기본값[4, 4, 4, 4]) — 업샘플링 네트워크에서 각 1D 합성곱 레이어의 스트라이드를 정의하는 정수 튜플입니다. upsample_rates의 길이는 합성곱 레이어의 수를 정의하며, upsample_kernel_sizes의 길이와 일치해야 합니다. - upsample_kernel_sizes (
tuple[int]또는list[int], 선택 사항, 기본값[8, 8, 8, 8]) — 업샘플링 네트워크의 각 1D 컨볼루션 레이어의 커널 크기를 정의하는 정수 튜플입니다. upsample_kernel_sizes의 길이는 컨볼루션 레이어의 수를 정의하며, upsample_rates의 길이와 일치해야 합니다. - resblock_kernel_sizes (
tuple[int]또는list[int], 선택 사항, 기본값[3, 7, 11]) — 멀티 리셉티브 필드 퓨전(MRF) 모듈 내 1D 컨볼루션 레이어의 커널 크기를 정의하는 정수 튜플입니다. - resblock_dilation_sizes (
tuple[tuple[int]]또는list[list[int]], 선택 사항, 기본값[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — 멀티 리셉티브 필드 퓨전(MRF) 모듈 내의 확장 1D 합성곱 계층의 확장 비율(dilation rate)을 정의하는 정수의 중첩 튜플입니다. - initializer_range (
float, 선택 사항, 기본값0.01) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - leaky_relu_slope (
float, 선택 사항, 기본값 0.1) — leaky ReLU 활성화 함수에서 사용되는 음의 기울기의 각도입니다. - normalize_before (
bool, 선택 사항, 기본값True) — vocoder의 학습된 평균과 분산을 사용하여 vocoding 전에 스펙트로그램을 정규화할지 여부입니다.
이것은 SpeechT5Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Speecht5 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 microsoft/speecht5_asr와 유사한 설정이 생성됩니다.
Configuration 객체는 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>") — 패딩에 사용되는 토큰입니다. 예를 들어, 길이가 다른 시퀀스를 배치(batching)할 때 사용됩니다. - normalize (
bool, 선택, 기본값False) — 텍스트 내의 수량 값을 영어로 표기된 형태(예: "one", "two")로 변환할지 여부. - sp_model_kwargs (
dict, 선택 사항) — 다음 메서드에 전달됩니다.SentencePieceProcessor.__init__()SentencePiece의 Python 래퍼 를 사용하여 다음을 설정할 수 있습니다:-
enable_sampling: 서브워드 정규화를 활성화합니다. -
nbest_size: unigram의 샘플링 파라미터입니다. BPE-Dropout에는 사용할 수 없습니다.nbest_size = {0,1}: 샘플링이 수행되지 않습니다.nbest_size > 1: nbest_size 결과에서 샘플링합니다.nbest_size < 0: nbest_size가 무한하다고 가정하고, forward-filtering-and-backward-sampling 알고리즘을 사용하여 모든 가설(lattice)에서 샘플링합니다.
-
alpha: unigram 샘플링의 smoothing parameter 및 BPE-dropout의 merge 작업 dropout 확률
-
- sp_model (
SentencePieceProcessor) — 모든 변환(문자열, 토큰 및 ID)에 사용되는 SentencePiece 프로세서입니다.
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) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이는 입력 ID에 자동으로 추가되는 토큰을 정의하는 기반 함수인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, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - stride (
int, 선택 사항, 기본값 0) —max_length와 함께 숫자로 설정하면,return_overflowing_tokens=True일 때 반환되는 오버플로 토큰에는 잘린 시퀀스의 끝부분에서 가져온 일부 토큰이 포함됩니다. 이를 통해 잘린 시퀀스와 오버플로 시퀀스 사이에 일부 중복이 생깁니다. 이 인수의 값은 중복되는 토큰의 수를 정의합니다. - is_split_into_words (
bool, 선택 사항, 기본값False) — 입력이 이미 사전 토큰화(예: 단어 단위로 분리)되었는지 여부입니다.True로 설정하면 토크나이저는 입력이 이미 단어 단위로 분리되어 있다고 가정하고(예: 공백 기준으로 분리) 이를 토큰화합니다. 이는 NER 또는 토큰 분류에 유용합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.padding이 활성화되어 있어야 합니다. 이는 Volta에서>= 7.5의 컴퓨트 기능을 가진 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': Numpynp.ndarray객체를 반환합니다.
- return_token_type_ids (
bool, 선택 사항) — 토큰 타입 ID를 반환할지 여부. 기본값으로 두면, 해당 토크나이저의 기본값에 따라 토큰 타입 ID를 반환합니다. 이 기본값은return_outputs속성으로 정의됩니다. - return_attention_mask (
bool, 선택 사항) — attention mask를 반환할지 여부. 기본값으로 두면,return_outputs속성에 의해 정의된 해당 tokenizer의 기본값에 따라 attention mask를 반환합니다. - return_overflowing_tokens (
bool, 선택 사항, 기본값False) — 넘치는 토큰 시퀀스를 반환할지 여부입니다. 입력 ID의 시퀀스 쌍(또는 쌍의 배치)이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 — 모델에 입력할 토큰 ID 목록.
-
token_type_ids — 모델에 입력할 토큰 유형 ID 목록 (
return_token_type_ids=True인 경우 또는self.model_input_names에 “token_type_ids”가 포함된 경우). -
attention_mask — 모델이 어떤 토큰에 주의를 기울여야 하는지 지정하는 인덱스 목록 (
return_attention_mask=True이거나self.model_input_names에 “attention_mask”가 포함된 경우). -
overflowing_tokens — 넘친 토큰 시퀀스 목록(
max_length이 지정되고return_overflowing_tokens=True인 경우). -
num_truncated_tokens — 잘림된 토큰의 개수(
max_length가 지정되고return_overflowing_tokens=True인 경우). -
special_tokens_mask — 0과 1의 목록으로, 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)
…
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]) — 토큰화된 입력 ID의 단일 시퀀스 또는 배치(시퀀스 목록)입니다.__call__메서드를 사용하여 얻을 수 있습니다. - skip_special_tokens (
bool, 선택 사항, 기본값False) — 디코딩 과정에서 특수 토큰을 제거할지 여부입니다. - kwargs (추가 키워드 인자, 선택 사항) — 기저 모델의 특정 decode 메서드에 전달됩니다.
반환값
Union[str, list[str]]
단일 시퀀스에 대한 디코딩된 문자열, 또는 시퀀스 배치에 대한 디코딩된 문자열 목록.
토크나이저와 어휘를 사용하여 특수 토큰을 제거하고 토크나이제이션 공백을 정리하는 옵션을 포함하여 id 시퀀스를 문자열로, 또는 시퀀스 목록을 문자열 목록으로 변환합니다.
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]) — 토큰화된 입력 ID 목록입니다.__call__메서드를 사용하여 얻을 수 있습니다. - skip_special_tokens (
bool, 선택 사항, 기본값False) — 디코딩 과정에서 특수 토큰을 제거할지 여부입니다. - clean_up_tokenization_spaces (
bool, 선택) — 토큰화 공백을 정리할지 여부입니다.None인 경우 기본값으로self.clean_up_tokenization_spaces를 사용합니다. - kwargs (추가 키워드 인자, 선택 사항) — 기저 모델의 특정 decode 메서드에 전달됩니다.
반환값
list[str]
디코딩된 문장의 목록입니다.
decode를 호출하여 토큰 ID의 리스트로 된 리스트를 문자열의 리스트로 변환합니다.
이 메서드는 하위 호환성을 위해 제공됩니다. decode 메서드가 이제 배치 입력을 네이티브로 처리하므로, batch_decode 대신 decode를 직접 사용할 수 있습니다.
SpeechT5FeatureExtractor
class 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) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수(Hz). - padding_value (
float, 선택 사항, 기본값 0.0) — 패딩 값으로 채우는 데 사용되는 값입니다. - do_normalize (
bool, 선택 사항, 기본값False) — 입력을 평균 0, 분산 1로 정규화할지 여부입니다. 정규화를 적용하면 일부 모델의 성능을 크게 향상시킬 수 있습니다. - num_mel_bins (
int, 선택 사항, 기본값 80) — 추출된 스펙트로그램 특징에 포함된 mel 주파수 빈의 수입니다. - hop_length (
int, 선택 사항, 기본값 16) — 창(window) 사이의 간격(ms). 많은 논문에서는 이를 “shift”라고도 부릅니다. - win_length (
int, 선택 사항, 기본값 64) — 창당 밀리초 수. - win_function (
str, 선택 사항, 기본값"hann_window") — 윈도화에 사용되는 윈도우 함수의 이름으로,torch.{win_function}를 통해 접근 가능해야 합니다. - fmin (
float, 선택 사항, 기본값 80) — Hz 단위 최소 멜 주파수. - fmax (
float, 선택 사항, 기본값 7600) — Hz 단위 최대 멜 주파수. - mel_floor (
float, 선택 사항, 기본값 1e-10) — mel 주파수 뱅크의 최소값입니다. - return_attention_mask (
bool, 선택, 기본값True) — call()에서attention_mask를 반환할지 여부.
SpeechT5 feature extractor를 생성합니다.
이 클래스는 SpeechT5 음성 인코더 prenet에서 사용하도록, 원시 음성 신호를 (선택적으로) 평균 0, 분산 1로 정규화하여 전처리할 수 있습니다.
이 클래스는 SpeechT5 음성 디코더의 prenet에서 사용할 수 있도록 원시 음성에서 log-mel 필터 뱅크 특징을 추출하는 데에도 사용할 수 있습니다.
이 feature extractor는 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]], 선택 사항) — 처리할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 numpy 배열, float 값의 리스트, numpy 배열의 리스트, 또는 float 값의 리스트의 리스트일 수 있습니다. 이 인자는 웨이브폼 특징을 출력합니다. 스테레오가 아닌 모노 채널 오디오여야 하며, 즉 각 타임스텝당 float 값이 하나만 있어야 합니다. - audio_target (
np.ndarray,list[float],list[np.ndarray],list[list[float]], 선택 사항) — 타겟으로 처리할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 numpy 배열, float 값의 리스트, numpy 배열의 리스트, float 값의 리스트의 리스트일 수 있습니다. 이 인자는 log-mel spectrogram features를 출력합니다. - padding (
bool,str또는 PaddingStrategy, 선택 사항, 기본값은False) — 모델의 패딩 방향과 패딩 인덱스에 따라 반환된 시퀀스에 적용할 패딩 전략을 다음 중 선택합니다:True또는'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).'max_length':max_length인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.False또는'do_not_pad'(기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
- max_length (
int, 선택 사항) — 반환되는 목록의 최대 길이 및 선택적으로 패딩 길이(위 참조). - truncation (
bool) — 입력 시퀀스가 max_length보다 길 경우 max_length로 잘라내는 truncation을 활성화합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.이 기능은 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용하며, 이는 compute capability가
>= 7.5(Volta)인 하드웨어나, 시퀀스 길이가 128의 배수일 때 성능 향상을 얻는 TPU에서 해당됩니다. - return_attention_mask (
bool, 선택 사항) — attention mask를 반환할지 여부입니다. 기본값을 그대로 두면 해당 feature_extractor의 기본 설정에 따라 attention mask를 반환합니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': Numpynp.ndarray객체를 반환합니다.
- sampling_rate (
int, 선택 사항) —audio또는audio_target입력이 샘플링된 샘플링 레이트입니다. 조용한 오류를 방지하려면 forward 호출 시sampling_rate를 전달하는 것이 강력히 권장됩니다.
하나 이상의 시퀀스를 특징화(featurize)하고 모델에 맞게 준비하는 주요 메서드입니다.
audio에 값을 전달하여 웨이브폼 특징을 추출합니다. audio_target에 값을 전달하여 로그-멜 스펙트로그램 특징을 추출합니다.
SpeechT5Processor
클래스 transformers.SpeechT5Processor
< source >( feature_extractortokenizer )
feature extractor와 tokenizer를 단일 processor로 감싸는 SpeechT5Processor를 생성합니다.
SpeechT5Processor는 SpeechT5FeatureExtractor와 SpeechT5Tokenizer의 모든 기능을 제공합니다. 자세한 내용은 ~SpeechT5FeatureExtractor와 ~SpeechT5Tokenizer를 참고하세요.
__call__
< source >( *args**kwargs )
매개변수
- return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': NumPynp.ndarray객체를 반환합니다.
오디오 및 텍스트 입력과 해당 타깃을 패딩된 배치로 collate합니다.
Audio 입력은 SpeechT5FeatureExtractor의 pad()로 패딩됩니다. Text 입력은 SpeechT5Tokenizer의 pad()로 패딩됩니다.
유효한 입력 조합은 다음과 같습니다:
input_ids만input_values만labels만, log-mel spectrogram 또는 텍스트 토큰input_ids와 log-mel spectrogramlabelsinput_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) — 다음 중 하나일 수 있습니다:- 문자열이며, huggingface.co의 모델 저장소에 호스팅된 사전 학습된 feature_extractor의 model id입니다.
- save_pretrained() 메서드를 사용하여 feature extractor 파일을 저장한 디렉터리의 경로, 예:
./my_model_directory/. - 저장된 feature extractor JSON 파일의 경로, 예:
./my_model_directory/preprocessor_config.json.
- **kwargs —
from_pretrained()와
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained에 함께 전달되는 추가 키워드 인자입니다.
과(와) 연관된 를 초기화합니다.
이 클래스 메서드는 단순히 feature extractor의 from_pretrained(), image processor의 ImageProcessingMixin 및 tokenizer의
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained메서드를 호출합니다. 자세한 내용은 위 메서드들의 docstring을 참고하세요.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
매개변수
- save_directory (
str또는os.PathLike) — feature extractor JSON 파일과 tokenizer 파일이 저장될 디렉터리입니다(존재하지 않는 경우 생성됩니다). - push_to_hub (
bool, 선택 사항, 기본값False) — 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다.repo_id를 사용하여 푸시할 저장소를 지정할 수 있으며, 지정하지 않으면 네임스페이스 내save_directory의 이름이 기본값으로 사용됩니다. - kwargs (
dict[str, Any], 선택) — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자입니다.
이 프로세서(feature extractor, tokenizer 등)의 속성을 지정된 디렉터리에 저장하여 from_pretrained() 메서드를 사용해 다시 로드할 수 있도록 합니다.
이 클래스 메서드는 단순히 save_pretrained()와 save_pretrained()를 호출합니다. 자세한 내용은 위 메서드의 docstring을 참고하세요.
이 메서드는 모든 인수를 PreTrainedTokenizer의 batch_decode()로 전달합니다. 자세한 내용은 해당 메서드의 docstring을 참고하세요.
이 메서드는 모든 인수를 PreTrainedTokenizer의 decode()로 전달합니다. 자세한 내용은 해당 메서드의 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, 선택 사항) — 사용할 decoder 모델입니다.
특정 사전 네트워크나 사후 네트워크 없이 원시 hidden-states를 출력하는 SpeechT5 Encoder-Decoder 모델의 기본 형태입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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, shape(batch_size, sequence_length)) — 사용 중인 인코더에 따라input_values는 입력 원시 음성 파형의 float 값, 어휘 내 입력 시퀀스 토큰의 인덱스, 또는 hidden states 중 하나입니다. - attention_mask (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- decoder_input_values (
torch.Tensor, shape(batch_size, target_sequence_length), 선택 사항) — 사용 중인 decoder에 따라decoder_input_values는 다음 중 하나입니다: 원시 음성 파형에서 추출한 log-mel filterbank feature의 float 값, 어휘 내 decoder 입력 시퀀스 토큰의 인덱스, 또는 hidden states. - decoder_attention_mask (
torch.LongTensor다음 형태의(batch_size, target_sequence_length), 선택 사항) — 기본 동작:decoder_input_values. 에서 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 함께 사용됩니다. 패딩 동작을 변경하려면 SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.패딩 동작을 변경하려면
SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요. - encoder_outputs (
tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)으로 구성된 Tuple입니다.last_hidden_state의 shape은(batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조). - speaker_embeddings (
torch.Tensor, shape(batch_size, config.speaker_embedding_dim), 선택 사항) — 스피커 임베딩을 포함하는 텐서. - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
Seq2SeqModelOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 Seq2SeqModelOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(SpeechT5Config)과 입력에 따라 다양한 요소를 포함합니다.
SpeechT5Model의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 decoder 마지막 레이어 출력의 hidden-state 시퀀스입니다.past_key_values가 사용되면,(batch_size, 1, hidden_size)형태의 시퀀스의 마지막 hidden-state만 출력됩니다.past_key_values (
EncoderDecoderCache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — EncoderDecoderCache 인스턴스입니다. 자세한 내용은 kv 캐시 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력
past_key_values참조).decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어 출력의 decoder hidden-states와 선택적인 초기 embedding 출력
decoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어 출력의 인코더 hidden-states와 선택적인 초기 임베딩 출력.
encoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
SpeechT5ForSpeechToText
클래스 transformers.SpeechT5ForSpeechToText
< source >( config: SpeechT5Config )
매개변수
- config (SpeechT5Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
음성 인코더와 텍스트 디코더를 갖춘 SpeechT5 모델.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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, shape(batch_size, sequence_length)) — 입력 원시 음성 파형의 부동소수점 값. .flac 또는 .wav 오디오 파일을list[float],numpy.ndarray또는torch.Tensor타입의 배열로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 통해 예를 들어 로드할 수 있습니다.input_values배열을 준비하려면 패딩 및torch.Tensor타입의 텐서 변환을 위해 SpeechT5Processor를 사용해야 합니다. 자세한 내용은 SpeechT5Processor.call()를 참조하세요. - attention_mask (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- decoder_input_ids (
torch.LongTensor형상(batch_size, target_sequence_length), , 선택 사항) — 어휘에서 디코더 입력 시퀀스 토큰의 인덱스입니다. SpeechT5Tokenizer를 사용하여 인덱스를 가져올 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. 디코더 입력 ID란 무엇인가요? SpeechT5는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조).SpeechT5Tokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참고하세요.
SpeechT5는
decoder_input_ids생성의 시작 토큰으로eos_token_id를 사용합니다.past_key_values를 사용하는 경우, 선택적으로 마지막decoder_input_ids만 입력하면 됩니다(past_key_values참조). - decoder_attention_mask (
torch.LongTensor다음 형태의(batch_size, target_sequence_length), 선택 사항) — 기본 동작:decoder_input_values. 에서 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 함께 사용됩니다. 패딩 동작을 변경하려면 SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.패딩 동작을 변경하려면
SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요. - encoder_outputs (
tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)으로 구성된 Tuple입니다.last_hidden_state의 shape은(batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조). - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부. - labels (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 언어 모델링 손실을 계산하기 위한 라벨. 인덱스는[0, ..., config.vocab_size]또는 -100이어야 합니다(참고input_idsdocstring). 인덱스가-100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이[0, ..., config.vocab_size].SpeechT5Tokenizer를 사용하여 라벨 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참고하세요.
반환값
Seq2SeqLMOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 Seq2SeqLMOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(SpeechT5Config)과 입력에 따라 다양한 요소를 포함합니다.
SpeechT5ForSpeechToText의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 언어 모델링 손실.logits (
torch.Tensor, shape(batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).past_key_values (
EncoderDecoderCache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — EncoderDecoderCache 인스턴스입니다. 자세한 내용은 kv 캐시 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력
past_key_values참조).decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 디코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
decoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 인코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
encoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
예:
>>> 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에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- decoder_input_values (
torch.Tensor형상이(batch_size, sequence_length, config.num_mel_bins)) — 입력 멜 스펙트로그램의 부동소수점 값입니다.SpeechT5는
decoder_input_values생성의 시작 토큰으로 전 성분 0 스펙트럼을 사용합니다.past_key_values를 사용하는 경우, 선택적으로 마지막decoder_input_values만 입력하면 됩니다(past_key_values참조). - decoder_attention_mask (
torch.LongTensor다음 형태의(batch_size, target_sequence_length), 선택 사항) — 기본 동작:decoder_input_values. 에서 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 함께 사용됩니다. 패딩 동작을 변경하려면 SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.패딩 동작을 변경하려면
SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요. - encoder_outputs (
tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)으로 구성된 Tuple입니다.last_hidden_state의 shape은(batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조). - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부. - speaker_embeddings (
torch.Tensor, shape(batch_size, config.speaker_embedding_dim), 선택 사항) — 스피커 임베딩을 포함하는 텐서. - labels (
torch.Tensor, shape(batch_size, sequence_length, config.num_mel_bins), 선택 사항) — 목표 mel spectrogram의 float 값입니다.-100.0으로 설정된 timestep은 손실 계산 시 무시(마스크)됩니다. Spectrogram은 SpeechT5Processor를 사용하여 얻을 수 있습니다. 자세한 내용은 SpeechT5Processor.call()를 참조하세요. - stop_labels (
torch.Tensor, shape(batch_size, sequence_length), 선택 사항) — 시퀀스에서 stop token의 위치를 나타내는 바이너리 텐서입니다.
반환값
Seq2SeqSpectrogramOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 Seq2SeqSpectrogramOutput (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(SpeechT5Config)과 입력에 따라 다양한 요소를 포함합니다.
SpeechT5ForTextToSpeech의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 스펙트로그램 생성 손실.spectrogram (
torch.Tensor, shape(batch_size, sequence_length, num_bins)) — 예측된 spectrogram.past_key_values (
EncoderDecoderCache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — EncoderDecoderCache 인스턴스입니다. 자세한 내용은 kv 캐시 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력
past_key_values참조).decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 디코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
decoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 인코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
encoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
예:
>>> 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.LongTensorof shape(batch_size, sequence_length)) — Attention mask from the tokenizer, required for batched inference to signal to the model where to ignore padded tokens from the input_ids. - speaker_embeddings (
torch.Tensor, shape(batch_size, config.speaker_embedding_dim), 선택 사항) — 스피커 임베딩을 포함하는 텐서. - threshold (
float, 선택 사항, 기본값 0.5) — 생성된 시퀀스는 예측된 stop token 확률이 이 값을 초과할 때 종료됩니다. - minlenratio (
float, 선택 사항, 기본값 0.0) — 출력 시퀀스에 필요한 최소 길이를 계산하는 데 사용됩니다. - maxlenratio (
float, 선택 사항, 기본값 20.0) — 출력 시퀀스에 허용되는 최대 길이를 계산하는 데 사용됩니다. - vocoder (
nn.Module, 선택) — 멜 스펙트로그램을 음성 웨이브폼으로 변환하는 보코더입니다.None인 경우, 출력은 멜 스펙트로그램입니다. - output_cross_attentions (
bool, 선택 사항, 기본값False) — 디코더의 cross-attention 레이어 attention 텐서를 반환할지 여부. - return_output_lengths (
bool, 선택 사항, 기본값False) — 구체적인 스펙트로그램/웨이브폼 길이를 반환할지 여부.
반환값
입력에 따라 다양한 요소를 포함하는 tuple(torch.Tensor)
- 가
return_output_lengths인 경우- spectrogram (선택,
vocoder가 제공되지 않은 경우 반환됨)torch.Tensor, shape(output_sequence_length, config.num_mel_bins)— 예측된 log-mel spectrogram입니다. - waveform (선택,
vocoder가 제공된 경우 반환됨)torch.Tensor, shape(num_frames,)— 예측된 음성 waveform입니다. - cross_attentions (선택,
output_cross_attentions이True일 때 반환됨)torch.Tensor, shape(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— decoder의 cross-attention 레이어 출력입니다.
- spectrogram (선택,
- 인수
return_output_lengths이 True인 경우- 스펙트로그램 (선택 사항,
vocoder가 제공되지 않은 경우 반환됨)torch.Tensor의 shape은(batch_size, output_sequence_length, config.num_mel_bins)입니다. 최대 길이로 패딩된 예측된 log-mel 스펙트로그램입니다. - spectrogram_lengths (선택,
vocoder가 제공되지 않은 경우 반환됨)list[Int]— 각 스펙트로그램의 구체적인 길이를 모두 담은 리스트입니다. - waveforms (선택,
vocoder가 제공된 경우 반환됨)torch.Tensor의 shape은(batch_size, num_frames)입니다. 최대 길이에 맞게 패딩된 예측 음성 waveforms입니다. - waveform_lengths (선택,
vocoder가 제공된 경우 반환됨)list[Int]— 각 waveform의 구체적인 길이를 담은 목록입니다. - cross_attentions (선택,
output_cross_attentions이True일 때 반환됨)torch.Tensor, shape(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— 디코더의 cross-attention 레이어 출력입니다.
- 스펙트로그램 (선택 사항,
입력 토큰 시퀀스를 mel spectrogram 시퀀스로 변환한 후, vocoder를 사용하여 음성 웨이브폼으로 변환합니다.
SpeechT5ForSpeechToSpeech
클래스 transformers.SpeechT5ForSpeechToSpeech
< source >( config: SpeechT5Config )
매개변수
- config (SpeechT5Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
음성 인코더와 음성 디코더를 갖춘 SpeechT5 모델.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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.Tensor, shape(batch_size, sequence_length)) — 입력 원시 음성 파형의 부동소수점 값. .flac 또는 .wav 오디오 파일을list[float],numpy.ndarray또는torch.Tensor타입의 배열로 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 통해 예를 들어 로드할 수 있습니다.input_values배열을 준비하려면 패딩 및torch.Tensor타입의 텐서 변환을 위해 SpeechT5Processor를 사용해야 합니다. 자세한 내용은 SpeechT5Processor.call()를 참조하세요. - attention_mask (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- decoder_input_values (
torch.Tensor형상이(batch_size, sequence_length, config.num_mel_bins)) — 입력 멜 스펙트로그램의 부동소수점 값입니다.SpeechT5는
decoder_input_values생성의 시작 토큰으로 전 성분 0 스펙트럼을 사용합니다.past_key_values를 사용하는 경우, 선택적으로 마지막decoder_input_values만 입력하면 됩니다(past_key_values참조). - decoder_attention_mask (
torch.LongTensor다음 형태의(batch_size, target_sequence_length), 선택 사항) — 기본 동작:decoder_input_values. 에서 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 함께 사용됩니다. 패딩 동작을 변경하려면 SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.패딩 동작을 변경하려면
SpeechT5Decoder._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요. - encoder_outputs (
tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)으로 구성된 Tuple입니다.last_hidden_state의 shape은(batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조). - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부. - speaker_embeddings (
torch.Tensor, shape(batch_size, config.speaker_embedding_dim), 선택 사항) — 스피커 임베딩을 포함하는 텐서. - labels (
torch.Tensor, shape(batch_size, sequence_length, config.num_mel_bins), 선택 사항) — 목표 mel spectrogram의 float 값입니다. SpeechT5Processor를 사용하여 spectrogram을 얻을 수 있습니다. 자세한 내용은 SpeechT5Processor.call()를 참조하세요. - stop_labels (
torch.Tensor, shape(batch_size, sequence_length), 선택 사항) — 시퀀스에서 stop token의 위치를 나타내는 바이너리 텐서입니다.
반환값
Seq2SeqSpectrogramOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 Seq2SeqSpectrogramOutput (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(SpeechT5Config)과 입력에 따라 다양한 요소를 포함합니다.
SpeechT5ForSpeechToSpeech의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 스펙트로그램 생성 손실.spectrogram (
torch.Tensor, shape(batch_size, sequence_length, num_bins)) — 예측된 spectrogram.past_key_values (
EncoderDecoderCache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — EncoderDecoderCache 인스턴스입니다. 자세한 내용은 kv 캐시 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력
past_key_values참조).decoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 디코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
decoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 인코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
encoder_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
예:
>>> 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()을 참조하세요.list[float]타입의 배열,numpy.ndarray또는torch.Tensor로 .flac 또는 .wav 오디오 파일을 로드하여 값을 얻을 수 있습니다. 예를 들어 torchcodec 라이브러리(pip install torchcodec) 또는 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다(예).input_values로 배열을 준비하려면 패딩 및torch.Tensor타입의 텐서 변환을 위해 SpeechT5Processor를 사용해야 합니다. 자세한 내용은 SpeechT5Processor.call()를 참조하세요. - speaker_embeddings (
torch.Tensor, shape(batch_size, config.speaker_embedding_dim), 선택 사항) — 스피커 임베딩을 포함하는 텐서. - attention_mask (
torch.LongTensor다음 형태의(batch_size, sequence_length), , 선택 사항) — 패딩 토큰 인덱스에 대해 컨볼루션과 어텐션을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. 어텐션 마스크란 무엇일까요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- threshold (
float, 선택 사항, 기본값 0.5) — 생성된 시퀀스는 예측된 stop token 확률이 이 값을 초과할 때 종료됩니다. - minlenratio (
float, 선택 사항, 기본값 0.0) — 출력 시퀀스에 필요한 최소 길이를 계산하는 데 사용됩니다. - maxlenratio (
float, 선택 사항, 기본값 20.0) — 출력 시퀀스에 허용되는 최대 길이를 계산하는 데 사용됩니다. - vocoder (
nn.Module, 선택, 기본값None) — 멜 스펙트로그램을 음성 웨이브폼으로 변환하는 vocoder입니다.None인 경우 출력은 멜 스펙트로그램입니다. - output_cross_attentions (
bool, 선택 사항, 기본값False) — 디코더의 cross-attention 레이어 attention 텐서를 반환할지 여부. - return_output_lengths (
bool, 선택 사항, 기본값False) — 구체적인 스펙트로그램/웨이브폼 길이를 반환할지 여부.
반환값
입력에 따라 다양한 요소를 포함하는 tuple(torch.Tensor)
- 가
return_output_lengths인 경우- spectrogram (선택,
vocoder가 제공되지 않은 경우 반환됨)torch.Tensor, shape(output_sequence_length, config.num_mel_bins)— 예측된 log-mel spectrogram입니다. - waveform (선택,
vocoder가 제공된 경우 반환됨)torch.Tensor, shape(num_frames,)— 예측된 음성 waveform입니다. - cross_attentions (선택,
output_cross_attentions이True일 때 반환됨)torch.Tensor, shape(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— decoder의 cross-attention 레이어 출력입니다.
- spectrogram (선택,
- 인수
return_output_lengths이 True인 경우- 스펙트로그램 (선택 사항,
vocoder가 제공되지 않은 경우 반환됨)torch.Tensor의 shape은(batch_size, output_sequence_length, config.num_mel_bins)입니다. 최대 길이로 패딩된 예측된 log-mel 스펙트로그램입니다. - spectrogram_lengths (선택,
vocoder가 제공되지 않은 경우 반환됨)list[Int]— 각 스펙트로그램의 구체적인 길이를 모두 담은 리스트입니다. - waveforms (선택,
vocoder가 제공된 경우 반환됨)torch.Tensor의 shape은(batch_size, num_frames)입니다. 최대 길이에 맞게 패딩된 예측 음성 waveforms입니다. - waveform_lengths (선택,
vocoder가 제공된 경우 반환됨)list[Int]— 각 waveform의 구체적인 길이를 담은 목록입니다. - cross_attentions (선택,
output_cross_attentions이True일 때 반환됨)torch.Tensor, shape(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— 디코더의 cross-attention 레이어 출력입니다.
- 스펙트로그램 (선택 사항,
원시 음성 웨이브폼을 멜 스펙트로그램 시퀀스로 변환한 후, 보코더를 사용하여 다시 음성 웨이브폼으로 복원합니다.
SpeechT5HifiGan
클래스 transformers.SpeechT5HifiGan
< source >( config: SpeechT5HifiGanConfig )
매개변수
- config (SpeechT5HifiGanConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
HiFi-GAN 보코더.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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
음성 웨이브포름을 포함하는 Tensor입니다. 입력 스펙트로그램이 배치된 경우, 형태는 (batch_size, num_frames,)입니다. 배치되지 않은 경우, 형태는 (num_frames,)입니다.
log-mel spectrogram을 음성 waveform으로 변환합니다. log-mel spectrogram의 batch를 전달하면 음성 waveform의 batch가 반환됩니다. 단일, 비-batch log-mel spectrogram을 전달하면 단일, 비-batch 음성 waveform이 반환됩니다.