Transformers documentation

SpeechT5

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

and get access to the augmented documentation experience

to get started

Mô hình này được công bố trên HF papers vào ngày 2021-10-14 và được đóng góp cho Hugging Face Transformers vào ngày 2023-02-03.

SpeechT5

Tổng quan

Mô hình SpeechT5 được đề xuất trong SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing bởi 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.

Tóm tắt từ bài báo như sau:

Được thúc đẩy bởi thành công của T5 (Text-To-Text Transfer Transformer) trong các mô hình xử lý ngôn ngữ tự nhiên được huấn luyện trước, chúng tôi đề xuất khung SpeechT5 thống nhất đa phương thức, khám phá việc huấn luyện trước encoder-decoder cho việc học biểu diễn âm thanh/văn bản tự giám sát. Khung SpeechT5 bao gồm một mạng encoder-decoder dùng chung và sáu mạng pre/post đặc thù cho từng phương thức (âm thanh/văn bản). Sau khi tiền xử lý đầu vào âm thanh/văn bản thông qua các pre-nets, mạng encoder-decoder dùng chung mô hình hóa phép biến đổi từ chuỗi sang chuỗi, sau đó các post-nets tạo ra đầu ra ở phương thức âm thanh/văn bản dựa trên đầu ra của decoder. Tận dụng dữ liệu âm thanh và văn bản quy mô lớn không có nhãn, chúng tôi huấn luyện trước SpeechT5 để học một biểu diễn thống nhất đa phương thức, với kỳ vọng cải thiện khả năng mô hình hóa cho cả âm thanh và văn bản. Để căn chỉnh thông tin văn bản và âm thanh vào không gian ngữ nghĩa thống nhất này, chúng tôi đề xuất một phương pháp lượng tử hóa vector liên phương thức, trong đó trộn ngẫu nhiên các trạng thái âm thanh/văn bản với các đơn vị tiềm ẩn như giao diện giữa encoder và decoder. Các đánh giá rộng rãi cho thấy sự vượt trội của khung SpeechT5 được đề xuất trên nhiều nhiệm vụ xử lý ngôn ngữ nói khác nhau, bao gồm nhận dạng giọng nói tự động, tổng hợp giọng nói, dịch giọng nói, chuyển đổi giọng nói, tăng cường giọng nói và nhận dạng người nói.

Mô hình này được đóng góp bởi Matthijs. Mã gốc có thể được tìm thấy tại đây.

Đặt use_kernels=True trong from_pretrained() để thay thế các lớp được hỗ trợ bằng các kernel tối ưu từ Hub. Xem Tải kernel để biết thêm.

SpeechT5Config

lớp transformers.SpeechT5Config

< >

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

