Transformers documentation

Nemotron 3.5 Transcribe

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

このモデルは2026年10月28日にHugging Face Transformersに貢献されました。

Nemotron 3.5 Transcribe

FlashAttention SDPA

概要

Nemotron 3.5 Transcribe は、多言語文字起こし、話者属性付き文字起こし、音声翻訳、および音声質問応答のための音声言語モデルです。音声認識エンコーダーと Nemotron 3 Diarization モデルは同じスペクトログラムを読み取り、それらの出力は Nemotron-H 言語モデルに射影されます。エンコーダー出力上の単語タイムスタンプヘッドにより、単語レベルの時刻が出力されます。

使用方法

文字起こし

from transformers import AutoModelForMultimodalLM, AutoProcessor


model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

inputs = processor.apply_transcription_request(samples + "en-Alice_woman.wav").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(processor.decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=True))

バッチ転写

from transformers import AutoModelForMultimodalLM, AutoProcessor


model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

audio = [samples + "en-Alice_woman.wav", samples + "diarization_example.mp3"]
speaker_attributed_prompt = (
    "Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
    "numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)
prompt = [None, speaker_attributed_prompt]

inputs = processor.apply_transcription_request(audio, prompt=prompt).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
texts = processor.decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=False)
print([text.replace(processor.tokenizer.pad_token, "") for text in texts])

話者別文字起こし

from transformers import AutoModelForMultimodalLM, AutoProcessor


model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

