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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2021年10月14日にHF papersで公開され、2023年2月3日にHugging Face Transformersに貢献されました。

SpeechT5

概要

SpeechT5モデルは、Junyi Ao、Rui Wang、Long Zhou、Chengyi Wang、Shuo Ren、Yu Wu、Shujie Liu、Tom Ko、Qing Li、Yu Zhang、Zhihua Wei、Yao Qian、Jinyu Li、Furu Wei による SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing で提案されました。

論文の抄録は以下の通りです。

事前学習済み自然言語処理モデルにおけるT5(Text-To-Text Transfer Transformer)の成功に着想を得て、我々は、自己教師あり音声/テキスト表現学習のためのエンコーダ-デコーダ事前学習を探求する、統一モダリティのSpeechT5フレームワークを提案します。SpeechT5フレームワークは、共有エンコーダ-デコーダネットワークと、6つのモダリティ固有(音声/テキスト)の事前/事後ネットワークで構成されています。入力された音声/テキストを事前ネットワークで前処理した後、共有エンコーダ-デコーダネットワークがシーケンス間の変換をモデル化し、その後、事後ネットワークがデコーダの出力に基づいて音声/テキストモダリティで出力を生成します。大規模なラベルなし音声データとテキストデータを活用してSpeechT5を事前学習し、統一モダリティ表現を学習させることで、音声とテキストの両方に対するモデリング能力の向上を目指します。テキスト情報と音声情報をこの統一セマンティック空間に整合させるために、エンコーダとデコーダのインターフェースとして潜在ユニットを音声/テキスト状態とランダムに混合する、クロスモダリティベクトル量子化手法を提案します。広範な評価により、自動音声認識、音声合成、音声翻訳、ボイスコンバージョン、音声増強、話者識別を含む、多様な音声言語処理タスクにおいて、提案するSpeechT5フレームワークの優位性が示されました。

このモデルはMatthijsによって提供されました。元のコードはこちらで確認できます。

use_kernels=True を from_pretrained() に設定すると、対応するレイヤーが Hub からの最適化されたカーネルに置き換えられます。詳細は カーネルの読み込み を参照してください。

SpeechT5Config

クラス transformers.SpeechT5Config

< >

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

