Transformers documentation

VITS

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

このモデルは2021年6月11日にHF papersで公開され、2023年9月1日にHugging Face Transformersに貢献されました。

VITS

VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) is an end-to-end speech synthesis model, simplifying the traditional two-stage text-to-speech (TTS) systems. It’s unique because it directly synthesizes speech from text using variational inference, adversarial learning, and normalizing flows to produce natural and expressive speech with diverse rhythms and intonations.

すべてのオリジナルのVITSチェックポイントは、AI at Meta組織の下で確認できます。

VITS の適用方法のより多くの例については、右側のサイドバーにある VITS モデルをクリックしてください。

以下の例では、PipelineまたはAutoModelクラスを使用して、画像に基づいてテキストを生成する方法を示しています。

パイプライン
AutoModel
from scipy.io.wavfile import write

from transformers import pipeline, set_seed


set_seed(555)

pipe = pipeline(
    task="text-to-speech",
    model="facebook/mms-tts-eng",
    device=0
)

speech = pipe("Hello, my dog is cute")

# Extract audio data and sampling rate
audio_data = speech["audio"]
sampling_rate = speech["sampling_rate"]

# Save as WAV file
write("hello.wav", sampling_rate, audio_data.squeeze())

注記

  • VITS は非決定論的に音声合成を行うため、再現性を確保するためにシードを設定します。

  • ローマ字以外の文字体系(韓国語、アラビア語など)を使用する言語の場合、テキスト入力をローマ字に前処理するためにuromanパッケージをインストールしてください。以下に示すように、トークナイザーがuromanを必要とするかどうかを確認できます。

    # pip install -U uroman
    from transformers import VitsTokenizer
    
    tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
    print(tokenizer.is_uroman)

    言語がuromanを必要とする場合、トークナイザーはテキスト入力に自動的に適用します。

VitsConfig

クラス transformers.VitsConfig

< >

( 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 = Nonevocab_size: int = 38hidden_size: int = 192num_hidden_layers: int = 6num_attention_heads: int = 2window_size: int = 4use_bias: bool = Trueffn_dim: int = 768layerdrop: float | int = 0.1ffn_kernel_size: int = 3flow_size: int = 192spectrogram_bins: int = 513hidden_act: str = 'relu'hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_stochastic_duration_prediction: bool = Truenum_speakers: int = 1speaker_embedding_size: int = 0upsample_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 = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1depth_separable_channels: int = 2depth_separable_num_layers: int = 3duration_predictor_flow_bins: int = 10duration_predictor_tail_bound: float = 5.0duration_predictor_kernel_size: int = 3duration_predictor_dropout: float | int = 0.5duration_predictor_num_flows: int = 4duration_predictor_filter_channels: int = 256prior_encoder_num_flows: int = 4prior_encoder_num_wavenet_layers: int = 4posterior_encoder_num_wavenet_layers: int = 16wavenet_kernel_size: int = 5wavenet_dilation_rate: int = 1wavenet_dropout: float | int = 0.0speaking_rate: float | int = 1.0noise_scale: float = 0.667noise_scale_duration: float = 0.8sampling_rate: int = 16000pad_token_id: int | None = None )

