Transformers documentation

FastSpeech2Conformer

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

and get access to the augmented documentation experience

to get started

このモデルは2020年10月26日にHF papersで公開され、2024年1月3日にHugging Face Transformersに貢献されました。

FastSpeech2Conformer

概要

FastSpeech2Conformerモデルは、Pengcheng Guo、Florian Boyer、Xuankai Chang、Tomoki Hayashi、Yosuke Higuchi、Hirofumi Inaguma、Naoyuki Kamo、Chenda Li、Daniel Garcia-Romero、Jiatong Shi、Jing Shi、Shinji Watanabe、Kun Wei、Wangyou Zhang、Yuekai Zhang による論文 Recent Developments On Espnet Toolkit Boosted By Conformer で提案されました。

FastSpeech2の元論文の要旨は以下の通りです。

FastSpeech(Ren et al., 2019)のような非自己回帰型テキスト読み上げ(TTS)モデルは、従来の自己回帰型モデルと同等の品質を保ちながら、はるかに高速に音声合成を行うことができます。FastSpeechモデルの学習には、長さ予測(より多くの情報を入力として提供するため)と知識蒸留(出力のデータ分布を単純化するため)のために自己回帰型教師モデルが用いられますが、これによりTTSにおける1対多のマッピング問題(つまり、同じテキストに対応する複数の音声バリエーション)を緩和できます。しかし、FastSpeechにはいくつかの欠点があります。1)教師-生徒の蒸留パイプラインが複雑で時間がかかること、2)教師モデルから抽出される長さが十分に正確でなく、また教師モデルから蒸留されるターゲットのメルスペクトログラムはデータ単純化による情報損失を被るため、どちらも音声品質を制限することです。本論文では、FastSpeech 2を提案します。FastSpeech 2は、1)教師からの単純化された出力ではなく、正解データ(ground-truth)のターゲットでモデルを直接学習させること、2)音声をより多様にする情報(ピッチ、エネルギー、より正確な長さなど)を条件付き入力として導入することで、FastSpeechの問題に対処し、TTSにおける1対多のマッピング問題をよりよく解決します。具体的には、音声波形から長さ、ピッチ、エネルギーを抽出し、それらを学習時の条件付き入力として直接使用し、推論時には予測値を使用します。さらに、FastSpeech 2sを設計しました。これはテキストから並列に直接音声波形を生成する初の試みであり、完全にエンドツーエンドの推論の利点を享受します。実験結果から、1)FastSpeech 2はFastSpeechに対して3倍の学習速度向上を実現し、FastSpeech 2sはさらに高速な推論速度を享受すること、2)FastSpeech 2および2sは音声品質においてFastSpeechを上回り、FastSpeech 2は自己回帰型モデルすら上回ることが示されました。音声サンプルはhttps://speechresearch.github.io/fastspeech2/で入手できます。

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

🤗 モデルアーキテクチャ

FastSpeech2の一般的な構造とMelスペクトログラムデコーダーを実装し、ESPnetライブラリと同様に、従来のtransformerブロックをconformerブロックに置き換えました。

FastSpeech2 モデルアーキテクチャ

FastSpeech2 Model Architecture

Conformer ブロック

Conformer Blocks

畳み込みモジュール

Convolution Module

🤗 Transformers の使用方法

FastSpeech2Conformer は、🤗 Transformers ライブラリを使用してローカルで実行できます。

  1. まず、🤗 Transformers ライブラリと g2p-en をインストールします:
pip install --upgrade pip
pip install --upgrade transformers g2p-en
  1. モデルとhifiganをそれぞれ個別に使用して、Transformersのモデリングコードで推論を実行します
import soundfile as sf

from transformers import FastSpeech2ConformerHifiGan, FastSpeech2ConformerModel, FastSpeech2ConformerTokenizer


tokenizer = FastSpeech2ConformerTokenizer.from_pretrained("espnet/fastspeech2_conformer")
inputs = tokenizer("Hello, my dog is cute.", return_tensors="pt").to(model.device)
input_ids = inputs["input_ids"]