prompt = (
    "Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
    "numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": prompt},
            {"type": "audio", "path": samples + "diarization_example.mp3"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    enable_thinking=False,
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
text = processor.decode(outputs[0, inputs.input_ids.shape[1] :], skip_special_tokens=False)
print(text)

extract_speaker_dict() は、出力を話者ごとのターンごとに1つの辞書に分割します。

for turn in processor.extract_speaker_dict(text):
    print(turn)
{'Speaker': 0, 'Content': "To celebrate the release of Nematron three Dierization, we invited ... from NVIDIA."}
{'Speaker': 1, 'Content': "Hi everybody, thanks for having me. I'm Jane, a pocket voice from QTie."}
{'Speaker': 2, 'Content': "Nice to meet you Chris and Jane. I'm Serena, the Queen three Voice."}
...

単語タイムスタンプ

torchaudioとscipyが必要です。

from transformers import AutoModelForMultimodalLM, AutoProcessor


model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

prompt = (
    "Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
    "numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)

inputs = processor.apply_transcription_request(samples + "diarization_example.mp3", prompt=prompt).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024, return_word_timestamp_logits=True)
texts = processor.decode(outputs.sequences[:, inputs.input_ids.shape[1] :], skip_special_tokens=False)
timestamps = processor.align_word_timestamps(
    texts,
    outputs.word_timestamp_logits,
    inputs.input_features_mask,
    outputs.speaker_logits,
)
print(timestamps[0]["chunks"][:3])

生成されていないトランスクリプトをアラインするには:

input_features_mask = inputs.input_features_mask
audio_outputs = model.get_audio_features(inputs.input_features, input_features_mask)
word_timestamp_logits = model.get_word_timestamp_logits(audio_outputs.asr_last_hidden_state, input_features_mask)
timestamps = processor.align_word_timestamps(
    ["<spk:0> To celebrate the ..."],
    word_timestamp_logits,
    input_features_mask,
    audio_outputs.speaker_logits,
)

Nemotron3_5TranscribeConfig

class transformers.Nemotron3_5TranscribeConfig

< >

( 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 131072word_timestamp_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )

パラメータ

  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — オーディオバックボーンの config オブジェクトまたは辞書。
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。
  • audio_token_id (int, 任意、デフォルト値は 131072) — 音声埋め込みのプレースホルダーとして使用される音声トークンのインデックスです。元のチェックポイントでは、言語モデルの語彙の後に追加されており、埋め込み行はありません。トークン 0 として埋め込み処理が行われた後、音声に置き換えられます。
  • word_timestamp_config (Union[dict, Nemotron3_5TranscribeWordTimestampConfig]、省略可) — 音声認識エンコーダーの状態からアライメントトークナイザのピースを予測する、ワードタイムスタンプエンコーダーおよびヘッドの設定です。

これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。

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

例:

>>> from transformers import Nemotron3_5TranscribeForConditionalGeneration, Nemotron3_5TranscribeConfig

>>> # Initializing a Nemotron3_5Transcribe configuration
>>> configuration = Nemotron3_5TranscribeConfig()

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

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

Nemotron3_5TranscribeAsrAudioConfig

class transformers.Nemotron3_5TranscribeAsrAudioConfig

< >

( 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 = Nonehidden_size: int = 1280intermediate_size: int = 5120num_hidden_layers: int = 32num_attention_heads: int = 10num_key_value_heads: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 5000initializer_range: float = 0.02rope_parameters: dict | None = Noneattention_dropout: float | int = 0.0num_mel_bins: int = 128subsampling_factor: int = 8 )

パラメータ

  • hidden_size (int、任意、デフォルトは 1280) — 隠れ表現の次元数です。
  • intermediate_size (int、任意、デフォルトは 5120) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 32) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは10) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_key_value_heads (int, 任意) — Grouped Query Attention を実装するために使用する key_value ヘッドの数です。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定されない場合、デフォルトで num_attention_heads が使用されます。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • max_position_embeddings (int、任意、デフォルトは 5000) — このモデルが使用される可能性のある最大シーケンス長です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rope_parameters (dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • num_mel_bins (int, 任意、デフォルトは 128) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractor クラスで使用された値と一致させる必要があります。
  • subsampling_factor (int、省略可、デフォルトは 8) — 1 つのエンコーダーフレームにスタックされる連続スペクトログラムフレームの数です。

これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。

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

例:

>>> from transformers import Nemotron3_5TranscribeAsrAudioModel, Nemotron3_5TranscribeAsrAudioConfig

>>> # Initializing a Nemotron3_5TranscribeAsrAudioModel configuration
>>> configuration = Nemotron3_5TranscribeAsrAudioConfig()

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

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

Nemotron3_5TranscribeAudioConfig

class transformers.Nemotron3_5TranscribeAudioConfig

< >

( 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 = Noneasr_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonediarization_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonespeaker_activity_threshold: float = 0.5 )

パラメータ

  • asr_config (Union[dict, Nemotron3_5TranscribeAsrAudioConfig]、任意) — 音声認識エンコーダーの設定。
  • diarization_config (Union[dict, Nemotron3DiarizationConfig], 任意) — 話者分離モデルの設定です。話者分離モデルの発話活動が、音声認識エンコーダーの出力に追加されます。
  • speaker_activity_threshold (float、任意、デフォルト値は 0.5) — エンコーダーフレームにおいて、話者の確率がこの閾値を超えている場合、その話者はアクティブとみなされます。

これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。

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

例:

>>> from transformers import Nemotron3_5TranscribeAudioModel, Nemotron3_5TranscribeAudioConfig

>>> # Initializing a Nemotron3_5TranscribeAudioModel configuration
>>> configuration = Nemotron3_5TranscribeAudioConfig()

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

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

Nemotron3_5TranscribeWordTimestampConfig

class transformers.Nemotron3_5TranscribeWordTimestampConfig

< >

( 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 = Nonehidden_size: int = 1280intermediate_size: int = 640num_hidden_layers: int = 2num_attention_heads: int = 16num_key_value_heads: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 5000initializer_range: float = 0.02rope_parameters: dict | None = Noneattention_dropout: float | int = 0.0vocab_size: int = 23863blank_token_id: int = 23862residual_scale: float = 0.1upsampling_factor: int = 2 )

パラメータ

  • hidden_size (int、任意、デフォルトは 1280) — 隠れ表現の次元数です。
  • intermediate_size (int、任意、デフォルトは 640) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは2) — Transformerデコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_key_value_heads (int, 任意) — Grouped Query Attention を実装するために使用する key_value ヘッドの数です。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定されない場合、デフォルトで num_attention_heads が使用されます。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • max_position_embeddings (int、任意、デフォルトは 5000) — このモデルが使用される可能性のある最大シーケンス長です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rope_parameters (dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • vocab_size (int、任意、デフォルトは 23863) — ワードタイムスタンプヘッドのクラス数です。アライメントトークナイザのピース数に、空白(blank)を 1 つ加えた値です。
  • blank_token_id (int、任意、デフォルト値は 23862)— アライメントトークナイザーの各ピースに続く空白クラスのインデックスです。
  • residual_scale (float、任意、デフォルト値は 0.1) — 分類器の前に音声認識エンコーダーの状態に追加される Transformer 出力のスケール。
  • upsampling_factor (int、任意、デフォルトは 2) — Transformer の前に適用される転置畳み込みによって生成される、エンコーダフレームあたりのヘッドフレーム数です。2 を指定すると、80 ms のエンコーダフレームから 40 ms のフレームが得られます。

これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。

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

例:

>>> from transformers import Nemotron3_5TranscribeConfig, Nemotron3_5TranscribeWordTimestampConfig

>>> # Initializing a Nemotron3_5TranscribeWordTimestamp configuration
>>> configuration = Nemotron3_5TranscribeWordTimestampConfig()

>>> # Using it as the word timestamp head of the model
>>> model_configuration = Nemotron3_5TranscribeConfig(word_timestamp_config=configuration)

Nemotron3_5TranscribeProcessor

クラス transformers.Nemotron3_5TranscribeProcessor

< >

( feature_extractortokenizeralignment_tokenizerchat_template = Noneaudio_token = '<|audio|>'default_transcription_prompt = 'Audio transcription. Language: as spoken. Wording: verbatim, including fillers and repetitions. Formatting: punctuation and capitalization. Output: transcript only.'subsampling_factor = 8 )

パラメータ

  • feature_extractor (feature_extractor_class) — フィーチャーエクストラクターは必須の入力です。
  • tokenizer (tokenizer_class) — トークナイザーは必須の入力です。
  • alignment_tokenizer (PreTrainedTokenizerFast) — ワードタイムスタンプヘッドの語彙: 23,862 個の SentencePiece BPE 部品。ヘッドのクラス 23,862 は CTC の空白です。align_word_timestamps()でのみ使用され、alignment_tokenizer/ サブフォルダーに保存されます。テキストの元の SentencePiece ID を再現するには、テキストの先頭にスペースを付加します。タグで始まるテキストも含みます: alignment_tokenizer.encode(" " + text, add_special_tokens=False)。
  • chat_template (str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。
  • audio_token (str、任意、デフォルトは "<|audio|>") — チャットテンプレート内で音声入力を表すために使用される特別なトークンです。
  • default_transcription_prompt (str、省略可) — apply_transcription_request()で使用されるデフォルトのプロンプト。
  • subsampling_factor (int、任意、デフォルトは 8) — Nemotron3_5TranscribeAsrAudioConfig.subsampling_factor に倣い、1 つのオーディオトークンあたりのスペクトログラムフレーム数を指定します。スペクトログラムは、この値の倍数になるようパディングされます。

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

Nemotron3_5TranscribeProcessor は、feature_extractor_class、tokenizer_class、および {alignment_tokenizer_class} のすべての機能を提供します。詳細については、~feature_extractor_class、~tokenizer_class、および ~{alignment_tokenizer_class} を参照してください。

__call__

< >

( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.nemotron3_5_transcribe.processing_nemotron3_5_transcribe.Nemotron3_5TranscribeProcessorKwargs'> ) → BatchFeature

パラメータ

  • text (Union[str, list[str]]) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済み入力を渡す場合は、バッチ入力との曖昧さを避けるためにis_split_into_words=Trueを設定してください。
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 任意) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルであることができます。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。
  • output_labels (bool、省略可、デフォルト: False) — 学習用のラベルを返すかどうか。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

戻り値

BatchFeature

トークン化されたテキスト(input_ids、attention_mask)と音声特徴(input_features、input_features_mask)を含む辞書。

apply_transcription_request

< >

( audio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]prompt: str | list[str] | None = None**kwargs: *<class 'transformers.models.nemotron3_5_transcribe.processing_nemotron3_5_transcribe.Nemotron3_5TranscribeProcessorKwargs'> ) → BatchFeature

パラメータ

  • audio (str、list[str]、np.ndarray、torch.Tensor、list[np.ndarray]、list[torch.Tensor]) — 文字起こしを行う音声です。文字列はローカルパスまたは URL として解釈され、チャットテンプレートローダーによって自動的に読み込まれます。NumPy 配列と PyTorch テンソルはそのまま転送されます。
  • prompt (str または list[str]、省略可) — ユーザーターンに含めるカスタムプロンプトです。リストの場合、バッチの長さと一致する必要があります。None の場合、各サンプルは default_transcription_prompt を使用します。
  • **kwargs — apply_chat_template() に転送される追加のキーワード引数(例: text_kwargs、audio_kwargs など)。 enable_thinking=True が渡されない限り、Thinking は無効になります(チャットテンプレートではデフォルトで有効になっています)。

戻り値

BatchFeature

Nemotron3_5TranscribeForConditionalGeneration.generate() に渡す準備が整った Processor の出力。

デフォルトの文字起こしプロンプトを手動で記述せずに、自動音声認識の入力を準備します。

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]chat_template: str | None = Nonetools: list[dict] | None = Nonedocuments: list[dict[str, str]] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsereturn_assistant_tokens_mask: bool = Falsetokenize: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = 'auto'return_dict: bool = Falseload_audio_from_video: bool = Falseprocessor_kwargs: dict | None = None**kwargs )