Tham số

  • is_encoder_decoder (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có được sử dụng như một encoder/decoder hay không.
  • vocab_size (int, tùy chọn, mặc định là 81) — Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi input_ids.
  • hidden_size (int, tùy chọn, mặc định là 768) — Kích thước của các biểu diễn ẩn.
  • encoder_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ mã hóa Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • encoder_attention_heads (int, tùy chọn, mặc định là 12) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ mã hóa Transformer.
  • encoder_ffn_dim (int, tùy chọn, mặc định là 3072) — Kích thước của lớp “trung gian” (thường được gọi là feed-forward) trong encoder.
  • encoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.1) — Xác suất LayerDrop cho encoder. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • decoder_layers (int, tùy chọn, mặc định là 6) — Số lượng lớp ẩn trong bộ giải mã Transformer. Nếu không được đặt, giá trị này sẽ giống với num_layers.
  • decoder_ffn_dim (int, tùy chọn, mặc định là 3072) — Kích thước của lớp “trung gian” (thường được gọi là feed-forward) trong decoder.
  • decoder_attention_heads (int, tùy chọn, mặc định là 12) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.
  • decoder_layerdrop (Union[float, int], tùy chọn, mặc định là 0.1) — Xác suất LayerDrop cho bộ giải mã. Xem [bài báo LayerDrop](xem https://huggingface.co/papers/1909.11556) để biết thêm chi tiết.
  • hidden_act (str, tùy chọn, mặc định là gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • positional_dropout (float, tùy chọn, mặc định là 0.1) — Xác suất dropout cho các lớp mã hóa vị trí văn bản.
  • hidden_dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Xác suất dropout cho tất cả các lớp fully connected trong embeddings, encoder và pooler.
  • attention_dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Tỷ lệ dropout cho các xác suất chú ý.
  • activation_dropout (Union[float, int], tùy chọn, mặc định là 0.1) — Tỷ lệ dropout cho các kích hoạt bên trong lớp liên kết đầy đủ.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • scale_embedding (bool, tùy chọn, mặc định là False) — Có nên chia embedding cho sqrt(d_model) để chuẩn hóa hay không.
  • feat_extract_norm (str, tuỳ chọn, mặc định là "group") — Loại chuẩn hóa được áp dụng cho các lớp tích chập 1D trong pre-net của bộ mã hóa giọng nói. Một trong số "group" cho chuẩn hóa nhóm chỉ trên lớp tích chập 1D đầu tiên hoặc "layer" cho chuẩn hóa lớp trên tất cả các lớp tích chập 1D.
  • feat_proj_dropout (float, tùy chọn, mặc định là 0.0) — Xác suất dropout cho đầu ra của pre-net trong bộ mã hóa giọng nói.
  • 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] hoặc list[int], tùy chọn, mặc định là (512, 512, 512, 512, 512, 512, 512)) — Một tuple các số nguyên xác định số kênh đầu vào và đầu ra của mỗi lớp tích chập 1D trong pre-net của bộ mã hóa giọng nói. Độ dài của conv_dim xác định số lượng lớp tích chập 1D.
  • conv_stride (tuple[int] hoặc list[int], không bắt buộc, mặc định là (5, 2, 2, 2, 2, 2, 2)) — Một tuple các số nguyên xác định stride của từng lớp tích chập 1D trong pre-net của bộ mã hóa giọng nói. Độ dài của conv_stride xác định số lượng lớp tích chập và phải khớp với độ dài của conv_dim.
  • conv_kernel (tuple[int] hoặc list[int], tuỳ chọn, mặc định là (10, 3, 3, 3, 3, 3, 3)) — Một tuple các số nguyên xác định kích thước kernel của từng lớp tích chập 1D trong pre-net của bộ mã hóa giọng nói. Độ dài của conv_kernel xác định số lượng lớp tích chập và phải khớp với độ dài của conv_dim.
  • conv_bias (bool, tùy chọn, mặc định là False) — Xác định xem các lớp tích chập 1D có bias hay không.
  • num_conv_pos_embeddings (int, tùy chọn, mặc định là 128) — Số lượng nhúng vị trí tích chập. Xác định kích thước nhân của lớp nhúng vị trí tích chập 1D.
  • num_conv_pos_embedding_groups (int, tùy chọn, mặc định là 16) — Số lượng nhóm của lớp nhúng vị trí tích chập 1 chiều.
  • apply_spec_augment (bool, tùy chọn, mặc định là True) — Liệu có áp dụng tăng cường dữ liệu SpecAugment cho đầu ra của pre-net trong bộ mã hóa giọng nói hay không. Để tham khảo, xem SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition.
  • mask_time_prob (float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_time_length (int, tùy chọn, mặc định là 10) — Chiều dài của khoảng vector dọc theo trục thời gian.
  • mask_time_min_masks (int, tùy chọn, mặc định là 2), — Số lượng tối thiểu các mask có độ dài mask_feature_length được tạo dọc theo trục thời gian, cho mỗi bước thời gian, bất kể mask_feature_prob. Chỉ có liên quan nếu ”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks”
  • mask_feature_prob (float, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_feature_prob (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ phần trăm (từ 0 đến 1) của tất cả các vector đặc trưng dọc theo trục đặc trưng sẽ bị che. Quy trình che tạo ra mask_feature_prob*len(feature_axis)/mask_time_length các mặt nạ độc lập trên trục. Nếu suy luận từ xác suất của mỗi vector đặc trưng được chọn làm điểm bắt đầu của khoảng vector sẽ bị che, mask_feature_prob nên là prob_vector_start*mask_feature_length. Lưu ý rằng sự chồng lấn có thể làm giảm tỷ lệ phần trăm thực tế của các vector bị che. Điều này chỉ liên quan nếu apply_spec_augment là True.
  • mask_feature_length (int, tùy chọn, mặc định là 10) — Chiều dài của khoảng vector dọc theo trục đặc trưng.
  • mask_feature_min_masks (int, tùy chọn, mặc định là 0), — Số lượng tối thiểu các mặt nạ có độ dài mask_feature_length được tạo ra dọc theo trục đặc trưng, ở mỗi bước thời gian, bất kể giá trị của mask_feature_prob. Chỉ có ý nghĩa nếu ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”
  • num_mel_bins (int, tùy chọn, mặc định là 80) — Số lượng đặc trưng mel được sử dụng cho mỗi đặc trưng đầu vào. Được sử dụng bởi pre-net của bộ giải mã giọng nói. Phải tương ứng với giá trị được sử dụng trong lớp SpeechT5Processor.
  • pad_token_id (int, tùy chọn, mặc định là 1) — Token id được sử dụng để đệm (padding) trong từ vựng.
  • bos_token_id (int, tùy chọn, mặc định là 0) — Token id được sử dụng cho đầu luồng trong bảng từ vựng.
  • eos_token_id (Union[int, list[int]], tùy chọn, mặc định là 2) — Token id được sử dụng cho end-of-stream trong bảng từ vựng.
  • decoder_start_token_id (int, tùy chọn, mặc định là 2) — Nếu một mô hình encoder-decoder bắt đầu giải mã bằng một token khác với bos, đây là id của token đó.
  • num_mel_bins (int, tùy chọn, mặc định là 80) — Số lượng đặc trưng mel được sử dụng cho mỗi khung đầu vào. Cần khớp với giá trị được dùng trong lớp AutoFeatureExtractor.
  • speech_decoder_prenet_layers (int, tùy chọn, mặc định là 2) — Số lượng lớp trong pre-net của bộ giải mã giọng nói.
  • speech_decoder_prenet_units (int, tùy chọn, mặc định là 256) — Kích thước chiều của các lớp trong pre-net của speech decoder.
  • speech_decoder_prenet_dropout (float, tùy chọn, mặc định là 0.5) — Xác suất dropout cho các lớp pre-net của bộ giải mã giọng nói.
  • speaker_embedding_dim (int, tùy chọn, mặc định là 512) — Kích thước của các vector nhúng XVector.
  • speech_decoder_postnet_layers (int, tuỳ chọn, mặc định là 5) — Số lượng lớp trong post-net của bộ giải mã giọng nói.
  • speech_decoder_postnet_units (int, tùy chọn, mặc định là 256) — Kích thước chiều của các lớp trong post-net của bộ giải mã giọng nói.
  • speech_decoder_postnet_kernel (int, tùy chọn, mặc định là 5) — Số lượng kênh bộ lọc tích chập trong post-net của bộ giải mã giọng nói.
  • speech_decoder_postnet_dropout (float, tùy chọn, mặc định là 0.5) — Xác suất dropout cho các lớp post-net của bộ giải mã giọng nói.
  • reduction_factor (int, tùy chọn, mặc định là 2) — Hệ số giảm chiều dài spectrogram cho đầu vào của bộ giải mã giọng nói.
  • max_speech_positions (int, tùy chọn, mặc định là 4000) — Chiều dài tối đa của chuỗi đặc trưng giọng nói mà mô hình này có thể được sử dụng.
  • max_text_positions (int, tùy chọn, mặc định là 450) — Chiều dài tối đa của chuỗi các đặc trưng văn bản mà mô hình này có thể được sử dụng.
  • encoder_max_relative_position (int, tùy chọn, mặc định là 160) — Khoảng cách tối đa cho nhúng vị trí tương đối trong bộ mã hóa.
  • use_guided_attention_loss (bool, tùy chọn, mặc định là True) — Có áp dụng guided attention loss khi huấn luyện mô hình TTS hay không.
  • guided_attention_loss_num_heads (int, tùy chọn, mặc định là 2) — Số lượng đầu chú ý mà tổn thất chú ý có hướng dẫn sẽ được áp dụng. Sử dụng -1 để áp dụng tổn thất này cho tất cả các đầu chú ý.
  • guided_attention_loss_sigma (float, tùy chọn, mặc định là 0.4) — Độ lệch chuẩn cho guided attention loss.
  • guided_attention_loss_scale (float, tùy chọn, mặc định là 10.0) — Hệ số tỷ lệ cho guided attention loss (còn được gọi là lambda).
  • use_cache (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếu config.is_decoder=True hoặc khi mô hình là mô hình sinh chỉ có decoder.
  • tie_word_embeddings (bool, tùy chọn, mặc định là True) — Có nên gắn kết các trọng số nhúng theo ánh xạ tied_weights_keys của mô hình hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một SpeechT5Model. Nó được sử dụng để khởi tạo một mô hình Speecht5 theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của microsoft/speecht5_asr

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import SpeechT5Model, SpeechT5Config

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

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

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

SpeechT5HifiGanConfig

lớp transformers.SpeechT5HifiGanConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonemodel_in_dim: int = 80sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (4, 4, 4, 4)upsample_kernel_sizes: list[int] | tuple[int, ...] = (8, 8, 8, 8)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))initializer_range: float = 0.01leaky_relu_slope: float = 0.1normalize_before: bool = True )

Tham số

  • model_in_dim (int, tùy chọn, mặc định là 80) — Số lượng bin tần số trong phổ log-mel đầu vào.
  • sampling_rate (int, tùy chọn, mặc định là 16000) — Tần số lấy mẫu (tính bằng hertz (Hz)) mà các tệp âm thanh cần được số hóa.
  • upsample_initial_channel (int, tùy chọn, mặc định là 512) — Số lượng kênh đầu vào của mạng upsampling.
  • upsample_rates (tuple[int] hoặc list[int], tùy chọn, mặc định là [4, 4, 4, 4]) — Một tuple các số nguyên xác định stride của mỗi lớp tích chập 1D trong mạng upsampling. Độ dài của upsample_rates xác định số lượng lớp tích chập và phải khớp với độ dài của upsample_kernel_sizes.
  • upsample_kernel_sizes (tuple[int] hoặc list[int], tuỳ chọn, mặc định là [8, 8, 8, 8]) — Một tuple các số nguyên xác định kích thước kernel của từng lớp tích chập 1D trong mạng upsampling. Độ dài của upsample_kernel_sizes xác định số lượng lớp tích chập và phải khớp với độ dài của upsample_rates.
  • resblock_kernel_sizes (tuple[int] hoặc list[int], tùy chọn, mặc định là [3, 7, 11]) — Một tuple các số nguyên xác định kích thước kernel của các lớp tích chập 1D trong module fusion trường nhận (MRF).
  • resblock_dilation_sizes (tuple[tuple[int]] hoặc list[list[int]], không bắt buộc, mặc định là [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Một tuple lồng nhau của các số nguyên định nghĩa tỷ lệ giãn nở của các lớp tích chập 1D giãn nở trong module kết hợp trường nhận đa (MRF).
  • initializer_range (float, tùy chọn, mặc định là 0.01) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • leaky_relu_slope (float, tùy chọn, mặc định là 0.1) — Góc của độ dốc âm được sử dụng bởi hàm kích hoạt leaky ReLU.
  • normalize_before (bool, tùy chọn, mặc định là True) — Có nên chuẩn hóa phổ âm (spectrogram) trước khi vocoding bằng cách sử dụng trung bình và phương sai đã học của vocoder hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một SpeechT5Model. Nó được sử dụng để khởi tạo một mô hình Speecht5 theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của microsoft/speecht5_asr

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import SpeechT5HifiGan, SpeechT5HifiGanConfig

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

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

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

SpeechT5Tokenizer

lớp transformers.SpeechT5Tokenizer

< >

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

Tham số

  • vocab_file (str) — SentencePiece file (thường có phần mở rộng .spm) chứa từ vựng cần thiết để khởi tạo một tokenizer.
  • bos_token (str, tùy chọn, mặc định là "<s>") — Token bắt đầu chuỗi.
  • eos_token (str, tùy chọn, mặc định là "</s>") — Token kết thúc chuỗi.
  • unk_token (str, tùy chọn, mặc định là "<unk>") — Token không xác định. Một token không có trong từ vựng sẽ không thể được chuyển đổi thành ID và sẽ được gán thành token này thay thế.
  • pad_token (str, tùy chọn, mặc định là "<pad>") — Token được sử dụng để đệm, chẳng hạn khi xử lý các lô (batch) gồm các chuỗi có độ dài khác nhau.
  • normalize (bool, tùy chọn, mặc định là False) — Có nên chuyển đổi các đại lượng số trong văn bản sang dạng viết bằng chữ tiếng Anh tương ứng hay không.
  • sp_model_kwargs (dict, tuỳ chọn) — Sẽ được truyền vào SentencePieceProcessor.__init__() phương thức. bọc Python cho SentencePiece có thể được sử dụng, trong số nhiều mục đích khác, để thiết lập:
    • enable_sampling: Bật chuẩn hóa từ con (subword regularization).

    • nbest_size: Tham số lấy mẫu cho unigram. Không hợp lệ với BPE-Dropout.

      • nbest_size = {0,1}: Không thực hiện lấy mẫu.
      • nbest_size > 1: lấy mẫu từ các kết quả nbest_size.
      • nbest_size < 0: giả định rằng nbest_size là vô hạn và lấy mẫu từ tất cả các giả thuyết (lattice) bằng thuật toán forward-filtering-and-backward-sampling.
    • alpha: Tham số làm mịn cho việc lấy mẫu unigram và xác suất dropout của các thao tác merge cho BPE-dropout.

  • sp_model (SentencePieceProcessor) — Bộ xử lý SentencePiece được sử dụng cho mọi phép chuyển đổi (chuỗi, token và ID).

Tạo một tokenizer SpeechT5. Dựa trên SentencePiece.

Tokenizer này kế thừa từ PreTrainedTokenizer, lớp chứa hầu hết các phương thức chính. Người dùng nên tham khảo siêu lớp này để biết thêm thông tin về các phương thức đó.

__call__

< >

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

Tham số

  • text (str, list[str], list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tiền mã hóa). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (tiền mã hóa), bạn phải đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • text_pair (str, list[str], list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tách token trước). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token trước), bạn phải đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • text_target (str, list[str], list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa dưới dạng văn bản đích. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã tách token). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token), bạn phải đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • text_pair_target (str, list[str], list[list[str]], tùy chọn) — Chuỗi hoặc lô các chuỗi cần được mã hóa dưới dạng văn bản đích. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã tách token). Nếu các chuỗi được cung cấp dưới dạng danh sách các chuỗi ký tự (đã tách token), bạn phải đặt is_split_into_words=True (để loại bỏ sự mơ hồ với một lô các chuỗi).
  • tokenizer_kwargs (dict[str, Any], tùy chọn) — Các kwargs bổ sung để truyền cho tokenizer. Chúng sẽ được gộp với các tham số tường minh và các kwargs khác, trong đó các tham số tường minh có độ ưu tiên cao hơn.
  • add_special_tokens (bool, tùy chọn, mặc định là True) — Có thêm các token đặc biệt khi mã hóa các chuỗi hay không. Điều này sẽ sử dụng hàm PretrainedTokenizerBase.build_inputs_with_special_tokens bên dưới, hàm này xác định các token nào được thêm tự động vào các id đầu vào. Điều này hữu ích nếu bạn muốn thêm các token bos hoặc eos một cách tự động.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát padding. Chấp nhận các giá trị sau:
    • True hoặc 'longest': Lấp đầy (pad) đến độ dài của chuỗi dài nhất trong batch (hoặc không lấp đầy nếu chỉ cung cấp một chuỗi duy nhất).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặc đến độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp.
    • False hoặc 'do_not_pad' (mặc định): Không đệm (tức là có thể xuất ra một lô với các chuỗi có độ dài khác nhau).
  • truncation (bool, str hoặc TruncationStrategy, tùy chọn, mặc định là False) — Kích hoạt và kiểm soát việc cắt ngắn. Chấp nhận các giá trị sau:
    • True hoặc 'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa chấp nhận được của mô hình nếu tham số đó không được cung cấp. Thao tác này sẽ cắt ngắn theo từng token, loại bỏ một token từ chuỗi dài nhất trong cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp. Thao tác này chỉ cắt ngắn chuỗi đầu tiên của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • 'only_second': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham số max_length hoặc xuống độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp. Thao tác này chỉ cắt ngắn chuỗi thứ hai của một cặp nếu một cặp chuỗi (hoặc một lô các cặp) được cung cấp.
    • False hoặc 'do_not_truncate' (mặc định): Không cắt bớt (tức là có thể xuất ra batch với độ dài chuỗi lớn hơn kích thước đầu vào tối đa cho phép của mô hình).
  • max_length (int, tuỳ chọn) — Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt/giữ chỗ (truncation/padding).

    Nếu không được đặt hoặc được đặt thành None, tham số này sẽ sử dụng độ dài tối đa định trước của mô hình nếu một trong các tham số cắt/giữ chỗ yêu cầu độ dài tối đa. Nếu mô hình không có độ dài đầu vào tối đa cụ thể (như XLNet), việc cắt/giữ chỗ đến độ dài tối đa sẽ bị vô hiệu hóa.

  • stride (int, tùy chọn, mặc định là 0) — Nếu được đặt thành một số cùng với max_length, các token tràn ra được trả về khi return_overflowing_tokens=True sẽ chứa một số token từ cuối của chuỗi bị cắt ngắn được trả về để tạo ra một phần chồng lấn giữa các chuỗi bị cắt ngắn và các chuỗi tràn ra. Giá trị của đối số này xác định số lượng token chồng lấn.
  • is_split_into_words (bool, tùy chọn, mặc định là False) — Cho biết đầu vào đã được tiền xử lý token hay chưa (ví dụ: đã tách thành các từ). Nếu đặt thành True, bộ phân tích token sẽ giả định rằng đầu vào đã được tách thành các từ (chẳng hạn, bằng cách tách theo khoảng trắng) và sẽ tiến hành phân tích token cho chúng. Điều này hữu ích cho NER hoặc phân loại token.
  • pad_to_multiple_of (int, tùy chọn) — Nếu được đặt, chuỗi sẽ được đệm đến một bội số của giá trị được cung cấp. Yêu cầu padding phải được kích hoạt. Điều này đặc biệt hữu ích để cho phép sử dụng Tensor Cores trên phần cứng NVIDIA có khả năng tính toán >= 7.5 (Volta).
  • padding_side (str, tùy chọn) — Bên mà mô hình cần được áp dụng padding. Nên chọn giữa [‘right’, ‘left’]. Giá trị mặc định được lấy từ thuộc tính lớp có cùng tên.
  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor thay vì danh sách các số nguyên Python. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • return_token_type_ids (bool, tuỳ chọn) — Có trả về token type IDs hay không. Nếu để mặc định, sẽ trả về token type IDs theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

    ID loại token là gì?

  • return_attention_mask (bool, tuỳ chọn) — Có trả về attention mask hay không. Nếu để mặc định, sẽ trả về attention mask theo mặc định của tokenizer cụ thể, được xác định bởi thuộc tính return_outputs .

    Mặt nạ chú ý là gì?

  • return_overflowing_tokens (bool, tùy chọn, mặc định là False) — Có trả về các chuỗi token tràn hay không. Nếu một cặp chuỗi input ids (hoặc một batch các cặp) được cung cấp với truncation_strategy = longest_first hoặc True, một lỗi sẽ được ném thay vì trả về các token tràn.
  • return_special_tokens_mask (bool, tùy chọn, mặc định là False) — Có trả về thông tin mặt nạ (mask) cho các token đặc biệt hay không.
  • return_offsets_mapping (bool, tuỳ chọn, mặc định là False) — Có trả về (char_start, char_end) cho từng token hay không.

    Tính năng này chỉ khả dụng trên các bộ phân từ nhanh kế thừa từ PreTrainedTokenizerFast; nếu sử dụng bộ phân từ của Python, phương thức này sẽ gây ra NotImplementedError.

  • return_length (bool, tùy chọn, mặc định là False) — Có trả về độ dài của các đầu vào đã mã hóa hay không.
  • verbose (bool, tùy chọn, mặc định là True) — Có in thêm thông tin và cảnh báo hay không.
  • **kwargs — được truyền đến phương thức self.tokenize()