model = FastSpeech2ConformerModel.from_pretrained("espnet/fastspeech2_conformer", device_map="auto")
output_dict = model(input_ids, return_dict=True)
spectrogram = output_dict["spectrogram"]

hifigan = FastSpeech2ConformerHifiGan.from_pretrained("espnet/fastspeech2_conformer_hifigan")
waveform = hifigan(spectrogram)

sf.write("speech.wav", waveform.squeeze().detach().numpy(), samplerate=22050)
  1. Transformers のモデリングコードで推論を実行し、モデルと hifigan を組み合わせて使用します
import soundfile as sf

from transformers import FastSpeech2ConformerTokenizer, FastSpeech2ConformerWithHifiGan


tokenizer = FastSpeech2ConformerTokenizer.from_pretrained("espnet/fastspeech2_conformer")
inputs = tokenizer("Hello, my dog is cute.", return_tensors="pt").to(model.device)
input_ids = inputs["input_ids"]

model = FastSpeech2ConformerWithHifiGan.from_pretrained("espnet/fastspeech2_conformer_with_hifigan")
output_dict = model(input_ids, return_dict=True)
waveform = output_dict["waveform"]

sf.write("speech.wav", waveform.squeeze().detach().numpy(), samplerate=22050)
  1. パイプラインで推論を実行し、使用するボコーダーを指定します
import soundfile as sf

from transformers import FastSpeech2ConformerHifiGan, pipeline


vocoder = FastSpeech2ConformerHifiGan.from_pretrained("espnet/fastspeech2_conformer_hifigan")
synthesiser = pipeline(model="espnet/fastspeech2_conformer", vocoder=vocoder)

speech = synthesiser("Hello, my dog is cooler than you!")

sf.write("speech.wav", speech["audio"].squeeze(), samplerate=speech["sampling_rate"])

FastSpeech2ConformerConfig

クラス transformers.FastSpeech2ConformerConfig

< >

( 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 = Truehidden_size: int = 384vocab_size: int = 78num_mel_bins: int = 80encoder_num_attention_heads: int = 2encoder_layers: int = 4encoder_linear_units: int = 1536decoder_layers: int = 4decoder_num_attention_heads: int = 2decoder_linear_units: int = 1536speech_decoder_postnet_layers: int = 5speech_decoder_postnet_units: int = 256speech_decoder_postnet_kernel: int = 5positionwise_conv_kernel_size: int = 3encoder_normalize_before: bool = Falsedecoder_normalize_before: bool = Falseencoder_concat_after: bool = Falsedecoder_concat_after: bool = Falsereduction_factor: int = 1speaking_speed: float = 1.0use_macaron_style_in_conformer: bool = Trueuse_cnn_in_conformer: bool = Trueencoder_kernel_size: int = 7decoder_kernel_size: int = 31duration_predictor_layers: int = 2duration_predictor_channels: int = 256duration_predictor_kernel_size: int = 3energy_predictor_layers: int = 2energy_predictor_channels: int = 256energy_predictor_kernel_size: int = 3energy_predictor_dropout: float | int = 0.5energy_embed_kernel_size: int = 1energy_embed_dropout: float | int = 0.0stop_gradient_from_energy_predictor: bool = Falsepitch_predictor_layers: int = 5pitch_predictor_channels: int = 256pitch_predictor_kernel_size: int = 5pitch_predictor_dropout: float | int = 0.5pitch_embed_kernel_size: int = 1pitch_embed_dropout: float | int = 0.0stop_gradient_from_pitch_predictor: bool = Trueencoder_dropout_rate: float | int = 0.2encoder_positional_dropout_rate: float | int = 0.2encoder_attention_dropout_rate: float | int = 0.2decoder_dropout_rate: float | int = 0.2decoder_positional_dropout_rate: float | int = 0.2decoder_attention_dropout_rate: float | int = 0.2duration_predictor_dropout_rate: float | int = 0.2speech_decoder_postnet_dropout: float | int = 0.5max_source_positions: int = 5000use_masking: bool = Trueuse_weighted_masking: bool = Falsenum_speakers: int | None = Nonenum_languages: int | None = Nonespeaker_embed_dim: int | None = Noneconvolution_bias: bool = True )

