Transformers documentation
SpeechT5
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=Truetrong 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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 81hidden_size: int = 768encoder_layers: int = 12encoder_attention_heads: int = 12encoder_ffn_dim: int = 3072encoder_layerdrop: float | int = 0.1decoder_layers: int = 6decoder_ffn_dim: int = 3072decoder_attention_heads: int = 12decoder_layerdrop: float | int = 0.1hidden_act: str = 'gelu'positional_dropout: float | int = 0.1hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05scale_embedding: bool = Falsefeat_extract_norm: str = 'group'feat_proj_dropout: float | int = 0.0feat_extract_activation: str = 'gelu'conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512)conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2)conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2)conv_bias: bool = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16apply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10mask_feature_min_masks: int = 0pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2decoder_start_token_id: int | None = 2num_mel_bins: int = 80speech_decoder_prenet_layers: int = 2speech_decoder_prenet_units: int = 256speech_decoder_prenet_dropout: float | int = 0.5speaker_embedding_dim: int = 512speech_decoder_postnet_layers: int = 5speech_decoder_postnet_units: int = 256speech_decoder_postnet_kernel: int = 5speech_decoder_postnet_dropout: float | int = 0.5reduction_factor: int = 2max_speech_positions: int = 4000max_text_positions: int = 450encoder_max_relative_position: int = 160use_guided_attention_loss: bool = Trueguided_attention_loss_num_heads: int = 2guided_attention_loss_sigma: float = 0.4guided_attention_loss_scale: float = 10.0use_cache: bool = Truetie_word_embeddings: bool = True )
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ởiinput_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ớinum_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ớinum_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ặclist[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ặclist[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ặclist[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 ifapply_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àimask_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 ifapply_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 ramask_feature_prob*len(feature_axis)/mask_time_lengthcá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ếuapply_spec_augmentlà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àimask_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ủamask_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ớibos, đâ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ớpAutoFeatureExtractor. - 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ếuconfig.is_decoder=Truehoặ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_keyscủ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.configSpeechT5HifiGanConfig
lớp transformers.SpeechT5HifiGanConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonemodel_in_dim: int = 80sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (4, 4, 4, 4)upsample_kernel_sizes: list[int] | tuple[int, ...] = (8, 8, 8, 8)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))initializer_range: float = 0.01leaky_relu_slope: float = 0.1normalize_before: bool = True )
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ặclist[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ặclist[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ặclist[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ặclist[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.configSpeechT5Tokenizer
lớp transformers.SpeechT5Tokenizer
< source >( vocab_filebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'normalize = Falsesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )
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àoSentencePieceProcessor.__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__
< source >( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding
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 đặtis_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 đặtis_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 đặtis_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 đặtis_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àmPretrainedTokenizerBase.build_inputs_with_special_tokensbê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 tokenboshoặceosmột cách tự động. - padding (
bool,strhoặ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:Truehoặ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_lengthhoặ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.Falsehoặ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,strhoặ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:Truehoặc'longest_first': Cắt ngắn xuống độ dài tối đa được chỉ định bằng tham sốmax_lengthhoặ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_lengthhoặ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_lengthhoặ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.Falsehoặ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ớimax_length, các token tràn ra được trả về khireturn_overflowing_tokens=Truesẽ 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ànhTrue, 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ầupaddingphả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 (
strhoặ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ượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượng Numpynp.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ínhreturn_outputs. - 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ínhreturn_outputs. - 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ớitruncation_strategy = longest_firsthoặcTrue, 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ề
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.
-
token_type_ids — Danh sách các id loại token để đưa vào mô hình (khi
return_token_type_ids=Truehoặc nếu “token_type_ids” nằm trongself.model_input_names). -
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=Truehoặc nếu “attention_mask” nằm trongself.model_input_names). -
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_lengthvà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=Truevà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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Lưu từ vựng sentencepiece (sao chép tệp gốc) vào một thư mục.
decode
< source >( 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
< source >( 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
< source >( feature_size: int = 1sampling_rate: int = 16000padding_value: float = 0.0do_normalize: bool = Falsenum_mel_bins: int = 80hop_length: int = 16win_length: int = 64win_function: str = 'hann_window'fmin: float = 80fmax: float = 7600mel_floor: float = 1e-10return_attention_mask: bool = True**kwargs )
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 quatorch.{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_maskhay 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__
< source >( audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Noneaudio_target: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = None**kwargs )
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,strhoặ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:Truehoặ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_lengthhoặ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.Falsehoặ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ể. - return_tensors (
strhoặ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ượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượng Numpynp.ndarray.
- sampling_rate (
int, tùy chọn) — Tần số lấy mẫu mà đầu vàoaudiohoặcaudio_targetđược lấy mẫu. Rất khuyến nghị truyềnsampling_ratetrong 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
< source >( feature_extractortokenizer )
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__
< source >( *args**kwargs )
Tham số
- return_tensors (
strhoặ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ượngtorch.Tensorcủa PyTorch.'np': Trả về các đối tượngnp.ndarraycủa NumPy.
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_idsvà phổ log-mellabelsinput_valuesvà nhãn văn bảnlabels
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
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Tham số
- pretrained_model_name_or_path (
strhoặcos.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_pretrainedcủ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
< source >( save_directorypush_to_hub: bool = False**kwargs )
Tham số
- save_directory (
strhoặcos.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ằngrepo_id(mặc định sẽ là tên củasave_directorytrong 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.
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.
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
< source >( 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
< source >( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Seq2SeqModelOutput or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó hình dạng(batch_size, sequence_length)) — Tùy thuộc vào bộ mã hóa đang được sử dụng,input_valuescó 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.LongTensorcó 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.
- decoder_input_values (
torch.Tensorcó 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_valuescó 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.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_key_values). - speaker_embeddings (
torch.Tensorcó 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. Xemattentionstrong 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. Xemhidden_statestrong 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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
< source >( 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
< source >( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs ) → Seq2SeqLMOutput or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó 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ểulist[float], mộtnumpy.ndarrayhoặc mộttorch.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ànhinput_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành tensor có kiểutorch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết. - attention_mask (
torch.LongTensorcó 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.
- decoder_input_ids (
torch.LongTensorcó 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_idlàm token khởi đầu cho việc tạodecoder_input_ids. Nếupast_key_valuesđược sử dụng, tùy chọn chỉ cần nhậpdecoder_input_idscuối cùng (xempast_key_values). - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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. Xemattentionstrong 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. Xemhidden_statestrong 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.LongTensorcó 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 (xeminput_idsdocstring). Các token có chỉ số được đặt thành-100sẽ 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó shape(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Loss của language modeling.logits (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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'SpeechT5ForTextToSpeech
lớp transformers.SpeechT5ForTextToSpeech
< source >( 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)
Tham số
- input_ids (
torch.LongTensorcó 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.
- attention_mask (
torch.LongTensorcó 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.
- decoder_input_values (
torch.Tensorcó 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ếupast_key_valuesđược sử dụng, tùy chọn chỉ cần nhậpdecoder_input_valuescuối cùng (xempast_key_values). - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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. Xemattentionstrong 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. Xemhidden_statestrong 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.Tensorcó 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.Tensorcó 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.0sẽ 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.Tensorcó 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó hình dạng(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Tổn thất tạo phổ âm (spectrogram).spectrogram (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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
< source >( input_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False**kwargs ) → tuple(torch.Tensor) comprising various elements depending on the inputs
Tham số
- input_ids (
torch.LongTensorcó 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.
- attention_mask (
torch.LongTensorcó 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.Tensorcó 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ếuNone, đầ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_lengthslà False- spectrogram (tùy chọn, được trả về khi không cung cấp
vocoder)torch.Tensorcó 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.Tensorcó 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_attentionslàTrue)torch.Tensorcó 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.
- spectrogram (tùy chọn, được trả về khi không cung cấp
- khi
return_output_lengthslà True- spectrogram (tùy chọn, được trả về khi không cung cấp
vocoder)torch.Tensorcó 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.Tensorcó 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_attentionslàTrue)torch.Tensorcó 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.
- spectrogram (tùy chọn, được trả về khi không cung cấp
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
< source >( 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
< source >( input_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó 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ểulist[float], mộtnumpy.ndarrayhoặc mộttorch.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ànhinput_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành một tensor có kiểutorch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết. - attention_mask (
torch.LongTensorcó 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.
- decoder_input_values (
torch.Tensorcó 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ếupast_key_valuesđược sử dụng, tùy chọn chỉ cần nhậpdecoder_input_valuescuối cùng (xempast_key_values). - decoder_attention_mask (
torch.LongTensorcó 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 trongdecoder_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_maskvà 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_statecó 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ồmpast_key_valuesđược trả về bởi mô hình ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpinput_idschư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_idscó hình dạng(batch_size, sequence_length). - use_cache (
bool, tùy chọn) — Nếu đặt thànhTrue, các trạng thái key value củapast_key_valuessẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xempast_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. Xemattentionstrong 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. Xemhidden_statestrong 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.Tensorcó 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.Tensorcó 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.Tensorcó 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
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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.Tensorcó hình dạng(1,), tùy chọn, được trả về khilabelsđược cung cấp) — Tổn thất tạo phổ âm (spectrogram).spectrogram (
torch.Tensorcó 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ề khiuse_cache=Trueđược truyền vào hoặc khiconfig.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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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ề khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Bộ tuple củatorch.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.Tensorcó 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ề khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.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ềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Tuple củatorch.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
< source >( input_values: Tensorspeaker_embeddings: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False ) → tuple(torch.Tensor) comprising various elements depending on the inputs
Tham số
- input_values (
torch.Tensorcó 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ộtnumpy.ndarrayhoặc mộttorch.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ànhinput_values, cần sử dụng SpeechT5Processor để đệm (padding) và chuyển đổi thành tensor có kiểutorch.Tensor. Xem SpeechT5Processor.call() để biết thêm chi tiết. - speaker_embeddings (
torch.Tensorcó 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.LongTensorcó 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.
- 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ếuNone, đầ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_lengthslà False- spectrogram (tùy chọn, được trả về khi không cung cấp
vocoder)torch.Tensorcó 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.Tensorcó 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_attentionslàTrue)torch.Tensorcó 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.
- spectrogram (tùy chọn, được trả về khi không cung cấp
- khi
return_output_lengthslà True- spectrogram (tùy chọn, được trả về khi không cung cấp
vocoder)torch.Tensorcó 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.Tensorcó 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_attentionslàTrue)torch.Tensorcó 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.
- spectrogram (tùy chọn, được trả về khi không cung cấp
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
< source >( 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
< source >( 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ô.