パラメータ

  • is_encoder_decoder (bool、任意、デフォルトはTrue) — モデルがエンコーダー/デコーダーとして使用されるかどうかを示します。
  • vocab_size (int、任意、デフォルトは 81) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 768) — 隠れ表現の次元数。
  • encoder_layers (int、任意、デフォルト値は 12) — Transformer エンコーダーの隠れ層の数です。設定されていない場合、num_layers と同じ値が使用されます。
  • encoder_attention_heads (int、任意、デフォルトは 12) — Transformer エンコーダーの各アテンション層におけるアテンションヘッドの数。
  • encoder_ffn_dim (int、任意、デフォルトは 3072) — エンコーダー内の「中間」層(フィードフォワード層とも呼ばれる)の次元数。
  • encoder_layerdrop (Union[float, int]、任意、デフォルトは 0.1) — エンコーダーの LayerDrop 確率です。詳細は [LayerDrop の論文](https://huggingface.co/papers/1909.11556 を参照)をご覧ください。
  • decoder_layers (int、任意、デフォルトは 6) — Transformer デコーダーの隠れ層の数です。設定されていない場合、num_layers と同じ値が使用されます。
  • decoder_ffn_dim (int、任意、デフォルトは 3072) — デコーダー内の「中間」層(フィードフォワード層と呼ばれることが多い)の次元数。
  • decoder_attention_heads (int、任意、デフォルトは 12) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • decoder_layerdrop (Union[float, int]、任意、デフォルトは 0.1) — デコーダーの LayerDrop 確率です。詳細は [LayerDrop の論文](https://huggingface.co/papers/1909.11556 を参照)をご覧ください。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • positional_dropout (float、任意、デフォルト値は 0.1) — テキスト位置エンコーディング層の dropout 確率です。
  • hidden_dropout (Union[float, int]、省略可、デフォルトは 0.1) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.1) — アテンション確率のドロップアウト率です。
  • activation_dropout (Union[float, int]、任意、デフォルトは 0.1) — 全結合層内の活性化の dropout 率です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • layer_norm_eps (float、任意、デフォルトは 1e-05) — レイヤーノーマル層で使用する epsilon です。
  • scale_embedding (bool、任意、デフォルトは False) — 埋め込みを sqrt(d_model) で割ることでスケーリングするかどうか。
  • feat_extract_norm (str、任意、デフォルトは "group") — 音声エンコーダのプレネットにある1次元畳み込み層に適用される正規化の種類。"group" は最初の1次元畳み込み層のみをグループ正規化し、"layer" はすべての1次元畳み込み層をレイヤ正規化します。
  • feat_proj_dropout (float、任意、デフォルト値は 0.0) — 音声エンコーダのプレネットの出力に対する dropout 確率です。
  • feat_extract_activation (str, optional, defaults to “gelu”) -- The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, “gelu”, “relu”, “selu”and“gelu_new”` are supported.
  • conv_dim (tuple[int] または list[int]、省略可能、デフォルトは (512, 512, 512, 512, 512, 512, 512)) — 音声エンコーダのプレネットにおける各1次元畳み込み層の入力チャネル数と出力チャネル数を定義する整数のタプルです。conv_dim の長さが、1次元畳み込み層の数を定義します。
  • conv_stride (tuple[int] または list[int]、省略可能、デフォルトは (5, 2, 2, 2, 2, 2, 2)) — 音声エンコーダのプレネットにおける各1次元畳み込み層のストライドを定義する整数のタプルです。conv_stride の長さが畳み込み層の数を定義し、conv_dim の長さと一致する必要があります。
  • conv_kernel (tuple[int] または list[int]、任意、デフォルトは (10, 3, 3, 3, 3, 3, 3)) — 音声エンコーダのプレネットにおける各1次元畳み込み層のカーネルサイズを定義する整数のタプルです。 conv_kernel の長さが畳み込み層の数を定義し、conv_dim の長さと一致する必要があります。
  • conv_bias (bool、任意、デフォルトはFalse) — 1次元畳み込み層にバイアスがあるかどうか。
  • num_conv_pos_embeddings (int、任意、デフォルト値は 128) — 畳み込み位置埋め込みの数。1 次元畳み込み位置埋め込みレイヤーのカーネルサイズを定義します。
  • num_conv_pos_embedding_groups (int、任意、デフォルト値は 16) — 1 次元畳み込み位置埋め込み層のグループ数。
  • apply_spec_augment (bool、任意、デフォルトは True) — 音声エンコーダのプレネットの出力に SpecAugment データ拡張を適用するかどうか。参考として SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition を参照してください。
  • mask_time_prob (float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_time_length (int、任意、デフォルトは 10) — 時間軸に沿ったベクトル範囲の長さ。
  • mask_time_min_masks (int, 任意、デフォルトは 2)、— 時間軸に沿って生成される、長さ mask_feature_length のマスクの最小数です。各タイムステップについて、mask_feature_prob を無視して適用されます。”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks” の場合のみ関連します。
  • mask_feature_prob (float, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_feature_prob (Union[float, int]、任意、デフォルト値は 0.0) — 特徴軸に沿った全特徴ベクトルの中で、マスクされる割合(0 から 1 の間)。 マスク処理では、軸に対して mask_feature_prob*len(feature_axis)/mask_time_length 個の独立したマスクが生成されます。 マスクされるベクトル範囲の開始点として各特徴ベクトルが選択される確率から考えると、mask_feature_prob は prob_vector_start*mask_feature_length であるべきです。 重複により、実際にマスクされるベクトルの割合が減少する可能性があります。これは apply_spec_augment が True の場合にのみ関連します。
  • mask_feature_length (int、任意、デフォルト値は 10)— 特徴量軸に沿ったベクトル範囲の長さ。
  • mask_feature_min_masks (int, 任意、デフォルトは 0)、— mask_feature_prob に関係なく、各タイムステップにおいて、特徴量軸に沿って生成される長さ mask_feature_length のマスクの最小数です。”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks” の場合にのみ関連します。
  • num_mel_bins (int, 任意、デフォルトは 80) — 各入力特徴量に使用される mel 特徴量の数です。音声デコーダーの pre-net で使用されます。SpeechT5Processor クラスで使用される値と一致させる必要があります。
  • pad_token_id (int、任意、デフォルトは 1) — 語彙内でパディングに使用されるトークン ID。
  • bos_token_id (int、任意、デフォルトは 0) — 語彙におけるストリーム開始に使用されるトークン ID。
  • eos_token_id (Union[int, list[int]]、任意、デフォルトは 2) — 語彙内でストリーム終了に使用されるトークン ID。
  • decoder_start_token_id (int、任意、デフォルトは 2) — エンコーダー・デコーダーモデルが bos とは異なるトークンでデコーディングを開始する場合、そのトークンの ID。
  • num_mel_bins (int, 任意、デフォルトは 80) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractor クラスで使用された値と一致させる必要があります。
  • speech_decoder_prenet_layers (int、任意、デフォルトは 2)— 音声デコーダーのプレネットの層数です。
  • speech_decoder_prenet_units (int、任意、デフォルト値は 256)— 音声デコーダーのプレネットの各層の次元数。
  • speech_decoder_prenet_dropout (float、任意、デフォルト値は 0.5) — 音声デコーダーのプレネット層における dropout の確率です。
  • speaker_embedding_dim (int、任意、デフォルトは 512) — XVector 埋め込みベクトルの次元数。
  • speech_decoder_postnet_layers (int、任意、デフォルト値は 5) — 音声デコーダーのポストネットの層数。
  • speech_decoder_postnet_units (int、任意、デフォルト値は 256) — 音声デコーダーのポストネット内の各層の次元数。
  • speech_decoder_postnet_kernel (int、任意、デフォルト値は 5) — 音声デコーダーのポストネットにおける畳み込みフィルターのチャネル数です。
  • speech_decoder_postnet_dropout (float、任意、デフォルト値は 0.5) — 音声デコーダーのポストネット層におけるドロップアウト確率です。
  • reduction_factor (int、任意、デフォルトは 2) — 音声デコーダーの入力に対するスペクトログラムの長さ縮小係数です。
  • max_speech_positions (int、任意、デフォルト値は 4000)— このモデルが使用される可能性がある音声特徴量の最大シーケンス長です。
  • max_text_positions (int、任意、デフォルト値は 450) — このモデルが使用される可能性があるテキスト特徴量の最大シーケンス長です。
  • encoder_max_relative_position (int、任意、デフォルト値は 160)— エンコーダーにおける相対位置埋め込みの最大距離です。
  • use_guided_attention_loss (bool、任意、デフォルトはTrue) — TTSモデルの学習時に、guided attention lossを適用するかどうかを指定します。
  • guided_attention_loss_num_heads (int、任意、デフォルトは 2) — guided attention loss を適用するアテンションヘッドの数です。すべてのアテンションヘッドにこの損失を適用するには -1 を使用します。
  • guided_attention_loss_sigma (float、任意、デフォルト値は 0.4) — guided attention loss の標準偏差。
  • guided_attention_loss_scale (float、任意、デフォルト値は 10.0)— ガイド付きアテンション損失のスケール係数(lambda とも呼ばれる)。
  • use_cache (bool、任意、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
  • tie_word_embeddings (bool、任意、デフォルトは True) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。

これはSpeechT5Modelの設定を保存するための設定クラスです。指定された引数に基づいてSpeecht5モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、microsoft/speecht5_asrと類似した設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import SpeechT5Model, SpeechT5Config

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

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

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

SpeechT5HifiGanConfig

class 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 )

パラメータ

  • model_in_dim (int、任意、デフォルト値は 80) — 入力ログメルスペクトログラムの周波数ビンの数です。
  • sampling_rate (int、任意、デフォルトは 16000) — オーディオファイルをデジタル化するためのサンプリングレート (Hz)。
  • upsample_initial_channel (int、任意、デフォルトは 512) — アップサンプリングネットワークへの入力チャネル数です。
  • upsample_rates (tuple[int] または list[int]、任意、デフォルトは [4, 4, 4, 4]) — アップサンプリングネットワーク内の各1次元畳み込み層のストライドを定義する整数のタプルです。upsample_rates の長さが畳み込み層の数を定義し、upsample_kernel_sizes の長さと一致する必要があります。
  • upsample_kernel_sizes (tuple[int] または list[int]、省略可能、デフォルトは [8, 8, 8, 8]) — アップサンプリングネットワーク内の各1次元畳み込み層のカーネルサイズを定義する整数のタプルです。upsample_kernel_sizes の長さが畳み込み層の数を定義し、upsample_rates の長さと一致する必要があります。
  • resblock_kernel_sizes (tuple[int] または list[int]、任意、デフォルトは [3, 7, 11]) — マルチレセプティブフィールドフュージョン(MRF)モジュール内の1次元畳み込み層のカーネルサイズを定義する整数のタプル。
  • resblock_dilation_sizes (tuple[tuple[int]] または list[list[int]]、任意、デフォルトは [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — multi-receptive field fusion (MRF) モジュール内の、拡張された1次元畳み込み層のdilation rateを定義する整数のネストされたタプルです。
  • initializer_range (float、任意、デフォルトは 0.01) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • leaky_relu_slope (float、任意、デフォルト値は 0.1) — Leaky ReLU 活性化関数で使用する負の傾きの角度です。
  • normalize_before (bool、任意、デフォルトは True) — ボコーダーの学習済み平均と分散を用いて、ボコーディング前にスペクトログラムを正規化するか否かを指定します。

これはSpeechT5Modelの設定を保存するための設定クラスです。指定された引数に基づいてSpeecht5モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、microsoft/speecht5_asrと類似した設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import SpeechT5HifiGan, SpeechT5HifiGanConfig

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

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

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

SpeechT5Tokenizer

クラス 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 )

パラメータ

  • vocab_file (str) — トークナイザーをインスタンス化するために必要な語彙を含む、SentencePiece ファイル(通常は .spm 拡張子を持っています)。
  • bos_token (str、任意、デフォルトは "<s>") — シーケンスの開始トークンです。
  • eos_token (str、任意、デフォルトは "</s>") — シーケンスの終了トークンです。
  • unk_token (str、任意、デフォルトは "<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。
  • pad_token (str、任意、デフォルトは "<pad>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。
  • normalize (bool、省略可、デフォルトは False) — テキスト内の数値を、英語のスペルアウト表記に変換するかどうかを指定します。
  • sp_model_kwargs (dict, 省略可) — は SentencePieceProcessor.__init__() メソッドに渡されます。 SentencePiece の Python ラッパー は、次のような設定を行うために使用できます:
    • enable_sampling: サブワード正規化を有効にします。

    • nbest_size: unigramのサンプリングパラメータ。BPE-Dropoutでは無効です。

      • nbest_size = {0,1}: サンプリングは行われません。
      • nbest_size > 1: nbest_size 個の結果からサンプリングします。
      • nbest_size < 0: nbest_size が無限大であると仮定し、forward-filtering-and-backward-sampling アルゴリズムを使用して、すべての仮説(ラティス)からサンプリングします。
    • alpha: 単一語サンプリングの平滑化パラメータ、および BPE-dropout におけるマージ操作のドロップアウト確率。

  • sp_model (SentencePieceProcessor) — すべての変換(文字列、トークン、ID)に使用されるSentencePieceプロセッサ。

SpeechT5のトークナイザーを構築します。SentencePieceをベースにしています。

このトークナイザーは、PreTrainedTokenizer を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

__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

パラメータ

  • text (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化済み文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化された文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • tokenizer_kwargs (dict[str, Any]、省略可) — トークナイザーに渡す追加の kwargs です。これらは明示的なパラメータおよびその他の kwargs とマージされますが、明示的なパラメータが優先されます。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • pad_to_multiple_of (int, 任意) — 設定すると、指定された値の倍数にシーケンスをパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これは return_outputs 属性で定義されます。

    トークンタイプIDとは?

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_overflowing_tokens (bool、任意、デフォルトは False) — 溢れ出したトークンシーケンスを返すかどうかを指定します。入力 ID のシーケンスのペア(またはペアのバッチ)が truncation_strategy = longest_first または True とともに提供された場合、溢れ出したトークンを返す代わりにエラーが発生します。
  • return_special_tokens_mask (bool、省略可能、デフォルトはFalse) — 特殊トークンのマスク情報を返すかどうかを指定します。
  • return_offsets_mapping (bool, 省略可能, デフォルトは False) — 各トークンについて (char_start, char_end) を返すかどうか。

    この機能は、PreTrainedTokenizerFast を継承する高速トークナイザーでのみ利用可能です。Python のトークナイザーを使用している場合、このメソッドは NotImplementedError を送出します。

  • return_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • **kwargs — self.tokenize() メソッドに渡されます

戻り値

BatchEncoding

以下のフィールドを持つBatchEncoding:

  • input_ids — モデルに与えるトークン ID のリスト。

    入力IDとは何ですか?

  • token_type_ids — モデルに渡すトークンタイプIDのリスト(return_token_type_ids=Trueの場合、またはself.model_input_namesに“token_type_ids”が含まれている場合)。

    トークンタイプIDとは?

  • attention_mask — モデルがどのトークンに注意を向けるべきかを指定するインデックスのリスト(return_attention_mask=True の場合、または self.model_input_names に “attention_mask” が含まれている場合)。

    アテンションマスクとは?

  • overflowing_tokens — 溢れ出したトークンシーケンスのリスト(max_lengthが指定され、return_overflowing_tokens=Trueの場合)。

  • num_truncated_tokens — トークンが切り詰められた数(max_length が指定され、return_overflowing_tokens=True の場合)。

  • special_tokens_mask — 0 と 1 のリスト。1 は追加された特殊トークンを、0 は通常のシーケンストークンを示します(add_special_tokens=True かつ return_special_tokens_mask=True の場合)。

  • length — 入力データの長さ(return_length=Trueの場合)

1 つ以上のシーケンス、または 1 つ以上のシーケンスのペアをトークナイズし、モデル用に準備するためのメインメソッドです。

save_vocabulary

< >

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

パラメータ

  • save_directory (str) — 語彙を保存するディレクトリ。
  • filename_prefix (str, 任意) — 保存するファイル名に付加する任意のプレフィックスです。

戻り値

tuple(str)

保存されたファイルへのパス。

sentencepieceの語彙(元のファイルのコピー)をディレクトリに保存します。

decode

< >

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

パラメータ

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID の単一シーケンスまたはバッチ(シーケンスのリスト)です。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

Union[str, list[str]]

単一のシーケンスに対するデコード済み文字列、またはシーケンスのバッチに対するデコード済み文字列のリスト。

tokenizerとvocabularyを使用して、idのシーケンスを文字列に変換します。また、シーケンスのリストを文字列のリストに変換することもできます。特殊トークンの削除や、トークン化スペースのクリーンアップなどのオプションが利用可能です。

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]

パラメータ

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID のリスト。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • clean_up_tokenization_spaces (bool、任意) — トークン化のスペースを整理するかどうか。None の場合、self.clean_up_tokenization_spaces がデフォルトとして使用されます。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

list[str]

デコードされた文のリスト。

decode を呼び出して、トークン ID のリストのリストを文字列のリストに変換します。

このメソッドは後方互換性のために提供されています。decodeメソッドは現在、バッチ入力をネイティブで処理するため、batch_decodeの代わりにdecodeを直接使用できます。

SpeechT5FeatureExtractor

class 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 )

パラメータ

  • feature_size (int、任意、デフォルトは 1) — 抽出された特徴量の次元数。
  • sampling_rate (int、任意、デフォルトは 16000) — オーディオファイルをデジタル化するためのサンプリングレート(ヘルツ (Hz) 表記)。
  • padding_value (float、任意、デフォルトは 0.0) — パディング値を埋めるために使用される値です。
  • do_normalize (bool、任意、デフォルトはFalse) — 入力を平均ゼロ・分散1に正規化するか否かを指定します。正規化を行うことで、一部のモデルではパフォーマンスが大幅に向上する場合があります。
  • num_mel_bins (int、任意、デフォルト値は 80) — 抽出されたスペクトログラム特徴におけるメルフリクエンシビンの数です。
  • hop_length (int、任意、デフォルト値は 16)— ウィンドウ間の間隔 (ms)。多くの論文では「shift」とも呼ばれます。
  • win_length (int、任意、デフォルトは 64)— ウィンドウごとのミリ秒数。
  • win_function (str、任意、デフォルトは"hann_window") — ウィンドウ処理に使用するウィンドウ関数の名前です。torch.{win_function} 経由でアクセス可能である必要があります。
  • fmin (float、任意、デフォルト値は 80)— 最小の mel 周波数 (Hz)。
  • fmax (float、任意、デフォルト値は 7600) — Hz 単位での最大 mel 周波数。
  • mel_floor (float、任意、デフォルト値は 1e-10) — メル周波数バンクの最小値。
  • return_attention_mask (bool、任意、デフォルトは True) — call() が attention_mask を返すかどうか。

SpeechT5のフィーチャーエクストラクターを構築します。

このクラスは、SpeechT5 の音声エンコーダ prenet で使用するために、生音声信号を(オプションで)平均ゼロ・分散1に正規化して前処理できます。

このクラスは、SpeechT5 の音声デコーダの prenet で使用するために、生音声から log-mel フィルターバンク特徴量を抽出することもできます。

このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

__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 )

パラメータ

  • audio (np.ndarray、list[float]、list[np.ndarray]、list[list[float]]、任意) — 処理対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、NumPy 配列、浮動小数点数の値のリスト、NumPy 配列のリスト、または浮動小数点数の値のリストのリストであることができます。これにより、波形特徴量が出力されます。ステレオではなくモノラルのオーディオでなければならず、つまり、タイムステップごとに単一の浮動小数点数である必要があります。
  • audio_target (np.ndarray、list[float]、list[np.ndarray]、list[list[float]]、任意) — ターゲットとして処理されるシーケンスまたはシーケンスのバッチです。各シーケンスは、NumPy 配列、浮動小数点数の値のリスト、NumPy 配列のリスト、または浮動小数点数の値のリストのリストのいずれかです。これにより、log-mel スペクトログラム特徴量が出力されます。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:
    • Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • max_length (int, 任意) — 返されるリストの最大長、および必要に応じてパディングの長さ(上記を参照)。
  • truncation (bool) — max_length を超える長さの入力シーケンスを max_length に切り詰めるための切り詰め処理を有効にします。
  • pad_to_multiple_of (int, 省略可能) — 設定すると、シーケンスを指定された値の倍数にパディングします。

    これは、計算能力が>= 7.5(Volta)のNVIDIAハードウェアでTensor Coresの利用を有効にするために、また、シーケンス長が128の倍数であることで恩恵を受けるTPUにおいて、特に有用です。

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、特定の feature_extractor のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • sampling_rate (int, 任意) — audio または audio_target 入力がサンプリングされたレートです。サイレントエラーを防ぐため、forward 呼び出し時に sampling_rate を渡すことを強く推奨します。

1つ以上のシーケンスを特徴量化し、モデル用に準備するための主要なメソッド。

audio に値を渡すと、波形の特徴量が抽出されます。audio_target に値を渡すと、ログメルスペクトログラムの特徴量が抽出されます。

SpeechT5Processor

クラス transformers.SpeechT5Processor

< >

( feature_extractortokenizer )

パラメータ

  • feature_extractor (SpeechT5FeatureExtractor) — フィーチャーエクストラクターは必須の入力です。
  • tokenizer (SpeechT5Tokenizer) — トークナイザーは必須の入力です。

SpeechT5Processor を構築します。これは、フィーチャーエクストラクターとトークナイザーを単一のプロセッサーにラップします。

SpeechT5Processor は、SpeechT5FeatureExtractor と SpeechT5Tokenizer のすべての機能を提供します。詳細については、~SpeechT5FeatureExtractor および ~SpeechT5Tokenizer を参照してください。

__call__

< >

( *args**kwargs )

パラメータ

  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。

pad

< >

( *args**kwargs )

オーディオとテキストの入力、およびそれらのターゲットを、パディングされたバッチにまとめます。

Audio 入力は SpeechT5FeatureExtractor の pad() によってパディングされます。テキスト入力は SpeechT5Tokenizer の pad() によってパディングされます。

有効な入力組み合わせは以下の通りです:

  • input_idsのみ
  • input_values のみ
  • labelsのみ、log-melスペクトログラムまたはテキストトークン
  • input_ids と log-mel スペクトログラムの labels
  • input_values とテキストのlabels

詳細については、上記の2つのメソッドのdocstringを参照してください。

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 )

パラメータ

  • pretrained_model_name_or_path (str または os.PathLike) — 次のいずれかです:
    • 文字列、huggingface.co上のモデルリポジトリにホストされている事前学習済みfeature_extractorのmodel id
    • save_pretrained() メソッドを使用して保存されたフィーチャーエクストラクターファイルを含むディレクトリへのパス。例: ./my_model_directory/
    • 保存されたフィーチャーエクストラクターの./my_model_directory/preprocessor_config.jsonのようなファイルへのパス
  • **kwargs — from_pretrained() と ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained の両方に渡される追加のキーワード引数。

事前学習済みモデルに関連付けられたプロセッサをインスタンス化します。

このクラスメソッドは、単にフィーチャーエクストラクターの from_pretrained()、イメージプロセッサーの ImageProcessingMixin、およびトークナイザーの ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained メソッドを呼び出しています。詳細については、上記のメソッドのドキュメント文字列を参照してください。

save_pretrained

< >

( save_directorypush_to_hub: bool = False**kwargs )

パラメータ

  • save_directory (str または os.PathLike) — フィーチャーエクストラクターの JSON ファイルとトークナイザーのファイルを保存するディレクトリです(存在しない場合は作成されます)。
  • push_to_hub (bool、省略可、デフォルトは False) — モデルを保存した後、Hugging Face モデルハブにプッシュするかどうかを指定します。プッシュ先のリポジトリは repo_id で指定できます(指定しない場合、save_directory の名前があなたのネームスペース内でデフォルトとして使用されます)。
  • kwargs (dict[str, Any]、省略可) — push_to_hub() メソッドに渡される追加のキーワード引数。

このプロセッサ(フィーチャーエクストラクター、トークナイザーなど)の属性を指定されたディレクトリに保存し、from_pretrained() メソッドによって再読み込みできるようにします。

このクラスメソッドは、save_pretrained()とsave_pretrained()を呼び出すだけです。詳細については、上記のメソッドのドキュメント文字列を参照してください。

batch_decode

< >

( *args**kwargs )

このメソッドは、すべての引数を PreTrainedTokenizer の batch_decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。

decode

< >

( *args**kwargs )

このメソッドは、すべての引数を PreTrainedTokenizer の decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。

SpeechT5Model

クラス transformers.SpeechT5Model

< >

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

パラメータ

  • config (SpeechT5Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
  • encoder (PreTrainedModel、任意) — 使用するエンコーダーモデル。
  • decoder (PreTrainedModel、任意) — 使用するデコーダーモデル。

特定の事前ネットワークや事後ネットワークを伴わず、生の隠れ状態を出力する、素のSpeechT5 Encoder-Decoder Model。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

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)

パラメータ

  • input_values (torch.Tensor、形状 (batch_size, sequence_length)) — 使用しているエンコーダーによって、input_values は以下のいずれかになります。入力生の音声波形の浮動小数点数値、語彙内の入力シーケンストークンのインデックス、または隠れ状態。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • decoder_input_values (torch.Tensor、shape (batch_size, target_sequence_length)、任意) — 使用しているデコーダーによって、decoder_input_values は以下のいずれかになります。生の音声波形から抽出された log-mel フィルターバンク特徴量の浮動小数点数値、語彙内のデコーダー入力シーケンストークンのインデックス、または隠れ状態。
  • decoder_attention_mask (torch.LongTensor 形状 (batch_size, target_sequence_length), 任意) — デフォルトの動作: decoder_input_values. デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図 1 を参照してください。

    パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。

  • encoder_outputs (tuple[tuple[torch.Tensor]]、任意) — (last_hidden_state、任意: hidden_states、任意: attentions) のタプル last_hidden_state は形状 (batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。
  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • speaker_embeddings (torch.Tensor、形状 (batch_size, config.speaker_embedding_dim)、任意) — 話者埋め込みを含むテンソル。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。

戻り値

Seq2SeqModelOutput または tuple(torch.Tensor)

torch.Tensor のタプル、または Seq2SeqModelOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(SpeechT5Config)と入力に応じて、さまざまな要素で構成されます。

SpeechT5Modelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)) — モデルのデコーダーの最終層の出力における、隠れ状態のシーケンスです。

    past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。

  • past_key_values (EncoderDecoderCache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • decoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるデコーダーのHidden-states、および任意の初期埋め込み出力。

  • decoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

  • encoder_last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — モデルのエンコーダーの最終層の出力における隠れ状態のシーケンス。

  • encoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるエンコーダーのHidden-states、および任意の初期埋め込み出力。

  • encoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。

SpeechT5ForSpeechToText

クラス transformers.SpeechT5ForSpeechToText

< >

( config: SpeechT5Config )

パラメータ

  • config (SpeechT5Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

音声エンコーダーとテキストデコーダーを備えたSpeechT5モデル。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

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)

パラメータ

  • input_values (torch.Tensor、shape (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点数値。値は、.flac または .wav 形式のオーディオファイルを list[float]、numpy.ndarray、または torch.Tensor 型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ (pip install torchcodec) または soundfile ライブラリ (pip install soundfile) を使用します。 配列を input_values に整えるには、パディングと torch.Tensor 型への変換のために SpeechT5Processor を使用してください。詳細は SpeechT5Processor.call() を参照してください。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • decoder_input_ids (torch.LongTensor の形状 (batch_size, target_sequence_length), 、任意) — 語彙におけるデコーダー入力シーケンスのトークンインデックスです。

    インデックスはSpeechT5Tokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    デコーダー入力IDとは何ですか?

    SpeechT5 は decoder_input_ids の生成の開始トークンとして eos_token_id を使用します。past_key_values を使用する場合、任意で最後の decoder_input_ids だけを入力すれば十分です(past_key_values を参照)。

  • decoder_attention_mask (torch.LongTensor 形状 (batch_size, target_sequence_length), 任意) — デフォルトの動作: decoder_input_values. デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図 1 を参照してください。

    パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。

  • encoder_outputs (tuple[tuple[torch.Tensor]]、任意) — (last_hidden_state、任意: hidden_states、任意: attentions) のタプル last_hidden_state は形状 (batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。
  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • labels (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 言語モデリングの損失を計算するためのラベル。インデックスは [0, ..., config.vocab_size] または -100 である必要があります( input_ids のドキュメント文字列を参照)。インデックスが -100 に設定されたトークンは無視(マスク)され、損失は [0, ..., config.vocab_size].

    ラベルのインデックスはSpeechT5Tokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

戻り値

Seq2SeqLMOutput または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または Seq2SeqLMOutput。設定(SpeechT5Config)と入力に応じて、さまざまな要素で構成されます。

SpeechT5ForSpeechToTextのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.Tensor、形状 (1,)、任意、labels が指定された場合に返されます) — 言語モデリングの損失。

  • logits (torch.Tensor、形状 (batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。

  • past_key_values (EncoderDecoderCache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • decoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。

  • decoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

  • encoder_last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — モデルのエンコーダーの最終層の出力における隠れ状態のシーケンス。

  • encoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。

  • encoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。

例:

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

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

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

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

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'
>>> 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

クラス transformers.SpeechT5ForTextToSpeech

< >

( config: SpeechT5Config )

パラメータ

  • config (SpeechT5Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

テキストエンコーダーと音声デコーダーを備えたSpeechT5モデル。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

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)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックス。

    インデックスはSpeechT5Tokenizerを使用して取得できます。詳細については、encode()およびcall()を参照してください。

    入力IDとは何ですか?

  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • decoder_input_values (torch.Tensor の形状 (batch_size, sequence_length, config.num_mel_bins)) — 入力メロスペクトログラムの浮動小数点値。

    SpeechT5 は、decoder_input_values の生成において、全ゼロのスペクトラムを開始トークンとして使用します。past_key_values を使用する場合、オプションとして最後の decoder_input_values だけを入力すれば十分です(past_key_values を参照)。

  • decoder_attention_mask (torch.LongTensor 形状 (batch_size, target_sequence_length), 任意) — デフォルトの動作: decoder_input_values. デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図 1 を参照してください。

    パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。

  • encoder_outputs (tuple[tuple[torch.Tensor]]、任意) — (last_hidden_state、任意: hidden_states、任意: attentions) のタプル last_hidden_state は形状 (batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。
  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • speaker_embeddings (torch.Tensor、形状 (batch_size, config.speaker_embedding_dim)、任意) — 話者埋め込みを含むテンソル。
  • labels (torch.Tensor、形状 (batch_size, sequence_length, config.num_mel_bins)、任意) — ターゲットのメルスペクトログラムの浮動小数点値です。タイムステップが -100.0 に設定されている場合は、損失の計算において無視(マスク)されます。スペクトログラムは SpeechT5Processor を使用して取得できます。詳細は SpeechT5Processor.call() を参照してください。
  • stop_labels (torch.Tensor、形状 (batch_size, sequence_length)、任意) — シーケンス内のストップトークンの位置を示すバイナリテンソル。

戻り値

Seq2SeqSpectrogramOutput または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または Seq2SeqSpectrogramOutput。設定(SpeechT5Config)と入力に応じて、さまざまな要素で構成されます。

SpeechT5ForTextToSpeechのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.Tensor、形状 (1,)、任意、labels が指定された場合に返されます) — スペクトログラム生成の損失。

  • スペクトログラム (torch.Tensor、形状 (batch_size, sequence_length, num_bins)) — 予測されたスペクトログラム。

  • past_key_values (EncoderDecoderCache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • decoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。

  • decoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

  • encoder_last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — モデルのエンコーダーの最終層の出力における隠れ状態のシーケンス。

  • encoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。

  • encoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。

例:

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

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

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

>>> set_seed(555)  # make deterministic

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

generate

< >

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

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックス。

    インデックスはSpeechT5Tokenizerを使用して取得できます。詳細については、encode()およびcall()を参照してください。

    入力IDとは何ですか?

  • attention_mask (torch.LongTensor of shape (batch_size, sequence_length)) — Attention mask from the tokenizer, required for batched inference to signal to the model where to ignore padded tokens from the input_ids.
  • speaker_embeddings (torch.Tensor、形状 (batch_size, config.speaker_embedding_dim)、任意) — 話者埋め込みを含むテンソル。
  • threshold (float、任意、デフォルト値は 0.5) — 生成されるシーケンスは、予測された停止トークンの確率がこの値を超えた時点で終了します。
  • minlenratio (float、任意、デフォルト値は 0.0) — 出力シーケンスの最小必要長を計算するために使用されます。
  • maxlenratio (float、任意、デフォルト値は 20.0) — 出力シーケンスの許容される最大長を計算するために使用されます。
  • vocoder (nn.Module, 任意) — メルスペクトログラムを音声波形に変換するボコーダー。None の場合、出力はメルスペクトログラムになります。
  • output_cross_attentions (bool、任意、デフォルトは False) — デコーダーのクロスアテンション層のアテンションテンソルを返すかどうかを指定します。
  • return_output_lengths (bool、任意、デフォルトは False) — 具体的なスペクトログラム/波形の長さを返すかどうかを指定します。

戻り値

入力に応じてさまざまな要素を含むtuple(torch.Tensor)

  • が return_output_lengths のとき
    • spectrogram (optional、vocoder が指定されていない場合に返されます) torch.Tensor、shape (output_sequence_length, config.num_mel_bins) — 予測された log-mel スペクトログラム。
    • waveform(optional、vocoderが指定された場合に返されます)torch.Tensor、shape (num_frames,) — 予測された音声波形。
    • cross_attentions (任意、output_cross_attentions が True の場合のみ返されます) torch.Tensor、形状 (config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — デコーダーのクロスアテンション層の出力です。
  • が return_output_lengths True の場合
    • スペクトログラム(任意、vocoderが指定されていない場合に返されます)torch.Tensor、形状 (batch_size, output_sequence_length, config.num_mel_bins) — 最大長にパディングされた予測されたログメルスペクトログラム。
    • spectrogram_lengths (任意、vocoderが指定されていない場合に返されます) list[Int] — 各スペクトログラムの具体的な長さのリストです。
    • 波形(任意、vocoderが指定された場合に返されます)形状(batch_size, num_frames)のtorch.Tensor — 最大長にパディングされた予測された音声波形です。
    • waveform_lengths (optional、vocoderが指定された場合に返されます) list[Int] — 各波形の具体的な長さのリストです。
    • cross_attentions (オプション、output_cross_attentionsがTrueの場合に返されます) torch.Tensor、形状(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — デコーダーのクロスアテンション層の出力。

入力トークンのシーケンスをメルスペクトログラムのシーケンスに変換し、その後、ボコーダーを使用して音声波形に変換します。

SpeechT5ForSpeechToSpeech

class transformers.SpeechT5ForSpeechToSpeech

< >

( config: SpeechT5Config )

パラメータ

  • config (SpeechT5Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

音声エンコーダーと音声デコーダーを備えたSpeechT5モデル。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

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)

パラメータ

  • input_values (torch.Tensor、shape (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点数値。値は、.flac または .wav 形式のオーディオファイルを list[float]、numpy.ndarray、または torch.Tensor 型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ (pip install torchcodec) または soundfile ライブラリ (pip install soundfile) を使用します。 配列を input_values に整えるには、パディングと torch.Tensor 型への変換のために SpeechT5Processor を使用してください。詳細は SpeechT5Processor.call() を参照してください。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • decoder_input_values (torch.Tensor の形状 (batch_size, sequence_length, config.num_mel_bins)) — 入力メロスペクトログラムの浮動小数点値。

    SpeechT5 は、decoder_input_values の生成において、全ゼロのスペクトラムを開始トークンとして使用します。past_key_values を使用する場合、オプションとして最後の decoder_input_values だけを入力すれば十分です(past_key_values を参照)。

  • decoder_attention_mask (torch.LongTensor 形状 (batch_size, target_sequence_length), 任意) — デフォルトの動作: decoder_input_values. デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図 1 を参照してください。

    パディングの動作を変更する場合は、SpeechT5Decoder._prepare_decoder_attention_mask を読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。

  • encoder_outputs (tuple[tuple[torch.Tensor]]、任意) — (last_hidden_state、任意: hidden_states、任意: attentions) のタプル last_hidden_state は形状 (batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。
  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • speaker_embeddings (torch.Tensor、形状 (batch_size, config.speaker_embedding_dim)、任意) — 話者埋め込みを含むテンソル。
  • labels (torch.Tensor、形状 (batch_size, sequence_length, config.num_mel_bins)、任意) — ターゲットのメルスペクトログラムの浮動小数点値です。スペクトログラムは SpeechT5Processor を使用して取得できます。詳細は SpeechT5Processor.call() を参照してください。
  • stop_labels (torch.Tensor、形状 (batch_size, sequence_length)、任意) — シーケンス内のストップトークンの位置を示すバイナリテンソル。

戻り値

Seq2SeqSpectrogramOutput または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または Seq2SeqSpectrogramOutput。設定(SpeechT5Config)と入力に応じて、さまざまな要素で構成されます。

SpeechT5ForSpeechToSpeechのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • loss (torch.Tensor、形状 (1,)、任意、labels が指定された場合に返されます) — スペクトログラム生成の損失。

  • スペクトログラム (torch.Tensor、形状 (batch_size, sequence_length, num_bins)) — 予測されたスペクトログラム。

  • past_key_values (EncoderDecoderCache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • decoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。

  • decoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。

  • cross_attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length) です。

    クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。

  • encoder_last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — モデルのエンコーダーの最終層の出力における隠れ状態のシーケンス。

  • encoder_hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。

  • encoder_attentions (tuple(torch.Tensor)、任意、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。

例:

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

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

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

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

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

>>> set_seed(555)  # make deterministic

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

generate_speech

< >

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

パラメータ

  • input_values (torch.Tensor の形状 (batch_size, sequence_length)) — 入力生の音声波形の浮動小数点値。

    .flac または .wav のオーディオファイルを読み込み、list[float]、numpy.ndarray、または torch.Tensor 型の配列として値を取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を使用できます。配列を input_values に整えるには、パディングと torch.Tensor 型への変換のために SpeechT5Processor を使用してください。詳細は SpeechT5Processor.call() を参照してください。

  • speaker_embeddings (torch.Tensor、形状 (batch_size, config.speaker_embedding_dim)、任意) — 話者埋め込みを含むテンソル。
  • attention_mask (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスでの畳み込みとアテンションの計算を回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • threshold (float、任意、デフォルト値は 0.5) — 生成されるシーケンスは、予測された停止トークンの確率がこの値を超えた時点で終了します。
  • minlenratio (float、任意、デフォルト値は 0.0) — 出力シーケンスの最小必要長を計算するために使用されます。
  • maxlenratio (float、任意、デフォルト値は 20.0) — 出力シーケンスの許容される最大長を計算するために使用されます。
  • vocoder (nn.Module、任意、デフォルトはNone) — メルスペクトログラムを音声波形に変換するボコーダーです。Noneの場合、出力はメルスペクトログラムになります。
  • output_cross_attentions (bool、任意、デフォルトは False) — デコーダーのクロスアテンション層のアテンションテンソルを返すかどうかを指定します。
  • return_output_lengths (bool、任意、デフォルトは False) — 具体的なスペクトログラム/波形の長さを返すかどうかを指定します。

戻り値

入力に応じてさまざまな要素を含むtuple(torch.Tensor)

  • が return_output_lengths のとき
    • spectrogram (optional、vocoder が指定されていない場合に返されます) torch.Tensor、shape (output_sequence_length, config.num_mel_bins) — 予測された log-mel スペクトログラム。
    • waveform(optional、vocoderが指定された場合に返されます)torch.Tensor、shape (num_frames,) — 予測された音声波形。
    • cross_attentions (任意、output_cross_attentions が True の場合のみ返されます) torch.Tensor、形状 (config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — デコーダーのクロスアテンション層の出力です。
  • が return_output_lengths True の場合
    • スペクトログラム(任意、vocoderが指定されていない場合に返されます)torch.Tensor、形状 (batch_size, output_sequence_length, config.num_mel_bins) — 最大長にパディングされた予測されたログメルスペクトログラム。
    • spectrogram_lengths (任意、vocoderが指定されていない場合に返されます) list[Int] — 各スペクトログラムの具体的な長さのリストです。
    • 波形(任意、vocoderが指定された場合に返されます)形状(batch_size, num_frames)のtorch.Tensor — 最大長にパディングされた予測された音声波形です。
    • waveform_lengths (optional、vocoderが指定された場合に返されます) list[Int] — 各波形の具体的な長さのリストです。
    • cross_attentions (オプション、output_cross_attentionsがTrueの場合に返されます) torch.Tensor、形状(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — デコーダーのクロスアテンション層の出力。

生の音声波形をメルスペクトログラムのシーケンスに変換し、その後、ボコーダーを使用して音声波形に戻します。

SpeechT5HifiGan

クラス transformers.SpeechT5HifiGan

< >

( config: SpeechT5HifiGanConfig )

パラメータ

  • config (SpeechT5HifiGanConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

HiFi-GANボコーダー。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

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

パラメータ

  • spectrogram (torch.Tensor) — ログ・メルスペクトログラムを含むテンソル。バッチ化された形状 (batch_size, sequence_length, config.model_in_dim) または、バッチ化されていない形状 (sequence_length, config.model_in_dim) を持つことができます。

戻り値

torch.Tensor

音声波形を含むテンソル。入力スペクトログラムがバッチ化されている場合、形状は(batch_size, num_frames,)になります。バッチ化されていない場合、形状は(num_frames,)になります。

log-melスペクトログラムを音声波形に変換します。log-melスペクトログラムのバッチを渡すと、音声波形のバッチが返されます。単一のバッチ化されていないlog-melスペクトログラムを渡すと、単一のバッチ化されていない音声波形が返されます。

Update on GitHub