Trả về

BatchEncoding

Một BatchEncoding với các trường sau:

  • input_ids — Danh sách các id token để đưa vào mô hình.

    ID đầu vào là gì?

  • token_type_ids — Danh sách các id loại token để đưa vào mô hình (khi return_token_type_ids=True hoặc nếu “token_type_ids” nằm trong self.model_input_names).

    ID loại token là gì?

  • attention_mask — Danh sách các chỉ số chỉ định những token nào nên được mô hình chú ý đến (khi return_attention_mask=True hoặc nếu “attention_mask” nằm trong self.model_input_names).

    Mặt nạ chú ý là gì?

  • overflowing_tokens — Danh sách các chuỗi token bị tràn (khi max_length được chỉ định và return_overflowing_tokens=True).

  • num_truncated_tokens — Số lượng token bị cắt bỏ (khi có chỉ định max_length và return_overflowing_tokens=True).

  • special_tokens_mask — Danh sách các số 0 và 1, trong đó 1 chỉ định các token đặc biệt được thêm vào và 0 chỉ định các token chuỗi thông thường (khi add_special_tokens=True và return_special_tokens_mask=True).

  • length — Độ dài của các đầu vào (khi return_length=True)

Phương thức chính để mã hóa token và chuẩn bị cho mô hình một hoặc nhiều chuỗi, hoặc một hoặc nhiều cặp chuỗi.