パラメータ

  • is_encoder_decoder (bool、任意、デフォルトはTrue) — モデルがエンコーダー/デコーダーとして使用されるかどうかを示します。
  • hidden_size (int、任意、デフォルトは384) — 隠れ表現の次元数。
  • vocab_size (int、任意、デフォルトは 78) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • num_mel_bins (int, 任意、デフォルトは 80) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractor クラスで使用された値と一致させる必要があります。
  • encoder_num_attention_heads (int、任意、デフォルトは 2) — エンコーダーの注意ヘッド数です。
  • encoder_layers (int、任意、デフォルトは 4) — Transformer エンコーダーの隠れ層の数です。設定されていない場合、num_layers と同じ値が使用されます。
  • encoder_linear_units (int、任意、デフォルトは 1536) — エンコーダーの線形層のユニット数です。
  • decoder_layers (int、任意、デフォルトは 4) — Transformer デコーダーの隠れ層の数です。設定されていない場合、num_layers と同じ値が使用されます。
  • decoder_num_attention_heads (int、任意、デフォルトは 2) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • decoder_linear_units (int、任意、デフォルトは 1536) — デコーダーの線形層のユニット数です。
  • speech_decoder_postnet_layers (int、任意、デフォルトは 5) — 音声デコーダーのポストネットの層数です。
  • speech_decoder_postnet_units (int、任意、デフォルト値は 256) — 音声デコーダーのポストネット層のユニット数です。
  • speech_decoder_postnet_kernel (int、任意、デフォルト値は 5) — 音声デコーダーの post-net におけるカーネルサイズです。
  • positionwise_conv_kernel_size (int, 任意、デフォルトは 3) — ポジションワイズ層で使用する畳み込みカーネルのサイズです。
  • encoder_normalize_before (bool、任意、デフォルトは False) — エンコーダー層の前に正規化を行うかどうかを指定します。
  • decoder_normalize_before (bool、省略可、デフォルトはFalse) — デコーダー層の前に正規化を行うかどうかを指定します。
  • encoder_concat_after (bool、省略可、デフォルトはFalse) — エンコーダ層の後に連結を行うかどうかを指定します。
  • decoder_concat_after (bool、省略可、デフォルトは False) — デコーダー層の後に連結を行うかどうかを指定します。
  • reduction_factor (int、任意、デフォルトは 1) — 音声フレームレートを削減する倍率です。
  • speaking_speed (float、任意、デフォルト値は 1.0)— 生成される音声の速度です。
  • use_macaron_style_in_conformer (bool、省略可能、デフォルトはTrue) — conformer で macaron style を使用するかどうかを指定します。
  • use_cnn_in_conformer (bool、任意、デフォルトはTrue) — conformer で畳み込みニューラルネットワークを使用するかどうかを指定します。
  • encoder_kernel_size (int、任意、デフォルトは 7) — エンコーダーで使用するカーネルサイズ。
  • decoder_kernel_size (int、任意、デフォルトは 31) — デコーダーで使用するカーネルサイズです。
  • duration_predictor_layers (int、任意、デフォルト値は 2)— duration predictor の層数です。
  • duration_predictor_channels (int、任意、デフォルトは 256) — duration predictor のチャネル数です。
  • duration_predictor_kernel_size (int, 任意、デフォルトは 3) — duration predictor で使用されるカーネルサイズです。
  • energy_predictor_layers (int、任意、デフォルトは 2) — エネルギー予測器の層数です。
  • energy_predictor_channels (int、任意、デフォルトは 256) — エネルギー予測器のチャネル数です。
  • energy_predictor_kernel_size (int、省略可、デフォルトは 3) — エネルギー予測器で使用するカーネルサイズ。
  • energy_predictor_dropout (float、任意、デフォルト値は 0.5) — エネルギー予測器における dropout レートです。
  • energy_embed_kernel_size (int、任意、デフォルトは 1) — energy embed レイヤーで使用するカーネルサイズです。
  • energy_embed_dropout (float、省略可、デフォルト値は 0.0) — energy embed レイヤーにおける dropout レートです。
  • stop_gradient_from_energy_predictor (bool、任意、デフォルトはFalse) — エネルギー予測器からの勾配を停止するかどうかを指定します。
  • pitch_predictor_layers (int、任意、デフォルト値は 5)— ピッチ予測器の層数です。
  • pitch_predictor_channels (int、任意、デフォルトは 256) — ピッチ予測器のチャネル数です。
  • pitch_predictor_kernel_size (int、任意、デフォルト値は 5)— ピッチ予測器で使用するカーネルサイズです。
  • pitch_predictor_dropout (float、任意、デフォルト値は 0.5)— ピッチ予測器における dropout レートです。
  • pitch_embed_kernel_size (int、任意、デフォルトは 1) — ピッチ埋め込み層で使用するカーネルサイズ。
  • pitch_embed_dropout (float、任意、デフォルト値は 0.0) — ピッチ埋め込み層における dropout 率です。
  • stop_gradient_from_pitch_predictor (bool、任意、デフォルトは True) — ピッチ予測器からの勾配を停止するかどうかを指定します。
  • encoder_dropout_rate (float、任意、デフォルト値は 0.2) — エンコーダーにおける dropout レートです。
  • encoder_positional_dropout_rate (float、任意、デフォルト値は 0.2) — エンコーダーにおける位置ドロップアウト率です。
  • encoder_attention_dropout_rate (float、任意、デフォルト値は 0.2) — エンコーダーにおけるアテンションのドロップアウト率です。
  • decoder_dropout_rate (float、任意、デフォルト値は 0.2) — デコーダーにおける dropout 率です。
  • decoder_positional_dropout_rate (float、任意、デフォルト値は 0.2) — デコーダーにおける位置ドロップアウト率です。
  • decoder_attention_dropout_rate (float、任意、デフォルト値は 0.2) — デコーダーにおけるアテンションのドロップアウト率です。
  • duration_predictor_dropout_rate (float、任意、デフォルト値は 0.2) — duration predictor における dropout rate です。
  • speech_decoder_postnet_dropout (float、任意、デフォルト値は 0.5) — 音声デコーダーのポストネットにおけるドロップアウト率です。
  • max_source_positions (int、任意、デフォルト値は 5000)— "relative" の位置埋め込みを使用する場合、ソース入力の最大位置を定義します。
  • use_masking (bool、任意、デフォルトは True) — モデルでマスキングを使用するかどうかを指定します。
  • use_weighted_masking (bool、任意、デフォルトはFalse) — モデルで重み付きマスキングを使用するかどうかを指定します。
  • num_speakers (int, 任意) — 話者の数です。1 より大きい値に設定した場合、話者 ID が入力として提供されると仮定し、話者 ID 埋め込み層を使用します。
  • num_languages (int, 任意) — 言語の数。1 より大きい値に設定した場合、言語 ID が入力として提供されると仮定し、言語 ID 埋め込み層を使用します。
  • speaker_embed_dim (int, 任意) — スピーカー埋め込みの次元数。0 より大きい値に設定した場合、speaker_embedding が入力として提供されるものと仮定します。
  • convolution_bias (bool、任意、デフォルトは True) — Conformer の convolution モジュールでバイアスを使用するかどうかを指定します。

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

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