パラメータ

  • conversation (Union[list[Dict, [str, str]], list[list[dict[str, str]]]]) — フォーマット対象の会話です。
  • chat_template (Optional[str]、省略可) — 会話を整形するために使用する Jinja テンプレートです。指定しない場合、トークナイザーのチャットテンプレートが使用されます。

トークナイザーのapply_chat_templateメソッドと同様に、このメソッドは入力された会話にJinjaテンプレートを適用し、それを単一のトークナイズ可能な文字列に変換します。

入力には、各メッセージのコンテンツがテキストと、任意の画像または動画の入力からなるリストである、以下の形式が期待されます。return_dict=True の場合、画像、動画、URL、またはローカルパスを指定することもでき、それらは pixel_values を形成するために使用されます。指定しない場合、フォーマットされたテキストのみ、または任意でトークン化されたテキストのみが返されます。

conversation = [ { “role”: “user”, “content”: [ {“type”: “image”, “url”: “https://www.ilankelman.org/stopsigns/australia.jpg”}, {“type”: “text”, “text”: “Please describe this image in detail.”}, ], }, ]

extract_speaker_dict

< >

( text: str | list[str] ) → list[dict] for a single text, list[list[dict]] for a batch

パラメータ

  • text (str または list[str]) — skip_special_tokens=False を指定してデコードされた、単一のテキストまたはテキストのバッチです。<spk:N> のスピーカータグは特殊トークンです。テキスト終了トークン以降のすべての内容は破棄されます。

戻り値

単一のテキストにはlist[dict]、バッチにはlist[list[dict]]

話者ターンごとに1つの辞書で、<spk:N> タグのインデックス N を "Speaker" に、その "Content" を含めます。タグのないテキストは "Speaker": None の単一ターンとして扱われ、最初のタグ(存在する場合)より前のテキストも同様です。

話者帰属付きの文字起こしを、このモデルが予測しないタイムスタンプを除いたVibeVoiceAsrProcessor.extract_speaker_dict()の形式で、話者ごとのターンに分割します。

例:

>>> processor.extract_speaker_dict("<spk:0> Hi, how are you? <spk:1> Fine, thanks.<|im_end|>")
[{'Speaker': 0, 'Content': 'Hi, how are you?'}, {'Speaker': 1, 'Content': 'Fine, thanks.'}]

align_word_timestamps

< >

( transcriptions: str | list[str]word_timestamp_logits: torch.Tensorinput_features_mask: torch.Tensorspeaker_logits: torch.Tensor | None = Nonelanguage: str | list[str | None] | None = Nonespeaker_activity_threshold: float = 0.5max_word_duration: float = 1.0max_word_frames: int = 12 ) → dict or list[dict]

パラメータ

  • transcriptions (str または list[str]) — skip_special_tokens=False を指定してデコードされた、各録音の生成テキスト。<spk:N> タグを保持します。
  • word_timestamp_logits (torch.Tensor、shape (batch_size, num_frames * upsampling_factor, vocab_size)) — 単語タイムスタンプヘッドの logits(generate(..., return_word_timestamp_logits=True) または model.get_word_timestamp_logits(...) の word_timestamp_logits)です。最後のクラスは CTC blank です。エンコーダフレームあたりのフレーム数である、このヘッドの upsampling_factor は、その shape から読み取られます。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — プロセッサが返す、各録音の有効なスペクトログラムフレームのマスクです。その数によって録音の長さが決まるため、ヘッドのフレームのタイムステップもこれに基づいて設定されます。
  • speaker_logits (torch.Tensor、形状 (batch_size, num_frames * subsampling_factor, num_speakers)、任意) — 話者分離モデルの logits(generate(..., return_word_timestamp_logits=True) の speaker_logits、または get_audio_features のもの)。これがない場合、各文字起こしは単一の話者としてアラインされ、話者分離の結果は返されません。
  • language (str または list[str | None]、省略可) — トランスクリプトの言語です。全トランスクリプト共通で指定するか、トランスクリプトごとに指定します。None の場合は、文字体系から検出されます: "zh" と "ja" は文字単位でアラインメントされますが、"th" はサポートされていません。
  • speaker_activity_threshold (float、任意、デフォルト値は 0.5)— 話者がアクティブと判定される確率の閾値。
  • max_word_duration (float、任意、デフォルト値は 1.0) — アラインされた単語の最大持続時間(秒)。
  • max_word_frames (int, 任意、デフォルト値は 12) — 話者分離セグメントにスナップされた単語の最大シフト量と持続時間(エンコーダーフレーム単位、1 フレームは最大 80 ms)。

戻り値

dict または list[dict]

録音(またはトランスクリプトのリストの各録音)に対して、音声認識パイプラインの単語タイムスタンプとして、"chunks" (単語ごとに {"text", "timestamp", "speaker"}、timestamp = (start, end)(秒単位)、時刻順にソート済み; speaker は単語のタグの N、最初のタグの前では None、タグのないトランスクリプトでは 0)、 "diarization"(各ディアライゼーション話者の {"speaker", "timestamp"} アクティビティセグメント)、 "speaker_tag_to_diarization_speaker"(一致しないタグは None)、および "failed_speakers"(単語がアラインできなかったタグ、"chunks" に欠落)。

生成された文字起こしの各単語に時刻を付与し、話者に割り当てます。各<spk:N>タグの単語は、タグに対応する話者がアクティブな単語タイムスタンプヘッドのフレーム上で強制アラインメント(torchaudio.functional.forced_align)が行われ、その後、その話者の話者分離セグメントにスナップされます。NeMoのMultiSpeakerSOTWordTimestampAlignerの移植版であり、長い録音に対して近似処理を行う箇所では正確な探索を行います。

例:

>>> inputs = processor.apply_transcription_request(audio, prompt=speaker_attributed_prompt).to(model.device)
>>> outputs = model.generate(**inputs, return_word_timestamp_logits=True, max_new_tokens=500)
>>> transcriptions = processor.decode(
...     outputs.sequences[:, inputs.input_ids.shape[1] :], skip_special_tokens=False
... )
>>> timestamps = processor.align_word_timestamps(
...     transcriptions, outputs.word_timestamp_logits, inputs.input_features_mask, outputs.speaker_logits
... )
>>> timestamps[0]["chunks"][0]  # {'text': ..., 'timestamp': (..., ...), 'speaker': 0}

Nemotron3_5TranscribeAsrAudioModel

class transformers.Nemotron3_5TranscribeAsrAudioModel

< >

( config: Nemotron3_5TranscribeAsrAudioConfig )

パラメータ

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

Nemotron 3.5 Transcribe 音声認識エンコーダー: Nemotron 3 Diarization 音声エンコーダーに、各アテンションヘッドのクエリとキーの正規化、および各ヘッドの一部に対する回転位置埋め込みを追加したものです。

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

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

forward

< >

( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.FloatTensor)

パラメータ

  • input_features (torch.Tensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は feature_extractor_class を使用して取得できます。詳細は feature_extractor_class.__call__ を参照してください(processor_class は音声の処理に feature_extractor_class を使用します)。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • position_ids (torch.Tensor の形状 (batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

戻り値

BaseModelOutput または tuple(torch.FloatTensor)

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

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

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

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

  • 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) です。

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

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

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

Nemotron3_5TranscribeAudioModel

class transformers.Nemotron3_5TranscribeAudioModel

< >

( config: Nemotron3_5TranscribeAudioConfig )

パラメータ

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

Nemotron 3.5 Transcribe 音声モデルでは、音声認識エンコーダーと話者分離モデルが同じスペクトログラム上で並列に実行され、話者の活動が音声認識エンコーダーの出力に追加されます。

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

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

forward

< >

( input_features: FloatTensorinput_features_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeAudioModelOutput or tuple(torch.FloatTensor)

パラメータ

  • input_features (torch.FloatTensor、shape (batch_size, feature_sequence_length, num_mel_bins)) — config.subsampling_factor の倍数のフレーム数にパディングされたログメルスペクトログラムです。オリジナルと同様に、config.diarization_config.chunk_length エンコーダーフレームより長い音声は、コンテキスト付きでチャンクごとにエンコードされます。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)、任意) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。

戻り値

Nemotron3_5TranscribeAudioModelOutput または tuple(torch.FloatTensor)

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

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

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

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

  • pooler_output (torch.FloatTensor、shape (num_audio_tokens, text_config.hidden_size)、optional) — 各録音の有効なエンコーダーフレームの投影されたオーディオ埋め込みを、バッチ順で返します。プロンプト内のオーディオトークンを置き換える埋め込みです。get_audio_features によって返されます。

  • 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) です。

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

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

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

  • asr_last_hidden_state (torch.FloatTensor、shape (batch_size, num_frames, audio_config.hidden_size)) — 音声認識エンコーダーの出力。正規化とスピーカー埋め込み適用前の値であり、get_word_timestamp_logits() の入力です。

  • speaker_logits (torch.FloatTensor、shape (batch_size, feature_sequence_length, audio_config.num_speakers)) — 話者分離モデルの logits。スペクトログラムの各フレームに対応する 1 フレーム分です。

Nemotron3_5TranscribeWordTimestampModel

class transformers.Nemotron3_5TranscribeWordTimestampModel

< >

( config: Nemotron3_5TranscribeWordTimestampConfig )

パラメータ

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

Nemotron 3.5 Transcribe の単語タイムスタンプヘッドの transformer。Nemotron3_5TranscribeForConditionalGeneration.word_timestamp_head はその出力を分類します。

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

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

forward

< >

( inputs_embeds: FloatTensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

パラメータ

  • inputs_embeds (torch.FloatTensor、shape (batch_size, num_frames, hidden_size)) — 音声認識エンコーダーの状態。音声モデルの asr_norm と話者埋め込みを適用する前のものです。
  • attention_mask (torch.Tensor、形状 (batch_size, num_frames)、任意) — 有効なエンコーダーフレームのマスクです。

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

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

num_frames * upsampling_factor フレームを返します。

Nemotron3_5TranscribeModel

class transformers.Nemotron3_5TranscribeModel

< >

( config: Nemotron3_5TranscribeConfig )

パラメータ

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

Nemotron 3.5 Transcribe モデル(音声認識エンコーダーと話者分離モデルを並列に配置し、線形プロジェクターと Nemotron-H 言語モデルを備えた構成)で、言語モデリングヘッドは含まれません。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeModelOutputWithPast or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • input_features (torch.FloatTensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は feature_extractor_class を使用して取得できます。詳細は feature_extractor_class.__call__ を参照してください(processor_class は音声の処理に feature_extractor_class を使用します)。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対するアテンションの計算を回避するためのマスク。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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))のみを入力することになります。

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

Nemotron3_5TranscribeModelOutputWithPast または tuple(torch.FloatTensor)

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

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

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

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

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

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

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • 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) です。

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

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

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

  • audio_hidden_states (torch.FloatTensor、任意) — 投影されたオーディオの隠れ状態。

get_audio_features

< >

( input_features: FloatTensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • input_features (torch.FloatTensor) — 生の音声波形から抽出されたメル特徴量の浮動小数点値。
  • input_features_mask (torch.Tensor、shape (batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対してアテンションを実行しないためのマスク。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

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

このメソッドは、入力特徴量(log mel spectrogram)から音声エンベディングを取得するために使用されます。これは、音声エンコーダーとマルチモーダルプロジェクターの推論を実行することを意味します。

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

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • 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) です。

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

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

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

get_word_timestamp_hidden_states

< >

( asr_last_hidden_state: FloatTensorinput_features_mask: Tensor )

パラメータ

  • asr_last_hidden_state (torch.FloatTensor、shape (batch_size, num_frames, audio_config.hidden_size)) — input_features_mask に対して get_audio_features() が返す、正規化およびスピーカー埋め込み適用前の音声認識エンコーダーの出力です。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。

エンコーダーのチャンク単位で、音声認識エンコーダーの状態に対して単語タイムスタンプエンコーダーを実行します。これは、単語タイムスタンプヘッドが分類する状態です。

Nemotron3_5TranscribeForConditionalGeneration

クラス transformers.Nemotron3_5TranscribeForConditionalGeneration

< >

( config: Nemotron3_5TranscribeConfig )

パラメータ

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

Nemotron 3.5 Transcribe モデル(音声認識エンコーダーと話者分離モデルを並列に配置し、線形プロジェクターと Nemotron-H 言語モデルを備えたもの)に、言語モデリングヘッドを付加した構成です。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeCausalLMOutputWithPast or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • input_features (torch.FloatTensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は feature_extractor_class を使用して取得できます。詳細は feature_extractor_class.__call__ を参照してください(processor_class は音声の処理に feature_extractor_class を使用します)。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対するアテンションの計算を回避するためのマスク。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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))のみを入力することになります。

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • labels (torch.LongTensor、shape (batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベル。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • logits_to_keep (Union[int, torch.Tensor]、省略可、デフォルトは 0) — int の場合、最後の logits_to_keep トークンについて logits を計算します。0 の場合、すべての input_ids について logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。 torch.Tensor の場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。

戻り値

Nemotron3_5TranscribeCausalLMOutputWithPast または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます)— Cache のインスタンスです。

  • 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) です。

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

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

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

  • audio_hidden_states (torch.FloatTensor、任意) — 投影後のオーディオエンコーダーの隠れ状態。

例:

>>> from transformers import Nemotron3_5TranscribeForConditionalGeneration, AutoProcessor

>>> model_id = "nvidia/audio-flamingo-3-hf"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = Nemotron3_5TranscribeForConditionalGeneration.from_pretrained(model_id, device_map="auto")

get_audio_features

< >

( input_featuresinput_features_mask**kwargs )

パラメータ

  • input_features (`of shape(batch_size, sequence_length, feature_dim)) -- The tensors corresponding to the input audio features. Audio features can be obtained using feature_extractor_class. See feature_extractor_class.call for details (processor_classusesfeature_extractor_class` for processing audios).
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。

例:

get_word_timestamp_logits

< >

( asr_last_hidden_state: FloatTensorinput_features_mask: Tensor )

パラメータ

  • asr_last_hidden_state (torch.FloatTensor、shape (batch_size, num_frames, audio_config.hidden_size)) — input_features_mask に対して get_audio_features() が返す、正規化およびスピーカー埋め込み適用前の音声認識エンコーダーの出力です。
  • input_features_mask (torch.Tensor、形状 (batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。

音声認識エンコーダーの状態で、align_word_timestamps() が単語の時刻に変換する、timestamp head の logits。

例:

Update on GitHub