save_vocabulary

< >

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

Tham số

  • save_directory (str) — Thư mục để lưu trữ từ vựng.
  • filename_prefix (str, tùy chọn) — Một tiền tố tùy chọn để thêm vào tên của các tệp được lưu.

Trả về

tuple(str)

Đường dẫn đến các tệp đã lưu.

Lưu từ vựng sentencepiece (sao chép tệp gốc) vào một thư mục.

decode

< >

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

Tham số

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Một chuỗi duy nhất hoặc một lô (danh sách các chuỗi) các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

Union[str, list[str]]

Chuỗi đã giải mã cho một chuỗi duy nhất, hoặc một danh sách các chuỗi đã giải mã cho một lô các chuỗi.

Chuyển đổi một chuỗi các id thành một chuỗi ký tự, hoặc một danh sách các chuỗi id thành một danh sách các chuỗi ký tự, sử dụng tokenizer và bảng từ vựng với các tùy chọn để loại bỏ các token đặc biệt và dọn dẹp khoảng trắng trong quá trình token hóa.

Tương tự như việc thực hiện self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

batch_decode

< >

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

Tham số

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Danh sách các id đầu vào đã được token hóa. Có thể lấy được bằng cách sử dụng phương thức __call__.
  • skip_special_tokens (bool, tùy chọn, mặc định là False) — Có loại bỏ các token đặc biệt trong quá trình giải mã hay không.
  • clean_up_tokenization_spaces (bool, tùy chọn) — Có dọn dẹp khoảng trắng token hóa hay không. Nếu là None, mặc định sẽ là self.clean_up_tokenization_spaces.
  • kwargs (các tham số từ khóa bổ sung, tùy chọn) — Sẽ được truyền đến phương thức decode cụ thể của model bên dưới.

Trả về

list[str]

Danh sách các câu đã giải mã.

Chuyển đổi một danh sách các danh sách id token thành một danh sách các chuỗi bằng cách gọi decode.

Phương pháp này được cung cấp để đảm bảo tương thích ngược. Phương pháp decode hiện xử lý đầu vào dạng lô (batched) một cách bản địa, do đó bạn có thể sử dụng trực tiếp decode thay vì batch_decode.

SpeechT5FeatureExtractor

lớp transformers.SpeechT5FeatureExtractor

< >

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

Tham số

  • feature_size (int, tùy chọn, mặc định là 1) — Kích thước chiều của các đặc trưng đã trích xuất.
  • sampling_rate (int, tùy chọn, mặc định là 16000) — Tần số lấy mẫu (tính bằng hertz (Hz)) mà các tệp âm thanh cần được số hóa.
  • padding_value (float, tùy chọn, mặc định là 0.0) — Giá trị được sử dụng để điền vào các giá trị đệm.
  • do_normalize (bool, tùy chọn, mặc định là False) — Có nên chuẩn hóa đầu vào theo phương pháp trung bình bằng không và phương sai đơn vị hay không. Việc chuẩn hóa có thể giúp cải thiện đáng kể hiệu suất cho một số mô hình.
  • num_mel_bins (int, tùy chọn, mặc định là 80) — Số lượng bin tần số mel trong các đặc trưng phổ được trích xuất.
  • hop_length (int, tùy chọn, mặc định là 16) — Số ms giữa các cửa sổ. Còn được gọi là “shift” trong nhiều bài báo.
  • win_length (int, tùy chọn, mặc định là 64) — Số mili giây cho mỗi cửa sổ.
  • win_function (str, tuỳ chọn, mặc định là "hann_window") — Tên của hàm cửa sổ được sử dụng để tạo cửa sổ, phải có thể truy cập thông qua torch.{win_function}
  • fmin (float, tùy chọn, mặc định là 80) — Tần số mel tối thiểu, tính bằng Hz.
  • fmax (float, tùy chọn, mặc định là 7600) — Tần số mel tối đa, tính bằng Hz.
  • mel_floor (float, tùy chọn, mặc định là 1e-10) — Giá trị tối thiểu của các ngân tần số mel.
  • return_attention_mask (bool, tùy chọn, mặc định là True) — Liệu call() có nên trả về attention_mask hay không.