例:

>>> from transformers import FastSpeech2ConformerModel, FastSpeech2ConformerConfig

>>> # Initializing a FastSpeech2Conformer style configuration
>>> configuration = FastSpeech2ConformerConfig()

>>> # Initializing a model from the FastSpeech2Conformer style configuration
>>> model = FastSpeech2ConformerModel(configuration)

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

FastSpeech2ConformerHifiGanConfig

クラス transformers.FastSpeech2ConformerHifiGanConfig

< >

( 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 = 80upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (8, 8, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (16, 16, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple | None = Noneinitializer_range: float = 0.01leaky_relu_slope: float = 0.1normalize_before: bool = True )

パラメータ

  • model_in_dim (int、任意、デフォルト値は 80) — 入力ログメルスペクトログラムの周波数ビンの数です。
  • upsample_initial_channel (int、任意、デフォルトは 512) — アップサンプリングネットワークへの入力チャネル数です。
  • upsample_rates (tuple[int] または list[int]、省略可能、デフォルトは [8, 8, 2, 2]) — アップサンプリングネットワーク内の各1次元畳み込み層のストライドを定義する整数のタプルです。upsample_rates の長さが畳み込み層の数を定義し、upsample_kernel_sizes の長さと一致する必要があります。
  • upsample_kernel_sizes (tuple[int] または list[int]、省略可能、デフォルトは [16, 16, 4, 4]) — アップサンプリングネットワーク内の各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) — ボコーダーの学習済み平均と分散を用いて、ボコーディング前にスペクトログラムを正規化するか否かを指定します。

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

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

例:

>>> from transformers import FastSpeech2ConformerHifiGan, FastSpeech2ConformerHifiGanConfig

>>> # Initializing a FastSpeech2ConformerHifiGan configuration
>>> configuration = FastSpeech2ConformerHifiGanConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = FastSpeech2ConformerHifiGan(configuration)

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

FastSpeech2ConformerWithHifiGanConfig

クラス transformers.FastSpeech2ConformerWithHifiGanConfig

< >

( 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_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )

パラメータ

  • model_config (FastSpeech2ConformerConfig | dict、任意) — テキスト読み上げモデルの設定。
  • vocoder_config (FastSpeech2ConformerHiFiGanConfig | dict、任意) — ボコーダーモデルの設定です。

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

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

例:

>>> from transformers import (
...     FastSpeech2ConformerConfig,
...     FastSpeech2ConformerHifiGanConfig,
...     FastSpeech2ConformerWithHifiGanConfig,
...     FastSpeech2ConformerWithHifiGan,
... )

>>> # Initializing FastSpeech2ConformerWithHifiGan sub-modules configurations.
>>> model_config = FastSpeech2ConformerConfig()
>>> vocoder_config = FastSpeech2ConformerHifiGanConfig()

>>> # Initializing a FastSpeech2ConformerWithHifiGan module style configuration
>>> configuration = FastSpeech2ConformerWithHifiGanConfig(model_config.to_dict(), vocoder_config.to_dict())

>>> # Initializing a model (with random weights)
>>> model = FastSpeech2ConformerWithHifiGan(configuration)

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

FastSpeech2ConformerTokenizer

クラス transformers.FastSpeech2ConformerTokenizer

< >

( vocab_filebos_token = '<sos/eos>'eos_token = '<sos/eos>'pad_token = '<blank>'unk_token = '<unk>'should_strip_spaces = False**kwargs )

パラメータ

  • vocab_file (str) — 語彙ファイルへのパス。
  • bos_token (str、任意、デフォルトは "<sos/eos>") — シーケンスの開始トークンです。FastSpeech2 では、eos_token と同じです。
  • eos_token (str、任意、デフォルトは "<sos/eos>") — シーケンスの終了トークンです。FastSpeech2 では、bos_token と同じです。
  • pad_token (str、任意、デフォルトは "<blank>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。
  • unk_token (str、任意、デフォルトは "<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。
  • should_strip_spaces (bool、省略可、デフォルトは False) — トークンのリストからスペースを除去するかどうかを指定します。

FastSpeech2Conformerのトークナイザーを構築します。

__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) — 語彙を保存するディレクトリ。

戻り値

Tuple(str)

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

語彙ファイルと特殊トークンファイルを実行ディレクトリに保存します。

decode

< >

( token_ids**kwargs )

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を直接使用できます。

FastSpeech2ConformerModel

クラス transformers.FastSpeech2ConformerModel

< >

( config: FastSpeech2ConformerConfig )

パラメータ

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

FastSpeech2Conformer モデル。

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

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

forward

< >

( input_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonespectrogram_labels: typing.Optional[torch.FloatTensor] = Noneduration_labels: typing.Optional[torch.LongTensor] = Nonepitch_labels: typing.Optional[torch.FloatTensor] = Noneenergy_labels: typing.Optional[torch.FloatTensor] = Nonespeaker_ids: typing.Optional[torch.LongTensor] = Nonelang_ids: typing.Optional[torch.LongTensor] = Nonespeaker_embedding: typing.Optional[torch.FloatTensor] = Nonereturn_dict: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = None**kwargs ) → FastSpeech2ConformerModelOutput or tuple(torch.FloatTensor)

パラメータ

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

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

  • spectrogram_labels (torch.FloatTensor、shape (batch_size, max_spectrogram_length, num_mel_bins)、任意、デフォルトは None) — パディング済みのターゲット特徴のバッチ。
  • duration_labels (torch.LongTensor、shape (batch_size, sequence_length + 1)、任意、デフォルトは None) — パディング済みの duration のバッチ。
  • pitch_labels (torch.FloatTensor、shape (batch_size, sequence_length + 1, 1)、任意、デフォルトは None) — パディング済みのトークン平均ピッチのバッチ。
  • energy_labels (torch.FloatTensor、shape (batch_size, sequence_length + 1, 1)、任意、デフォルトは None) — パディング済みのトークン平均エネルギーのバッチ。
  • speaker_ids (torch.LongTensor、shape (batch_size, 1)、任意、デフォルトは None) — モデルが音声出力の特徴を条件付けするために使用する話者 ID。
  • lang_ids (torch.LongTensor、shape (batch_size, 1)、任意、デフォルトは None) — モデルによって音声出力の特徴を条件付けするために使用される言語 ID。
  • speaker_embedding (torch.FloatTensor、shape (batch_size, embedding_dim)、任意、デフォルトは None) — 音声の特徴に対する条件付けシグナルを含む埋め込み。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。

戻り値

FastSpeech2ConformerModelOutput または tuple(torch.FloatTensor)

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

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

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

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

  • spectrogram (torch.FloatTensor、shape (batch_size, sequence_length, num_bins)、optional) — 予測されたスペクトログラム。

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

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

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

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

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

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

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

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

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

  • duration_outputs(torch.LongTensor、shape (batch_size, max_text_length + 1)、optional)— duration predictor の出力。

  • pitch_outputs (torch.FloatTensor、shape (batch_size, max_text_length + 1, 1)、optional) — ピッチ予測器の出力。

  • energy_outputs(torch.FloatTensor、形状 (batch_size, max_text_length + 1, 1)、任意)— エネルギー予測器の出力。

例:

>>> from transformers import (
...     FastSpeech2ConformerTokenizer,
...     FastSpeech2ConformerModel,
...     FastSpeech2ConformerHifiGan,
... )

>>> tokenizer = FastSpeech2ConformerTokenizer.from_pretrained("espnet/fastspeech2_conformer")
>>> inputs = tokenizer("some text to convert to speech", return_tensors="pt")
>>> input_ids = inputs["input_ids"]

>>> model = FastSpeech2ConformerModel.from_pretrained("espnet/fastspeech2_conformer")
>>> output_dict = model(input_ids, return_dict=True)
>>> spectrogram = output_dict["spectrogram"]

>>> vocoder = FastSpeech2ConformerHifiGan.from_pretrained("espnet/fastspeech2_conformer_hifigan")
>>> waveform = vocoder(spectrogram)
>>> print(waveform.shape)
torch.Size([1, 49664])

FastSpeech2ConformerHifiGan

クラス transformers.FastSpeech2ConformerHifiGan

< >

( config: FastSpeech2ConformerHifiGanConfig )

パラメータ

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

HiFi-GANボコーダー。

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

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

forward

< >

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

パラメータ

  • spectrogram (torch.FloatTensor) — log-mel スペクトログラムを含むテンソル。バッチ化された形状 (batch_size, sequence_length, config.model_in_dim)、またはバッチ化されていない形状 (sequence_length, config.model_in_dim) をとります。

戻り値

torch.FloatTensor

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

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

FastSpeech2ConformerWithHifiGan

クラス transformers.FastSpeech2ConformerWithHifiGan

< >

( config: FastSpeech2ConformerWithHifiGanConfig )

パラメータ

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

FastSpeech2ConformerHifiGan vocoderヘッドを備えたFastSpeech2ConformerModelは、テキストから音声(波形)への変換を実行します。

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

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

forward

< >

( input_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonespectrogram_labels: typing.Optional[torch.FloatTensor] = Noneduration_labels: typing.Optional[torch.LongTensor] = Nonepitch_labels: typing.Optional[torch.FloatTensor] = Noneenergy_labels: typing.Optional[torch.FloatTensor] = Nonespeaker_ids: typing.Optional[torch.LongTensor] = Nonelang_ids: typing.Optional[torch.LongTensor] = Nonespeaker_embedding: typing.Optional[torch.FloatTensor] = Nonereturn_dict: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = None**kwargs ) → FastSpeech2ConformerModelOutput or tuple(torch.FloatTensor)

パラメータ

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

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

  • spectrogram_labels (torch.FloatTensor、shape (batch_size, max_spectrogram_length, num_mel_bins)、任意、デフォルトは None) — パディング済みのターゲット特徴のバッチ。
  • duration_labels (torch.LongTensor、shape (batch_size, sequence_length + 1)、任意、デフォルトは None) — パディング済みの duration のバッチ。
  • pitch_labels (torch.FloatTensor、shape (batch_size, sequence_length + 1, 1)、任意、デフォルトは None) — パディング済みのトークン平均ピッチのバッチ。
  • energy_labels (torch.FloatTensor、shape (batch_size, sequence_length + 1, 1)、任意、デフォルトは None) — パディング済みのトークン平均エネルギーのバッチ。
  • speaker_ids (torch.LongTensor、shape (batch_size, 1)、任意、デフォルトは None) — モデルが音声出力の特徴を条件付けするために使用する話者 ID。
  • lang_ids (torch.LongTensor、shape (batch_size, 1)、任意、デフォルトは None) — モデルによって音声出力の特徴を条件付けするために使用される言語 ID。
  • speaker_embedding (torch.FloatTensor、shape (batch_size, embedding_dim)、任意、デフォルトは None) — 音声の特徴に対する条件付けシグナルを含む埋め込み。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。

戻り値

FastSpeech2ConformerModelOutput または tuple(torch.FloatTensor)

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

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

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

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

  • spectrogram (torch.FloatTensor、shape (batch_size, sequence_length, num_bins)、optional) — 予測されたスペクトログラム。

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

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

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

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

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

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

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

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

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

  • duration_outputs(torch.LongTensor、shape (batch_size, max_text_length + 1)、optional)— duration predictor の出力。

  • pitch_outputs (torch.FloatTensor、shape (batch_size, max_text_length + 1, 1)、optional) — ピッチ予測器の出力。

  • energy_outputs(torch.FloatTensor、形状 (batch_size, max_text_length + 1, 1)、任意)— エネルギー予測器の出力。

例:

>>> from transformers import (
...     FastSpeech2ConformerTokenizer,
...     FastSpeech2ConformerWithHifiGan,
... )

>>> tokenizer = FastSpeech2ConformerTokenizer.from_pretrained("espnet/fastspeech2_conformer")
>>> inputs = tokenizer("some text to convert to speech", return_tensors="pt")
>>> input_ids = inputs["input_ids"]

>>> model = FastSpeech2ConformerWithHifiGan.from_pretrained("espnet/fastspeech2_conformer_with_hifigan")
>>> output_dict = model(input_ids, return_dict=True)
>>> waveform = output_dict["waveform"]
>>> print(waveform.shape)
torch.Size([1, 49664])
Update on GitHub