パラメータ

  • vocab_size (int、任意、デフォルトは 38) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 192) — 隠れ表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 6) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 2) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • window_size (int, 任意、デフォルトは 4) — Transformer エンコーダーの注意層における相対位置埋め込みのウィンドウサイズです。
  • use_bias (bool、任意、デフォルトは True) — Transformer エンコーダーのキー、クエリ、バリューの投影層でバイアスを使用するかどうか。
  • ffn_dim (int、任意、デフォルトは768) — MLP 表現の次元数。
  • layerdrop (Union[float, int]、任意、デフォルトは 0.1) — LayerDrop の確率です。詳細は [LayerDrop の論文](https://huggingface.co/papers/1909.11556 を参照)をご覧ください。
  • ffn_kernel_size (int, 任意、デフォルトは 3) — Transformer エンコーダーのフィードフォワードネットワークで使用される 1 次元畳み込み層のカーネルサイズ。
  • flow_size (int、任意、デフォルト値は 192)— フロー層の次元数です。
  • spectrogram_bins (int, 任意、デフォルトは 513) — ターゲットのスペクトログラムにおける周波数ビンの数。
  • hidden_act (str、任意、デフォルトは relu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • 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 です。
  • use_stochastic_duration_prediction (bool、任意、デフォルトは True) — 確率的な duration prediction モジュールを使用するか、通常の duration predictor を使用するかを指定します。
  • num_speakers (int、任意、デフォルトは 1)— マルチスピーカーモデルの場合のスピーカー数。
  • speaker_embedding_size (int、任意、デフォルト値は 0)— 話者埋め込みで使用されるチャネル数です。単一話者モデルの場合は 0 です。
  • upsample_initial_channel (int、任意、デフォルト値は 512) — HiFi-GAN のアップサンプリングネットワークへの入力チャネル数です。
  • upsample_rates (tuple[int] または list[int]、任意、デフォルトは [8, 8, 2, 2]) — HiFi-GAN のアップサンプリングネットワークにおける各 1 次元畳み込み層のストライドを定義する整数のタプルです。 upsample_rates の長さが畳み込み層の数を定義し、upsample_kernel_sizes の長さと一致する必要があります。
  • upsample_kernel_sizes (tuple[int] または list[int]、省略可能、デフォルトは [16, 16, 4, 4]) — HiFi-GAN のアップサンプリングネットワークにおける各1次元畳み込み層のカーネルサイズを定義する整数のタプルです。upsample_kernel_sizes の長さが畳み込み層の数を定義し、upsample_rates の長さと一致する必要があります。
  • resblock_kernel_sizes (tuple[int] または list[int]、省略可、デフォルトは [3, 7, 11]) — HiFi-GAN の multi-receptive field fusion (MRF) モジュール内の 1 次元畳み込み層のカーネルサイズを定義する整数のタプルです。
  • resblock_dilation_sizes (tuple[tuple[int]] または list[list[int]]、任意、デフォルトは [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — HiFi-GAN のマルチレセプティブフィールドフュージョン(MRF)モジュール内の、拡張 1 次元畳み込み層のディレーション率を定義する整数のネストされたタプルです。
  • leaky_relu_slope (float、任意、デフォルト値は 0.1) — Leaky ReLU 活性化関数で使用する負の傾きの角度です。
  • depth_separable_channels (int, 任意、デフォルトは 2) — 各 depth-separable ブロックで使用するチャネル数。
  • depth_separable_num_layers (int、任意、デフォルト値は 3) — 各 depth-separable ブロックで使用する畳み込み層の数。
  • duration_predictor_flow_bins (int、任意、デフォルト値は 10) — duration predictor モデルにおいて、unconstrained rational spline を用いてマッピングするチャネル数。
  • duration_predictor_tail_bound (float、任意、デフォルト値は 5.0) — duration predictor モデルで、制約なしの有理スプラインを計算する際の、テールビンの境界値。
  • duration_predictor_kernel_size (int, 任意、デフォルト値は 3) — duration predictor モデルで使用される 1 次元畳み込み層のカーネルサイズ。
  • duration_predictor_dropout (float、任意、デフォルトは 0.5) — duration predictor モデルの dropout 率です。
  • duration_predictor_num_flows (int、任意、デフォルト値は 4)— duration predictor モデルで使用される flow ステージの数です。
  • duration_predictor_filter_channels (int、任意、デフォルト値は 256) — duration predictor モデルで使用する畳み込み層のチャネル数です。
  • prior_encoder_num_flows (int、任意、デフォルトは 4) — prior encoder の flow モデルで使用する flow ステージの数。
  • prior_encoder_num_wavenet_layers (int, 任意、デフォルト値は 4) — prior encoder の flow モデルで使用される WaveNet レイヤーの数。
  • posterior_encoder_num_wavenet_layers (int、任意、デフォルト値は 16)— 後方エンコーダモデルで使用される WaveNet レイヤーの数。
  • wavenet_kernel_size (int, 任意、デフォルト値は 5) — WaveNet モデルで使用される 1 次元畳み込み層のカーネルサイズ。
  • wavenet_dilation_rate (int, 任意、デフォルトは 1) — WaveNet モデルで使用される、拡張 1 次元畳み込み層の dilation rate です。
  • wavenet_dropout (float、任意、デフォルト値は 0.0) — WaveNet 層の dropout 率です。
  • speaking_rate (float、任意、デフォルト値は 1.0)— 話速です。値が大きいほど、合成された音声は速くなります。
  • noise_scale (float、任意、デフォルト値は 0.667) — 音声予測のランダム性を示します。値が大きいほど、予測される音声のバリエーションが増えます。
  • noise_scale_duration (float、任意、デフォルト値は 0.8) — 再生時間予測のランダム性を示します。値が大きいほど、予測される再生時間のばらつきが大きくなります。
  • sampling_rate (int、任意、デフォルトは 16000) — オーディオファイルをデジタル化するためのサンプリングレート (Hz)。
  • pad_token_id (int, 任意) — 語彙内でパディングに使用されるトークン ID。

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

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

例:

>>> from transformers import VitsModel, VitsConfig

>>> # Initializing a "facebook/mms-tts-eng" style configuration
>>> configuration = VitsConfig()

>>> # Initializing a model (with random weights) from the "facebook/mms-tts-eng" style configuration
>>> model = VitsModel(configuration)

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

VitsTokenizer

クラス transformers.VitsTokenizer

< >

( vocab_filepad_token = '<pad>'unk_token = '<unk>'language = Noneadd_blank = Truenormalize = Truephonemize = Trueis_uroman = False**kwargs )

パラメータ

  • vocab_file (str) — 語彙ファイルへのパス。
  • language (str, 省略可) — 言語識別子。
  • add_blank (bool、省略可能、デフォルトはTrue) — 他のトークンの間にトークン ID 0 を挿入するかどうか。
  • normalize (bool、任意、デフォルトは True) — 大文字・小文字の区別をなくし、句読点をすべて除去して入力テキストを正規化するかどうかを指定します。
  • phonemize (bool、任意、デフォルトはTrue) — 入力テキストを音素に変換するかどうかを指定します。
  • is_uroman (bool、省略可能、デフォルトは False) — トークン化の前に、入力テキストに uroman ローマ字化を適用する必要があるかどうかを示します。

VITSのトークナイザーを構築します。MMS-TTSにも対応しています。

このトークナイザーは、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 )

VitsModel

クラス transformers.VitsModel

< >

( config: VitsConfig )

パラメータ

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

テキストから音声への合成を行う、完全なVITSモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonespeaker_id: int | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonespeaking_rate: float | None = None**kwargs ) → VitsModelOutput or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。

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

    入力IDとは何ですか?

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

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

  • speaker_id (int, 任意) — 使用するスピーカー埋め込みを指定します。マルチスピーカーモデルでのみ使用されます。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。
  • labels (torch.Tensor、形状 (batch_size, config.spectrogram_bins, sequence_length)、任意) — ターゲットスペクトログラムの浮動小数点値。タイムステップが -100.0 に設定されている場合は、損失の計算において無視(マスク)されます。
  • speaking_rate (float、任意) — 話速。

戻り値

VitsModelOutput または tuple(torch.Tensor)

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

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

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

  • waveform (torch.Tensor、形状 (batch_size, sequence_length)) — モデルが予測した最終的な音声波形。

  • sequence_lengths (torch.Tensor、形状 (batch_size,)) — waveform バッチ内の各要素のサンプル数での長さです。

  • spectrogram (torch.Tensor、形状 (batch_size, sequence_length, num_bins)) — フローモデルの出力で予測されるログメルスペクトログラムです。このスペクトログラムは Hi-Fi GAN デコーダーモデルに渡され、最終的な音声波形が得られます。

  • 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、および任意の初期埋め込み出力。

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

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from transformers import VitsTokenizer, VitsModel, set_seed
>>> import torch

>>> tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
>>> model = VitsModel.from_pretrained("facebook/mms-tts-eng")

>>> inputs = tokenizer(text="Hello - my dog is cute", return_tensors="pt")

>>> set_seed(555)  # make deterministic

>>> with torch.no_grad():
...     outputs = model(inputs["input_ids"])
>>> outputs.waveform.shape
torch.Size([1, 45824])
Update on GitHub