Tạo một bộ trích xuất đặc trưng SpeechT5.

Lớp này có thể tiền xử lý tín hiệu giọng nói thô bằng cách (tuỳ chọn) chuẩn hoá về trung bình bằng không và phương sai đơn vị, để sử dụng cho prenet của bộ mã hoá giọng nói SpeechT5.

Lớp này cũng có thể trích xuất các đặc trưng log-mel filter bank từ giọng nói thô, để sử dụng cho prenet của bộ giải mã giọng nói SpeechT5.

Feature extractor này kế thừa từ SequenceFeatureExtractor, bao gồm hầu hết các phương thức chính. Người dùng nên tham khảo lớp cha này để biết thêm thông tin về các phương thức đó.

__call__

< >

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

Tham số

  • audio (np.ndarray, list[float], list[np.ndarray], list[list[float]], tuỳ chọn) — Chuỗi hoặc lô các chuỗi cần được xử lý. Mỗi chuỗi có thể là một mảng numpy, một danh sách các giá trị float, một danh sách các mảng numpy hoặc một danh sách các danh sách giá trị float. Đầu ra là các đặc trưng dạng sóng. Bắt buộc phải là âm thanh kênh đơn (mono), không phải âm thanh stereo, tức là một giá trị float duy nhất cho mỗi bước thời gian.
  • audio_target (np.ndarray, list[float], list[np.ndarray], list[list[float]], optional) — Chuỗi hoặc lô các chuỗi cần được xử lý dưới dạng mục tiêu. Mỗi chuỗi có thể là một mảng numpy, một danh sách các giá trị float, một danh sách các mảng numpy hoặc một danh sách các danh sách giá trị float. Kết quả đầu ra là các đặc trưng phổ log-mel.
  • padding (bool, str hoặc PaddingStrategy, tùy chọn, mặc định là False) — Chọn một chiến lược để đệm các chuỗi trả về (theo phía đệm và chỉ số đệm của mô hình) trong số các lựa chọn sau:
    • True hoặc 'longest': Lấp đầy đến trình tự dài nhất trong lô (hoặc không lấp đầy nếu chỉ có một trình tự được cung cấp).
    • 'max_length': Đệm (pad) đến độ dài tối đa được chỉ định bằng tham số max_length hoặc đến độ dài đầu vào tối đa mà mô hình chấp nhận được nếu tham số đó không được cung cấp.
    • False hoặc 'do_not_pad' (mặc định): Không đệm (tức là có thể xuất ra một lô với các chuỗi có độ dài khác nhau).
  • max_length (int, tùy chọn) — Độ dài tối đa của danh sách trả về và tùy chọn độ dài padding (xem bên trên).
  • truncation (bool) — Bật tính năng cắt để giảm các chuỗi đầu vào dài hơn max_length xuống còn max_length.
  • pad_to_multiple_of (int, tuỳ chọn) — Nếu được đặt, chuỗi sẽ được đệm (pad) đến bội số của giá trị được cung cấp.

    Điều này đặc biệt hữu ích để cho phép sử dụng Tensor Cores trên phần cứng NVIDIA có khả năng tính toán >= 7.5 (Volta), hoặc trên TPU, nơi mà việc có độ dài chuỗi là bội số của 128 sẽ mang lại lợi ích.

  • return_attention_mask (bool, tuỳ chọn) — Có trả về attention mask hay không. Nếu để mặc định, sẽ trả về attention mask theo mặc định của feature_extractor cụ thể.

    Mặt nạ chú ý là gì?

  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor thay vì danh sách các số nguyên Python. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng Numpy np.ndarray.
  • sampling_rate (int, tùy chọn) — Tần số lấy mẫu mà đầu vào audio hoặc audio_target được lấy mẫu. Rất khuyến nghị truyền sampling_rate trong lời gọi forward để ngăn ngừa các lỗi âm thầm.

Phương thức chính để tạo đặc trưng và chuẩn bị một hoặc nhiều chuỗi cho mô hình.

Truyền một giá trị cho audio để trích xuất các đặc trưng dạng sóng. Truyền một giá trị cho audio_target để trích xuất các đặc trưng phổ log-mel.

SpeechT5Processor

lớp transformers.SpeechT5Processor

< >

( feature_extractortokenizer )

Tham số

  • feature_extractor (SpeechT5FeatureExtractor) — Bộ trích xuất đặc trưng là một đầu vào bắt buộc.
  • tokenizer (SpeechT5Tokenizer) — Tokenizer là đầu vào bắt buộc.

Tạo một SpeechT5Processor, đóng gói một bộ trích xuất đặc trưng và một bộ phân từ thành một bộ xử lý duy nhất.

SpeechT5Processor cung cấp đầy đủ các chức năng của SpeechT5FeatureExtractor và SpeechT5Tokenizer. Xem ~SpeechT5FeatureExtractor và ~SpeechT5Tokenizer để biết thêm thông tin.

__call__

< >

( *args**kwargs )

Tham số

  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.

pad

< >

( *args**kwargs )

Gom các đầu vào âm thanh và văn bản, cùng với các mục tiêu tương ứng, thành một lô (batch) có đệm (padded).

Đầu vào âm thanh được đệm bởi pad() của SpeechT5FeatureExtractor. Đầu vào văn bản được đệm bởi pad() của SpeechT5Tokenizer.

Các tổ hợp đầu vào hợp lệ là:

  • chỉ input_ids
  • chỉ input_values
  • chỉ labels, dưới dạng phổ log-mel hoặc các token văn bản
  • input_ids và phổ log-mel labels
  • input_values và nhãn văn bản labels

Vui lòng tham khảo docstring của hai phương pháp ở trên để biết thêm thông tin.

from_pretrained

< >

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

Tham số

  • pretrained_model_name_or_path (str hoặc os.PathLike) — Đây có thể là:
    • một chuỗi, model id của một feature_extractor được huấn luyện trước lưu trữ trong một kho model trên huggingface.co.
    • đường dẫn đến một thư mục chứa tệp feature extractor được lưu bằng phương thức save_pretrained(), ví dụ: ./my_model_directory/.
    • đường dẫn đến tệp JSON bộ trích xuất đặc trưng đã lưu tệp, ví dụ: ./my_model_directory/preprocessor_config.json.
  • **kwargs — Các đối số từ khóa bổ sung được truyền đến cả from_pretrained() và ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Tạo một processor liên kết với một model được huấn luyện trước.

Phương thức lớp này đơn giản là gọi phương thức from_pretrained() của bộ trích xuất đặc trưng, ImageProcessingMixin của bộ xử lý ảnh và ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained của bộ phân từ. Vui lòng tham khảo các docstring của các phương thức ở trên để biết thêm thông tin.

save_pretrained

< >

( save_directorypush_to_hub: bool = False**kwargs )

Tham số

  • save_directory (str hoặc os.PathLike) — Thư mục nơi tệp JSON của bộ trích xuất đặc trưng và các tệp tokenizer sẽ được lưu (thư mục sẽ được tạo nếu chưa tồn tại).
  • push_to_hub (bool, tùy chọn, mặc định là False) — Có đẩy mô hình của bạn lên Hugging Face model hub sau khi lưu hay không. Bạn có thể chỉ định kho lưu trữ muốn đẩy đến bằng repo_id (mặc định sẽ là tên của save_directory trong namespace của bạn).
  • kwargs (dict[str, Any], tùy chọn) — Các đối số từ khóa bổ sung được truyền đến phương thức push_to_hub().

Lưu các thuộc tính của bộ xử lý này (bộ trích xuất đặc trưng, bộ phân từ…) vào thư mục được chỉ định để có thể tải lại bằng phương thức from_pretrained().

Phương thức lớp này đơn giản chỉ gọi save_pretrained() và save_pretrained(). Vui lòng tham khảo docstring của các phương thức ở trên để biết thêm thông tin.

batch_decode

< >

( *args**kwargs )

Phương pháp này chuyển tiếp tất cả các đối số của nó đến batch_decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

decode

< >

( *args**kwargs )

Phương pháp này chuyển tiếp tất cả các đối số của nó đến decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

SpeechT5Model

lớp transformers.SpeechT5Model

< >

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

Tham số

  • config (SpeechT5Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
  • encoder (PreTrainedModel, tùy chọn) — Mô hình encoder cần sử dụng.
  • decoder (PreTrainedModel, tùy chọn) — Mô hình decoder cần sử dụng.

Mô hình Encoder-Decoder SpeechT5 cơ bản, xuất ra các hidden-state thô mà không có bất kỳ pre-net hay post-net cụ thể nào.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • input_values (torch.Tensor có hình dạng (batch_size, sequence_length)) — Tùy thuộc vào bộ mã hóa đang được sử dụng, input_values có thể là: các giá trị float của dạng sóng âm thanh thô đầu vào, hoặc các chỉ số của các token trong chuỗi đầu vào trong từ vựng, hoặc các trạng thái ẩn.
  • attention_mask (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các chỉ số token padding. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_values (torch.Tensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Tùy thuộc vào bộ giải mã nào đang được sử dụng, decoder_input_values có thể là: các giá trị float của các đặc trưng log-mel filterbank được trích xuất từ dạng sóng âm thanh thô, hoặc các chỉ số của các token trong chuỗi đầu vào của bộ giải mã trong từ vựng, hoặc các trạng thái ẩn.
  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_values. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • speaker_embeddings (torch.Tensor có hình dạng (batch_size, config.speaker_embedding_dim), tùy chọn) — Tensor chứa các embedding của người nói.
  • output_attentions (bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xem attentions trong phần tensor được trả về để biết thêm chi tiết.
  • output_hidden_states (bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xem hidden_states trong phần tensor trả về để biết thêm chi tiết.
  • return_dict (bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.

Trả về

Seq2SeqModelOutput hoặc tuple(torch.Tensor)

Một Seq2SeqModelOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SpeechT5Config) và đầu vào.

Phương thức forward của SpeechT5Model ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của bộ giải mã (decoder) của mô hình.

    Nếu past_key_values được sử dụng, chỉ có hidden-state cuối cùng của các chuỗi có shape (batch_size, 1, hidden_size) được xuất ra.

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với các đầu ra nhúng ban đầu tùy chọn.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với các đầu ra nhúng ban đầu tùy chọn.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

SpeechT5ForSpeechToText

lớp transformers.SpeechT5ForSpeechToText

< >

( config: SpeechT5Config )

Tham số

  • config (SpeechT5Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình SpeechT5 với bộ mã hóa giọng nói và bộ giải mã văn bản.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • input_values (torch.Tensor có shape (batch_size, sequence_length)) — Các giá trị float của dạng sóng âm thanh thô đầu vào. Các giá trị này có thể được lấy bằng cách nạp tệp âm thanh .flac hoặc .wav vào một mảng có kiểu list[float], một numpy.ndarray hoặc một torch.Tensor, ví dụ thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thành input_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành tensor có kiểu torch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết.
  • attention_mask (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các chỉ số token padding. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_ids (torch.LongTensor có dạng (batch_size, target_sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào decoder trong bảng từ vựng. Có thể lấy chỉ số bằng SpeechT5Tokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết. ID đầu vào decoder là gì? SpeechT5 sử dụng eos_token_id làm token bắt đầu cho việc tạo decoder_input_ids. Nếu sử dụng past_key_values, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

    Các chỉ số có thể được lấy bằng cách sử dụng SpeechT5Tokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào của bộ giải mã là gì?

    SpeechT5 sử dụng eos_token_id làm token khởi đầu cho việc tạo decoder_input_ids. Nếu past_key_values được sử dụng, tùy chọn chỉ cần nhập decoder_input_ids cuối cùng (xem past_key_values).

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_values. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • output_attentions (bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xem attentions trong phần tensor được trả về để biết thêm chi tiết.
  • output_hidden_states (bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xem hidden_states trong phần tensor trả về để biết thêm chi tiết.
  • return_dict (bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
  • labels (torch.LongTensor có shape (batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ. Chỉ số phải nằm trong [0, ..., config.vocab_size] hoặc -100 (xem input_ids docstring). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (masked), tổn thất chỉ được tính cho các token có nhãn trong [0, ..., config.vocab_size].

    Chỉ số nhãn có thể được lấy bằng cách sử dụng SpeechT5Tokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

Trả về

Seq2SeqLMOutput hoặc tuple(torch.Tensor)

Một Seq2SeqLMOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SpeechT5Config) và đầu vào.

Phương thức forward của SpeechT5ForSpeechToText ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling.

  • logits (torch.Tensor có hình dạng (batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

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

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

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

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

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'
>>> inputs["labels"] = processor(text_target=dataset[0]["text"], return_tensors="pt").input_ids

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

SpeechT5ForTextToSpeech

lớp transformers.SpeechT5ForTextToSpeech

< >

( config: SpeechT5Config )

Tham số

  • config (SpeechT5Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình SpeechT5 với bộ mã hóa văn bản và bộ giải mã giọng nói.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Có thể lấy chỉ số bằng SpeechT5Tokenizer. Xem encode() và call() để biết thêm chi tiết. input IDs là gì?

    Các chỉ số có thể được lấy bằng cách sử dụng SpeechT5Tokenizer. Xem encode() và call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các chỉ số token padding. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_values (torch.Tensor có hình dạng (batch_size, sequence_length, config.num_mel_bins)) — Các giá trị float của phổ mel đầu vào.

    SpeechT5 sử dụng phổ tất cả bằng không làm token khởi đầu cho việc tạo decoder_input_values. Nếu past_key_values được sử dụng, tùy chọn chỉ cần nhập decoder_input_values cuối cùng (xem past_key_values).

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_values. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • output_attentions (bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xem attentions trong phần tensor được trả về để biết thêm chi tiết.
  • output_hidden_states (bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xem hidden_states trong phần tensor trả về để biết thêm chi tiết.
  • return_dict (bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
  • speaker_embeddings (torch.Tensor có hình dạng (batch_size, config.speaker_embedding_dim), tùy chọn) — Tensor chứa các embedding của người nói.
  • labels (torch.Tensor có shape (batch_size, sequence_length, config.num_mel_bins), tùy chọn) — Các giá trị float của mel spectrogram đích. Các bước thời gian được đặt thành -100.0 sẽ bị bỏ qua (masked) trong quá trình tính toán loss. Có thể lấy được các spectrogram bằng cách sử dụng SpeechT5Processor. Xem SpeechT5Processor.call() để biết thêm chi tiết.
  • stop_labels (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Tensor nhị phân chỉ định vị trí của token dừng trong chuỗi.

Trả về

Seq2SeqSpectrogramOutput hoặc tuple(torch.Tensor)

Một Seq2SeqSpectrogramOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SpeechT5Config) và đầu vào.

Phương thức forward của SpeechT5ForTextToSpeech ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có hình dạng (1,), tùy chọn, được trả về khi labels được cung cấp) — Tổn thất tạo phổ âm (spectrogram).

  • spectrogram (torch.Tensor có hình dạng (batch_size, sequence_length, num_bins)) — Phổ tần số dự đoán.

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

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

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

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

>>> set_seed(555)  # make deterministic

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

generate

< >

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

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ vựng. Có thể lấy chỉ số bằng SpeechT5Tokenizer. Xem encode() và call() để biết thêm chi tiết. input IDs là gì?

    Các chỉ số có thể được lấy bằng cách sử dụng SpeechT5Tokenizer. Xem encode() và call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.LongTensor có hình dạng (batch_size, sequence_length)) — Mặt nạ chú ý (attention mask) từ tokenizer, bắt buộc cho suy luận theo lô (batched inference) để báo cho mô hình biết vị trí cần bỏ qua các token đệm trong input_ids.
  • speaker_embeddings (torch.Tensor có hình dạng (batch_size, config.speaker_embedding_dim), tùy chọn) — Tensor chứa các embedding của người nói.
  • threshold (float, tùy chọn, mặc định là 0.5) — Chuỗi được tạo sẽ kết thúc khi xác suất của token dừng dự đoán vượt quá giá trị này.
  • minlenratio (float, tùy chọn, mặc định là 0.0) — Được sử dụng để tính toán độ dài tối thiểu yêu cầu cho chuỗi đầu ra.
  • maxlenratio (float, tùy chọn, mặc định là 20.0) — Được sử dụng để tính toán độ dài tối đa cho phép của chuỗi đầu ra.
  • vocoder (nn.Module, tùy chọn) — Vocoder chuyển đổi mel spectrogram thành sóng âm giọng nói. Nếu None, đầu ra là mel spectrogram.
  • output_cross_attentions (bool, tùy chọn, mặc định là False) — Có trả về các tensor chú ý của các lớp cross-attention của decoder hay không.
  • return_output_lengths (bool, tùy chọn, mặc định là False) — Có trả về độ dài cụ thể của phổ âm/waveform hay không.

Trả về

tuple(torch.Tensor) bao gồm các phần tử khác nhau tùy thuộc vào đầu vào

  • khi return_output_lengths là False
    • spectrogram (tùy chọn, được trả về khi không cung cấp vocoder) torch.Tensor có hình dạng (output_sequence_length, config.num_mel_bins) — Phổ log-mel spectrogram dự đoán.
    • waveform (tuỳ chọn, được trả về khi có vocoder) torch.Tensor có hình dạng (num_frames,) — Dạng sóng giọng nói dự đoán.
    • cross_attentions (tùy chọn, được trả về khi output_cross_attentions là True) torch.Tensor có hình dạng (config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — Đầu ra của các lớp cross-attention của decoder.
  • khi return_output_lengths là True
    • spectrogram (tùy chọn, được trả về khi không cung cấp vocoder) torch.Tensor có hình dạng (batch_size, output_sequence_length, config.num_mel_bins) — Các log-mel spectrogram dự đoán được đệm đến độ dài tối đa.
    • spectrogram_lengths (tùy chọn, được trả về khi không cung cấp vocoder) list[Int] — Một danh sách tất cả các độ dài cụ thể cho từng spectrogram.
    • biên độ sóng (tùy chọn, được trả về khi cung cấp vocoder) torch.Tensor có hình dạng (batch_size, num_frames) — Các biên độ sóng giọng nói dự đoán được đệm đến độ dài tối đa.
    • waveform_lengths (tùy chọn, được trả về khi có vocoder) list[Int] — Một danh sách tất cả các độ dài cụ thể cho từng waveform.
    • cross_attentions (tùy chọn, được trả về khi output_cross_attentions là True) torch.Tensor có hình dạng (batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — Đầu ra của các lớp cross-attention của decoder.

Chuyển đổi một chuỗi các token đầu vào thành một chuỗi các phổ mel, sau đó được biến đổi thành dạng sóng âm thanh bằng một bộ tạo giọng nói (vocoder).

SpeechT5ForSpeechToSpeech

lớp transformers.SpeechT5ForSpeechToSpeech

< >

( config: SpeechT5Config )

Tham số

  • config (SpeechT5Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình SpeechT5 với bộ mã hóa giọng nói và bộ giải mã giọng nói.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • input_values (torch.Tensor có shape (batch_size, sequence_length)) — Các giá trị float của dạng sóng âm thanh thô đầu vào. Các giá trị này có thể được lấy bằng cách nạp tệp âm thanh .flac hoặc .wav vào một mảng có kiểu list[float], một numpy.ndarray hoặc một torch.Tensor, ví dụ thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thành input_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành một tensor có kiểu torch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết.
  • attention_mask (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện attention trên các chỉ số token padding. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • decoder_input_values (torch.Tensor có hình dạng (batch_size, sequence_length, config.num_mel_bins)) — Các giá trị float của phổ mel đầu vào.

    SpeechT5 sử dụng phổ tất cả bằng không làm token khởi đầu cho việc tạo decoder_input_values. Nếu past_key_values được sử dụng, tùy chọn chỉ cần nhập decoder_input_values cuối cùng (xem past_key_values).

  • decoder_attention_mask (torch.LongTensor có hình dạng (batch_size, target_sequence_length), tùy chọn) — Hành vi mặc định: tạo một tensor bỏ qua các token pad trong decoder_input_values. Mặt nạ nhân quả (causal mask) cũng sẽ được sử dụng theo mặc định. Nếu bạn muốn thay đổi hành vi đệm (padding), bạn nên đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

    Nếu bạn muốn thay đổi hành vi đệm, hãy đọc SpeechT5Decoder._prepare_decoder_attention_mask và chỉnh sửa theo nhu cầu của bạn. Xem sơ đồ 1 trong bài báo để biết thêm thông tin về chiến lược mặc định.

  • encoder_outputs (tuple[tuple[torch.Tensor]], tùy chọn) — Tuple bao gồm (last_hidden_state, tùy chọn: hidden_states, tùy chọn: attentions) last_hidden_state có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các hidden-states tại đầu ra của lớp cuối cùng của encoder. Được sử dụng trong cross-attention của decoder.
  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • output_attentions (bool, tùy chọn) — Có trả về các tensor attentions của tất cả các lớp attention hay không. Xem attentions trong phần tensor được trả về để biết thêm chi tiết.
  • output_hidden_states (bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xem hidden_states trong phần tensor trả về để biết thêm chi tiết.
  • return_dict (bool, tùy chọn) — Có nên trả về một ModelOutput thay vì một tuple thông thường hay không.
  • speaker_embeddings (torch.Tensor có hình dạng (batch_size, config.speaker_embedding_dim), tùy chọn) — Tensor chứa các embedding của người nói.
  • labels (torch.Tensor có shape (batch_size, sequence_length, config.num_mel_bins), tùy chọn) — Các giá trị float của mel spectrogram mục tiêu. Có thể lấy spectrogram bằng cách sử dụng SpeechT5Processor. Xem SpeechT5Processor.call() để biết thêm chi tiết.
  • stop_labels (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Tensor nhị phân chỉ định vị trí của token dừng trong chuỗi.

Trả về

Seq2SeqSpectrogramOutput hoặc tuple(torch.Tensor)

Một Seq2SeqSpectrogramOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (SpeechT5Config) và đầu vào.

Phương thức forward của SpeechT5ForSpeechToSpeech ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có hình dạng (1,), tùy chọn, được trả về khi labels được cung cấp) — Tổn thất tạo phổ âm (spectrogram).

  • spectrogram (torch.Tensor có hình dạng (batch_size, sequence_length, num_bins)) — Phổ tần số dự đoán.

  • past_key_values (EncoderDecoderCache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của EncoderDecoderCache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • decoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ giải mã tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • decoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

  • cross_attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Bộ tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của lớp cross-attention của bộ giải mã, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý chéo.

  • encoder_last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Chuỗi các trạng thái ẩn tại đầu ra của lớp cuối cùng của bộ mã hóa trong mô hình.

  • encoder_hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu ra của nhúng ban đầu.

  • encoder_attentions (tuple(torch.Tensor), tùy chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý của bộ mã hóa, sau softmax chú ý, được sử dụng để tính trung bình có trọng số trong các đầu chú ý tự (self-attention).

Ví dụ:

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

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

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

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

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

>>> set_seed(555)  # make deterministic

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

generate_speech

< >

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

Tham số

  • input_values (torch.Tensor có hình dạng (batch_size, sequence_length)) — Giá trị float của dạng sóng âm thanh thô đầu vào. Giá trị có thể được lấy bằng cách nạp tệp âm thanh .flac hoặc .wav vào một mảng có dạng list[float], numpy.ndarray hoặc torch.Tensor, ví dụ thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thành input_values, nên sử dụng SpeechT5Processor để đệm và chuyển đổi thành tensor có kiểu torch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết.

    Các giá trị có thể được lấy bằng cách nạp tệp âm thanh .flac hoặc .wav vào một mảng có kiểu list[float], một numpy.ndarray hoặc một torch.Tensor, ví dụ thông qua thư viện torchcodec (pip install torchcodec) hoặc thư viện soundfile (pip install soundfile). Để chuẩn bị mảng thành input_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành tensor có kiểu torch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết.

  • speaker_embeddings (torch.Tensor có hình dạng (batch_size, config.speaker_embedding_dim), tùy chọn) — Tensor chứa các embedding của người nói.
  • attention_mask (torch.LongTensor có shape (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện convolution và attention trên các chỉ số token padding. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • threshold (float, tùy chọn, mặc định là 0.5) — Chuỗi được tạo sẽ kết thúc khi xác suất của token dừng dự đoán vượt quá giá trị này.
  • minlenratio (float, tùy chọn, mặc định là 0.0) — Được sử dụng để tính toán độ dài tối thiểu yêu cầu cho chuỗi đầu ra.
  • maxlenratio (float, tùy chọn, mặc định là 20.0) — Được sử dụng để tính toán độ dài tối đa cho phép của chuỗi đầu ra.
  • vocoder (nn.Module, tuỳ chọn, mặc định là None) — Vocoder chuyển đổi mel spectrogram thành sóng âm giọng nói. Nếu None, đầu ra sẽ là mel spectrogram.
  • output_cross_attentions (bool, tùy chọn, mặc định là False) — Có trả về các tensor chú ý của các lớp cross-attention của decoder hay không.
  • return_output_lengths (bool, tùy chọn, mặc định là False) — Có trả về độ dài cụ thể của phổ âm/waveform hay không.

Trả về

tuple(torch.Tensor) bao gồm các phần tử khác nhau tùy thuộc vào đầu vào

  • khi return_output_lengths là False
    • spectrogram (tùy chọn, được trả về khi không cung cấp vocoder) torch.Tensor có hình dạng (output_sequence_length, config.num_mel_bins) — Phổ log-mel spectrogram dự đoán.
    • waveform (tuỳ chọn, được trả về khi có vocoder) torch.Tensor có hình dạng (num_frames,) — Dạng sóng giọng nói dự đoán.
    • cross_attentions (tùy chọn, được trả về khi output_cross_attentions là True) torch.Tensor có hình dạng (config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — Đầu ra của các lớp cross-attention của decoder.
  • khi return_output_lengths là True
    • spectrogram (tùy chọn, được trả về khi không cung cấp vocoder) torch.Tensor có hình dạng (batch_size, output_sequence_length, config.num_mel_bins) — Các log-mel spectrogram dự đoán được đệm đến độ dài tối đa.
    • spectrogram_lengths (tùy chọn, được trả về khi không cung cấp vocoder) list[Int] — Một danh sách tất cả các độ dài cụ thể cho từng spectrogram.
    • biên độ sóng (tùy chọn, được trả về khi cung cấp vocoder) torch.Tensor có hình dạng (batch_size, num_frames) — Các biên độ sóng giọng nói dự đoán được đệm đến độ dài tối đa.
    • waveform_lengths (tùy chọn, được trả về khi có vocoder) list[Int] — Một danh sách tất cả các độ dài cụ thể cho từng waveform.
    • cross_attentions (tùy chọn, được trả về khi output_cross_attentions là True) torch.Tensor có hình dạng (batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — Đầu ra của các lớp cross-attention của decoder.

Chuyển đổi một dạng sóng âm thanh thô thành một chuỗi các phổ mel, sau đó được chuyển đổi ngược lại thành dạng sóng âm thanh bằng một bộ tạo âm (vocoder).

SpeechT5HifiGan

lớp transformers.SpeechT5HifiGan

< >

( config: SpeechT5HifiGanConfig )

Tham số

  • config (SpeechT5HifiGanConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Vocoder HiFi-GAN.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • spectrogram (torch.Tensor) — Tensor chứa các spectrogram log-mel. Có thể được batch và có shape (batch_size, sequence_length, config.model_in_dim), hoặc không batch và có shape (sequence_length, config.model_in_dim).

Trả về

torch.Tensor

Tensor chứa dạng sóng âm thanh. Nếu phổ đồ đầu vào được nhóm (batched), sẽ có hình dạng (batch_size, num_frames,). Nếu không nhóm, sẽ có hình dạng (num_frames,).

Chuyển đổi phổ log-mel thành dạng sóng âm thanh. Truyền vào một lô (batch) các phổ log-mel sẽ trả về một lô các dạng sóng âm thanh. Truyền vào một phổ log-mel đơn lẻ, không nằm trong lô, sẽ trả về một dạng sóng âm thanh đơn lẻ, không nằm trong lô.

Update on GitHub