Transformers documentation

Nemotron 3 Konuşmacı Ayrıştırma

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

and get access to the augmented documentation experience

to get started

Bu model, 2026-09-23 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.

Nemotron 3 Konuşmacı Ayrıştırma

Genel Bakış

Nemotron 3 Diarization, gerçek dünya seslerinde “kimin ne zaman konuştuğunu” belirlemek üzere tasarlanmış, açık ağırlıklı bir akış konuşmacı ayrıştırma modelidir. Hem akış hem de çevrimdışı çıkarımı destekler, en fazla sekiz konuşmacıyı işler ve konuşmacı çıktıları, her konuşmacının girdi sesindeki ilk varlığına göre sıralanır.

Model, Streaming Sortformer için tanıtılan 1 ve 1, 2 Arrival-Order Speaker Cache (AOSC) ile FIFO kuyruğunu kullanır. Tek bir checkpoint, 80 ms'lik bir giriş tamponundan 30,4 sn'lik çevrimdışı tarzı bir tampona kadar yapılandırılabilir gecikme profillerini ve 10 ms'nin katları şeklinde yapılandırılabilir çıktı çerçeve çözünürlüğünü destekler. Parçalı çıkarım (chunked inference) ile maksimum ses süresi sınırlı değildir.

Kullanım

Çevrimdışı

import torch
from transformers import AutoModelForAudioFrameClassification, AutoProcessor
from transformers.audio_utils import load_audio

model_id = "nvidia/Nemotron-3-Diarization"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForAudioFrameClassification.from_pretrained(model_id, device_map="auto")

sampling_rate = processor.feature_extractor.sampling_rate
audio = load_audio(
    "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/diarization_example.mp3",
    sampling_rate=sampling_rate,
)
inputs = processor(audio, sampling_rate=sampling_rate).to(model.device, dtype=model.dtype)

with torch.inference_mode():
    logits = model(**inputs).logits  # (1, num_frames, 8), one frame every 10 ms

segments = processor.extract_speaker_dict(logits, inputs.attention_mask)[0]
for segment in segments:
    print(f"speaker_{segment['Speaker']}: {segment['Start']:.2f}s - {segment['End']:.2f}s")

Akış

Ses, parça parça gelir ve her ileri geçiş bir parçayı işler: işlemci, streaming_mode için onu keser ve num_lookahead_frames değerini ekler; bu, modelin dikkate aldığı ancak puanlamadığı, sonraki parçayı açan son izleme çerçevesi sayısıdır. İleri geçiş, sonraki çağrıya aktarılacak speaker_cache değerini döndürür. Bir oturumun son parçası is_last_audio_chunk=True ile çıkarılır: izleme çerçevesi olmadığından, kalan tüm çerçeveler puanlanır.

streaming_modeGecikme¹
"low_latency" (varsayılan)1.04 s
"very_low_latency"0.64 s
"ultra_low_latency"0.32 s

¹ Modelin bir parça üzerinde çalışmadan önce beklemesi gereken ses: hesaplama süresi hariç, parça ve ileriye bakma (look-ahead) süresi.

import torch
from transformers import AutoModelForAudioFrameClassification, AutoProcessor
from transformers.audio_utils import load_audio

model_id = "nvidia/Nemotron-3-Diarization"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForAudioFrameClassification.from_pretrained(model_id, device_map="auto")
processor.set_streaming_mode("low_latency")  # the default, can also be "very_low_latency" and "ultra_low_latency"
print(f"Streaming latency: {processor.streaming_latency_ms} ms")

sampling_rate = processor.feature_extractor.sampling_rate
audio = load_audio(
    "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/diarization_example.mp3",
    sampling_rate=sampling_rate,
)


def inputs_generator():
    """Yields the processor outputs of each chunk."""
    yield processor(
        audio[: processor.num_samples_first_audio_chunk],
        sampling_rate=sampling_rate,
        is_streaming=True,
        is_first_audio_chunk=True,
    )

    mel_frame_idx = processor.num_mel_frames_per_step
    start_idx = processor.audio_chunk_start(mel_frame_idx)
    while (end_idx := start_idx + processor.num_samples_per_audio_chunk) <= audio.shape[0]:
        yield processor(
            audio[start_idx:end_idx],
            sampling_rate=sampling_rate,
            is_streaming=True,
            is_first_audio_chunk=False,
        )
        mel_frame_idx += processor.num_mel_frames_per_step
        start_idx = processor.audio_chunk_start(mel_frame_idx)

    # the audio ended: the frames left in the buffer are the last ones of the session
    yield processor(
        audio[start_idx:],
        sampling_rate=sampling_rate,
        is_streaming=True,
        is_first_audio_chunk=False,
        is_last_audio_chunk=True,
    )


speaker_cache, logits = None, []
with torch.inference_mode():
    for inputs in inputs_generator():
        inputs = inputs.to(model.device, dtype=model.dtype)
        # `inputs` carries `num_lookahead_frames` for every chunk but the last, `speaker_cache` links the chunks
        outputs = model(**inputs, speaker_cache=speaker_cache)
        logits.append(outputs.logits)  # the chunk's frames, without its look-ahead
        speaker_cache = outputs.speaker_cache

logits = torch.cat(logits, dim=1)  # (1, num_frames, 8), one frame every 10 ms
segments = processor.extract_speaker_dict(logits)[0]  # [{"Start": 0.0, "End": 15.43, "Speaker": 0}, ...]

Hızlandırmak

Bir akış adımının kodlayıcı girişi [speaker cache | FIFO | chunk] şeklindedir; uzunluğu, önbellek ve FIFO'nun dolup boşalmasıyla değişir: torch.compile bir oturumda yaklaşık yüz kez yeniden derleme yapardı. Her adımı modun en büyük penceresine kadar doldurmak (padding) şekli sabitler. Konumlar her chunk'ta sıfırdan başlar, bu nedenle sağ padding geçerli kareleri değiştirmez:

import torch.nn.functional as F

chunk_length, chunk_right_context = processor.streaming_modes[processor.streaming_mode]
max_window = (
    model.config.streaming_config.speaker_cache_length
    + model.config.streaming_config.fifo_length
    + chunk_length
    + chunk_right_context
)
encoder = model.model
compiled_forward = torch.compile(encoder.forward, mode="reduce-overhead", fullgraph=True, dynamic=False)


def padded_forward(inputs_embeds, attention_mask=None, position_ids=None, **kwargs):
    batch_size, num_frames, _ = inputs_embeds.shape
    if attention_mask is None:
        attention_mask = inputs_embeds.new_ones(batch_size, num_frames, dtype=torch.bool)
    padding = max_window - num_frames
    hidden_states = compiled_forward(
        inputs_embeds=F.pad(inputs_embeds, (0, 0, 0, padding)),
        attention_mask=F.pad(attention_mask.bool(), (0, padding), value=False),
        position_ids=torch.arange(max_window, device=inputs_embeds.device)[None, :],
        **kwargs,
    )
    return hidden_states[:, :num_frames].clone()  # CUDA graphs reuse the output buffer


encoder.forward = padded_forward

# warm up before the session: compiles, then records the CUDA graph, so the first real chunk runs at full speed
with torch.inference_mode():
    for _ in range(3):
        hidden_size = model.config.audio_config.hidden_size
        padded_forward(torch.zeros(1, max_window, hidden_size, device=model.device, dtype=model.dtype))

Yukarıdaki akış döngüsü bir kez derlenir. Çevrimdışı ileri geçiş de aynı şekilde parçalara ayrılır, bu nedenle aynı sarmalayıcı max_window içinde config.fifo_length, config.chunk_left_context, config.chunk_length ve config.chunk_right_context ile uygulanır.

Hızlanma oranı (eager'a kıyasla) (A100, batch boyutu 1)float32bfloat16
akış, adım başına1.2x4.4x
çevrimdışı, 488 s kayıtlı1.3x2.8x

Nemotron3DiarizationConfig

sınıf transformers.Nemotron3DiarizationConfig

< >

( 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: transformers.models.nemotron3_diarization.configuration_nemotron3_diarization.Nemotron3DiarizationAudioConfig | dict | None = Nonehead_config: transformers.models.nemotron3_diarization.configuration_nemotron3_diarization.Nemotron3DiarizationHeadConfig | dict | None = Nonestreaming_config: transformers.models.nemotron3_diarization.configuration_nemotron3_diarization.Nemotron3DiarizationStreamingConfig | dict | None = Nonechunk_length: int = 340chunk_right_context: int = 40chunk_left_context: int = 0fifo_length: int = 40speaker_cache_update_period: int = 300initializer_range: float = 0.02 )

Parametreler

  • audio_config (Nemotron3DiarizationAudioConfig veya dict, isteğe bağlı) — Transformer ses kodlayıcısının yapılandırması. Varsayılan olarak Nemotron3DiarizationAudioConfig() kullanılır.
  • head_config (Nemotron3DiarizationHeadConfig veya dict, isteğe bağlı) — Konuşmacı başlığının yapılandırması. Varsayılan olarak Nemotron3DiarizationHeadConfig() kullanılır.
  • streaming_config (Nemotron3DiarizationStreamingConfig veya dict, isteğe bağlı) — Konuşmacı önbelleği politikası ve akışkan modun FIFO boyutları. Varsayılan değeri Nemotron3DiarizationStreamingConfig()'tir.
  • chunk_length (int, isteğe bağlı, varsayılan 340) — Çevrimdışı modda: tüm bir kayıt tek bir ileri geçişte konuşmacı ayrımı yapıldığında parça başına kodlayıcı çerçeve sayısı. Akış modunda parça, her ileri geçişin girdisidir.
  • chunk_right_context (int, isteğe bağlı, varsayılan 40) — Çevrimdışı modda: her parçanın bir sonraki parçalardan aldığı ileriye dönük kodlayıcı çerçevesi sayısı. Akış modunda ileriye dönük bakış, her ileri geçişin num_lookahead_frames değeridir.
  • chunk_left_context (int, isteğe bağlı, varsayılan 0) — Çevrimdışı mod: Her parçanın, önbelleğe alınmış kareler ile parça arasına yerleştirilen, bir önceki parçalardan tekrar aldığı geriye dönük kodlayıcı kare sayısı. İleriye dönük bakışta olduğu gibi bu karelere dikkat edilir ancak puanlanmazlar ve FIFO kuyruğuna eklenmezler. Akış modunda geriye dönük bakış, her ileri geçişin num_lookback_frames değeridir.
  • fifo_length (int, isteğe bağlı, varsayılan 40) — Çevrimdışı mod: en son kodlayıcı karelerinin FIFO kuyruğunun kapasitesi. Akış modu streaming_config.fifo_length kullanır.
  • speaker_cache_update_period (int, isteğe bağlı, varsayılan 300) — Çevrimdışı mod: kuyruk taşarsa FIFO kuyruğundan konuşmacı önbelleğine taşınan kodlayıcı çerçevesi sayısı. Akış modu streaming_config.speaker_cache_update_period kullanır.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

Bu, bir Nemotron3DiarizationModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Nemotron3 Diarization modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, nvidia/Nemotron-3-Diarization ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Nemotron3DiarizationAudioConfig

sınıf transformers.Nemotron3DiarizationAudioConfig

< >

( 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 = 512intermediate_size: int = 2048num_hidden_layers: int = 31num_attention_heads: int = 8num_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 )

Parametreler

  • hidden_size (int, isteğe bağlı, varsayılan 512) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 2048) — MLP temsillerinin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 31) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 8) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • num_key_value_heads (int, isteğe bağlı) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır. num_key_value_heads=num_attention_heads ise model Multi Head Attention (MHA) kullanır, num_key_value_heads=1 ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olarak num_attention_heads kullanılır.
  • hidden_act (str, isteğe bağlı, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 5000) — Bu modelin kullanılabileceği maksimum dizi uzunluğu.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • rope_parameters (dict, isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve daha uzun max_position_embeddings ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • num_mel_bins (int, isteğe bağlı, varsayılan 128) — Giriş başına kullanılan mel özellik sayısı. AutoFeatureExtractor sınıfında kullanılan değerle eşleşmelidir.
  • subsampling_factor (int, isteğe bağlı, varsayılan 8) — Tek bir kodlayıcı çerçevesine yığılan ardışık spektrogram çerçevesi sayısı. Sınıflandırıcı, çıktılarını aynı katsayıyla yukarı örnekler, böylece konuşmacı aktivitesi spektrogram çerçevesi hızında tahmin edilir.

Bu, bir Nemotron3DiarizationModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Nemotron3 Diarization modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, nvidia/Nemotron-3-Diarization ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Nemotron3DiarizationHeadConfig

sınıf transformers.Nemotron3DiarizationHeadConfig

< >

( 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 = 192num_speakers: int = 8audio_hidden_size: int = 512subsampling_factor: int = 8 )

Parametreler

  • hidden_size (int, isteğe bağlı, varsayılan 192) — Konuşmacı başlığının gizli boyutu: kodlayıcı çıktısı buna yansıtılır ve yükseltici ile sınıflandırıcı bunu korur.
  • num_speakers (int, isteğe bağlı, varsayılan 8) — Konuşmacıların maksimum sayısı, yani çerçevelere göre aktivite çıktıları sayısı. Konuşmacılar, ses dosyasındaki ilk görünümlerine göre sıralanır.
  • audio_hidden_size (int, opsiyonel, varsayılan 512) — Başlığın projeksiyon yaptığı kodlayıcı çıktısının gizli boyutu. Nemotron3DiarizationAudioConfig.hidden_size ile eşleşmelidir.
  • subsampling_factor (int, isteğe bağlı, varsayılan 8) — Başın (head) upsampling çarpanı, spektrogram çerçeve hızına geri dönmek için. Nemotron3DiarizationAudioConfig.subsampling_factor ile eşleşmelidir.

Bu, bir Nemotron3DiarizationModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Nemotron3 Diarization modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, nvidia/Nemotron-3-Diarization ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Nemotron3DiarizationStreamingConfig

sınıf transformers.Nemotron3DiarizationStreamingConfig

< >

( 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 = Nonefifo_length: int = 264speaker_cache_update_period: int = 222speaker_cache_length: int = 264speaker_cache_silence_frames_per_speaker: int = 1prediction_score_threshold: float = 0.25latest_frames_score_boost: float = 0.05strong_boost_rate: float = 0.75weak_boost_rate: float = 1.5min_positive_scores_rate: float = 0.5num_speakers: int = 8subsampling_factor: int = 8 )

Parametreler

  • fifo_length (int, isteğe bağlı, varsayılan 264) — Akış modunda en son kodlayıcı karelerinin FIFO kuyruğunun kapasitesi (çevrimdışı mod Nemotron3DiarizationConfig.fifo_length kullanır).
  • speaker_cache_update_period (int, isteğe bağlı, varsayılan 222) — Akış modunda kuyruk taşarsa FIFO kuyruğundan konuşmacı önbelleğine taşınan kodlayıcı çerçevesi sayısı (çevrimdışı mod Nemotron3DiarizationConfig.speaker_cache_update_period kullanır).
  • speaker_cache_length (int, isteğe bağlı, varsayılan 264) — Arrival-Order Speaker Cache kapasitesi. En az (1 + speaker_cache_silence_frames_per_speaker) * num_speakers olmalıdır.
  • speaker_cache_silence_frames_per_speaker (int, isteğe bağlı, varsayılan 1) — Önbellek sıkıştırıldığında, öğrenilen sessizlik gömme için konuşmacı başına konuşmacı-önbellek yuvalarından ayrılan sayı.
  • prediction_score_threshold (float, isteğe bağlı, varsayılan 0.25) — Konuşmacı önbelleği çerçeve puanlarında logaritma alınmadan önce konuşmacı olasılıklarının alt sınırı.
  • latest_frames_score_boost (float, isteğe bağlı, varsayılan 0.05) — Konuşmacı önbelleği sıkıştırıldığında, önbelleğe yeni eklenen karelere verilen puan bonusu.
  • strong_boost_rate (float, isteğe bağlı, varsayılan 0.75) — Konuşmacı başına önbellek bütçesinin, güçlü bir puan artışı alan en iyi karelerin oranı; böylece her konuşmacı önbellekte en az bu kadar kare tutar.
  • weak_boost_rate (float, isteğe bağlı, varsayılan 1.5) — Konuşmacı başına önbellek bütçesinin, zayıf puan artışı alan en iyi karelerinin oranı; bu, tek bir konuşmacının önbelleği domine etmesini önler.
  • min_positive_scores_rate (float, isteğe bağlı, varsayılan 0.5) — Konuşmacı başına önbellek bütçesinin oranı: en az bu kadar sayıda pozitif puanlı çerçeveye sahip bir konuşmacının, pozitif olmayan (örtüşen konuşma) çerçeveleri önbellekten hariç tutulur.
  • num_speakers (int, isteğe bağlı, varsayılan 8) — Konuşmacı önbelleği tarafından izlenen konuşmacı sayısı. Nemotron3DiarizationHeadConfig.num_speakers ile eşleşmelidir.
  • subsampling_factor (int, isteğe bağlı, varsayılan 8) — Her kodlayıcı çerçevesi başına konuşmacı olasılığı çerçevesi sayısı. Nemotron3DiarizationAudioConfig.subsampling_factor ile eşleşmelidir.

Bu, bir Nemotron3DiarizationModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Nemotron3 Diarization modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, nvidia/Nemotron-3-Diarization ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Nemotron3DiarizationAudioModel

sınıf transformers.Nemotron3DiarizationAudioModel

< >

( config: Nemotron3DiarizationAudioConfig )

Parametreler

  • config (Nemotron3DiarizationAudioConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel head bulunmayan, ham hidden-state çıktısı üreten çıplak Nemotron3 Diarization Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

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.Tensor)

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri NemotronAsrStreamingFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için NemotronAsrStreamingFeatureExtractor.__call__() bölümüne bakın (Nemotron3DiarizationProcessor, sesleri işlemek için NemotronAsrStreamingFeatureExtractor kullanır).
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

Dönüş değeri

BaseModelOutput veya tuple(torch.Tensor)

Bir BaseModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Nemotron3DiarizationConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Nemotron3DiarizationAudioModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Nemotron3DiarizationModel

sınıf transformers.Nemotron3DiarizationModel

< >

( config: Nemotron3DiarizationConfig )

Parametreler

  • config (Nemotron3DiarizationConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Konuşmacı sınıflandırıcısı olmadan Nemotron3Diarization modeli: bir parçayı (önbelleğe alınmış kareleriyle birlikte) kodlar ve kodlayıcı karelerini spektrogram kare hızına geri örnekler. Akış durumunu (streaming state) tutmaz; parçalı ileri geçiş için Nemotron3DiarizationForAudioFrameClassification sınıfına bakın.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

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.Tensor)

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri NemotronAsrStreamingFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için NemotronAsrStreamingFeatureExtractor.__call__() bölümüne bakın (Nemotron3DiarizationProcessor, sesleri işlemek için NemotronAsrStreamingFeatureExtractor kullanır).
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

Dönüş değeri

BaseModelOutput veya tuple(torch.Tensor)

Bir BaseModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Nemotron3DiarizationConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Nemotron3DiarizationModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Nemotron3DiarizationProcessor

sınıf transformers.Nemotron3DiarizationProcessor

< >

( feature_extractorsubsampling_factor = 8streaming_modes = Nonestreaming_mode = 'low_latency' )

Parametreler

  • feature_extractor (NemotronAsrStreamingFeatureExtractor) — Özellik çıkarıcı zorunlu bir girdidir.
  • subsampling_factor (int, isteğe bağlı, varsayılan 8) — Her encoder çerçevesi başına mel çerçeve sayısı, Nemotron3DiarizationAudioConfig.subsampling_factor ile aynıdır.
  • streaming_modes (dict[str, tuple[int, int]], isteğe bağlı) — Kontrol noktasının desteklediği akış modları, adların (chunk_length, chunk_right_context) olarak kodlayıcı çerçevelerine eşlenmesi. Bu küme için tek doğruluk kaynağı işleyicidir: set_streaming_mode() bunu doğrular. Varsayılan olarak model kartı modları kullanılır: "low_latency" (9, 4), "very_low_latency" (6, 2) ve "ultra_low_latency" (3, 1).
  • streaming_mode (str, isteğe bağlı, varsayılan "low_latency") — Oturumların akış modu, streaming_modes değerlerinden biri; set_streaming_mode() ile değiştirilir. Çevrimdışı kullanım bu parametreyi yok sayar.

Bir özellik çıkarıcıyı (feature extractor) tek bir işlemciye (processor) saran bir Nemotron3DiarizationProcessor oluşturur.

Nemotron3DiarizationProcessor, NemotronAsrStreamingFeatureExtractor'in tüm işlevlerini sunar. Daha fazla bilgi için ~NemotronAsrStreamingFeatureExtractor sayfasına bakın.

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]sampling_rate: int | None = Noneis_streaming: bool = Falseis_first_audio_chunk: bool = Trueis_last_audio_chunk: bool = False**kwargs: *<class 'transformers.models.nemotron3_diarization.processing_nemotron3_diarization.Nemotron3DiarizationProcessorKwargs'> ) → BatchFeature

Parametreler

  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — Hazırlanacak ses veya sesler partisi. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur.
  • sampling_rate (int, isteğe bağlı) — Giriş sesinin Hz cinsinden örneklem hızı. Verildiğinde, özellik çıkarıcısının beklenen örneklem hızıyla (16000 Hz) doğrulanır.
  • is_streaming (bool, isteğe bağlı, varsayılan False) — Sesin bir akış oturumunun parçası olup olmadığını belirtir; is_first_audio_chunk ve is_last_audio_chunk ilk ve son parçaları diğerlerinden ayırt eder. Parça boyutları streaming_mode'ınkilerdir ve set_streaming_mode() ile değiştirilir. Son parça hariç her parça, ilk parça için tam olarak num_samples_first_audio_chunk ses örneği, sonraki parçalar için ise num_samples_per_audio_chunk örnek içermelidir.
  • is_first_audio_chunk (bool, isteğe bağlı, varsayılan True) — Bu, bir akış oturumunun ilk parçası mıdır? Özellik çıkarıcı, ilk parça için ve çevrimdışı kullanım için analiz pencerelerini ortalar (center=True), sonraki parçalar için ise ortalamaz (center=False); böylece parça başına spektrogram, tek bir tam ifade geçişini çerçeve çerçeve yeniden üretir. is_streaming=False olduğunda True olmalıdır.
  • is_last_audio_chunk (bool, isteğe bağlı, varsayılan False) — Bu parçanın akış oturumunu sonlandırıp sonlandırmadığını belirtir. Bir oturumdaki parça, modelin yalnızca bir sonraki adımda puanladığı ve bir sonraki parçasının başlangıcında açtığı chunk_right_context ileriye dönük kodlayıcı çerçeveleriyle sona erer. Son parçanın bir sonraki adımı olmadığından, çerçevelerinin sayısı ne olursa olsun hepsi puanlanır ve sonu, tam bir ifade geçişinin sesin sonunu sıfırla doldurması (zero-padding) gibi sıfırla doldurulur; böylece ifadenin son çerçevelerini üretir. is_streaming=False olduğunda False olmalıdır.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Dönüş değeri

BatchFeature

özellik çıkarıcısının çıktılarını, input_features ve attention_mask üretir. Akış modunda, analiz penceresi son parçadan farklı bir parçanın ötesine uzanan son kareler atılır; bu nedenle input_features yalnızca parçanın karelerini içerir ve modele olduğu gibi aktarılabilir. Son parça hariç her parça, modelin akış moduna geçmesini sağlayan, sonundaki ileriye dönük kodlayıcı karelerinin sayısını temsil eden num_lookahead_frames değerini de taşır.

Nemotron3DiarizationSpeakerCache

sınıf transformers.Nemotron3DiarizationSpeakerCache

< >

( config: Nemotron3DiarizationStreamingConfigfifo_length: int | None = Nonespeaker_cache_update_period: int | None = None )

Parametreler

  • config (Nemotron3DiarizationStreamingConfig) — Konuşmacı önbellek politikası ve akışkan modun FIFO boyutları.
  • fifo_length (int, isteğe bağlı) — En son kodlayıcı karelerinin FIFO kuyruğunun kapasitesi. Varsayılan değeri config.fifo_length'tür.
  • speaker_cache_update_period (int, isteğe bağlı) — Kuyruk taşarsa FIFO kuyruğundan konuşmacı önbelleğine taşınan kodlayıcı çerçeve sayısı. Varsayılan değeri config.speaker_cache_update_period'tür.

Nemotron3DiarizationForAudioFrameClassification sınıfının akış durumu: varış sırasına göre konuşmacı önbelleği ve her parçanın dikkat ettiği en son kodlayıcı karelerinin FIFO kuyruğu.

güncelle

< >

( chunk_input_embeds: Tensorchunk_logits: Tensorsilence_embeds: Tensornum_chunk_frames: intmask: typing.Optional[torch.Tensor] = Nonenum_lookback_frames: int = 0 )

Parametreler

  • chunk_input_embeds (torch.Tensor, şekli (batch_size, num_input_frames, hidden_size)) — Adımın kodlayıcı girdisi: get_embeds tarafından döndürülen önbelleğe alınmış kareler, geriye dönük kareler, parça ve ileriye dönük kareler.
  • chunk_logits (torch.Tensor, şekli (batch_size, num_input_frames * subsampling_factor, num_speakers)) — Konuşmacı önbelleği sıkıştırıldığında kareleri puanlamak için kullanılan adımın konuşmacı logitleri.
  • silence_embeds (torch.Tensor, şekli (hidden_size,)) — Sıkıştırılmış önbellekteki ayrılmış sessizlik yuvalarını dolduran öğrenilmiş sessizlik gömme vektörü.
  • num_chunk_frames (int) — chunk_input_embeds içindeki önbelleğe alınmış ve geriye dönük karelerin ardından gelen parça karelerinin sayısı. FIFO kuyruğuna yalnızca bunlar eklenir; bunların ardından gelen ileriye dönük kareler bir sonraki adımda yeniden işlenir.
  • mask (torch.Tensor, şekli (batch_size, num_input_frames), isteğe bağlı) — chunk_input_embeds'in geçerli kareleri; dolgu karelerine sıfır konuşmacı olasılıkları atanır.
  • num_lookback_frames (int, isteğe bağlı, varsayılan 0) — chunk_input_embeds içindeki önbelleğe alınmış kareler ile parça arasındaki geriye dönük kare sayısı: önceki parçanın, o parça ile birlikte zaten gönderilmiş olan kareleri.

İşlenmiş bir parçayı FIFO kuyruğuna iter ve taşma durumunda en eski karelerini konuşmacı önbelleğine taşır.

Nemotron3DiarizationOutput

sınıf transformers.Nemotron3DiarizationOutput

< >

( logits: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = Nonespeaker_cache: transformers.models.nemotron3_diarization.modeling_nemotron3_diarization.Nemotron3DiarizationSpeakerCache | None = None )

Parametreler

  • logits (torch.Tensor, şekli (batch_size, num_frames, config.head_config.num_speakers)) — Spektrogram çerçeve hızında, çerçeve başına konuşmacı aktivite logitleri. logits.sigmoid(), her konuşmacının her çerçevede aktif olma olasılığını verir; konuşmacılar, ses dosyasındaki ilk varış sıralarına göre sıralanır.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True olduğunda döndürülür) — Her parçanın (chunk) kodlayıcı gizli durumları, parça sırasına göre: kodlayıcı her parça için bir kez çalıştığından, bu tuple her parça için config.audio_config.num_hidden_layers + 1 tensör içerir. Sıraları uzunlukları, önbellek ve ileriye bakış kareleri dahil olmak üzere parçanınkine eşittir.
  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, output_attentions=True olduğunda döndürülür) — Her parçanın kodlayıcı dikkat ağırlıkları, parça sırasına göre, parça başına config.audio_config.num_hidden_layers tensör.
  • speaker_cache (Nemotron3DiarizationSpeakerCache, opsiyonel, akış modunda döndürülür) — Aynı akışların bir sonraki ses parçasının forward'ine iletilmek üzere güncellenmiş akış durumu.

Nemotron3DiarizationForAudioFrameClassification çıktısı.

Nemotron3DiarizationForAudioFrameClassification

sınıf transformers.Nemotron3DiarizationForAudioFrameClassification

< >

( config: Nemotron3DiarizationConfig )

Parametreler

  • config (Nemotron3DiarizationConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Streaming Sortformer konuşmacı ayrıştırma modeli: her spektrogram çerçevesi için, ilk geliş sırasına göre sıralanmış en fazla config.head_config.num_speakers konuşmacının aktivitesini tahmin eder. Ses, parça parça işlenir; her parça, birkaç ileriye bakış çerçevesine ve Nemotron3DiarizationSpeakerCache içinde taşınan Arrival-Order Speaker Cache ile FIFO kuyruğuna dikkat eder. Tüm bir kayıt, forward tarafından parçalara ayrılır (çevrimdışı mod); bir akış ise her forward'da bir parça olarak beslenir (streaming modu).

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonespeaker_cache: transformers.models.nemotron3_diarization.modeling_nemotron3_diarization.Nemotron3DiarizationSpeakerCache | None = Nonenum_lookahead_frames: int | None = Nonenum_lookback_frames: int | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3DiarizationOutput or tuple(torch.Tensor)

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, feature_dim)) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri NemotronAsrStreamingFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için NemotronAsrStreamingFeatureExtractor.__call__() bölümüne bakın (Nemotron3DiarizationProcessor, sesleri işlemek için NemotronAsrStreamingFeatureExtractor kullanır).
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • speaker_cache (Nemotron3DiarizationSpeakerCache, opsiyonel) — Aynı ses akışlarının önceki parçasının forward tarafından döndürülen akış durumu.
  • num_lookahead_frames (int, isteğe bağlı) — Akış modu: girdinin, yalnızca ileriye bakış (look-ahead) olarak kullanılan sonda kalan kodlayıcı karelerinin sayısı. Bu karelere dikkat (attention) uygulanır ancak logit'leri döndürülmez ve bir sonraki parçayı açtıkları için FIFO kuyruğuna eklenmezler. Nemotron3DiarizationProcessor oturumun sonuncusu dışındaki her parça için bunu ayarlar.

    Bu argümanlar ve num_lookback_frames modu seçer. Akış (streaming) modu, ileri yönde (forward) birim başına bir parça: num_lookahead_frames veya num_lookback_frames verilmişse (ilk parça speaker_cache oluşturur, sonraki parçalar bunu alır) ya da yalnızca speaker_cache verilmişse (oturumun son parçası, ileriye bakış yok). Girdi, geriye ve ileriye bakış kareleri çıkarıldığında, uzunluğu ne olursa olsun tek bir parça olur ve config.streaming_config ile boyutlandırılan FIFO kuyruğuna bütün olarak itilir. Çevrimdışı (offline) mod, ikisi de verilmediyse: girdi tüm bir kayıttır ve ileri yönde (forward) config.chunk_length kodlayıcı karelik parçalara bölünür; bu parçalar, öncekilerden en fazla config.chunk_left_context geriye bakış karesi ve sonrakilerden en fazla config.chunk_right_context ileriye bakış karesi alır; FIFO kuyruğu config.fifo_length ile boyutlandırılır; önbellek (cache) döndürülmez.

  • num_lookback_frames (int, isteğe bağlı) — Akış modu: girdinin, önceki parçanın sonunun bu parçadan önce tekrar beslenmesiyle oluşan, speaker_cache karelerinin üzerine eklenen, yalnızca geriye dönük (look-back) olarak kullanılan baştaki kodlayıcı karelerinin sayısı. Bu karelere dikkat edilir ancak logitleri döndürülmez ve FIFO kuyruğuna tekrar eklenmezler. Varsayılan değer 0'dır.

Dönüş değeri

Nemotron3DiarizationOutput veya tuple(torch.Tensor)

A Nemotron3DiarizationOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Nemotron3DiarizationConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Nemotron3DiarizationForAudioFrameClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • logits (torch.Tensor, şekli (batch_size, num_frames, config.head_config.num_speakers)) — Spektrogram çerçeve hızında, çerçeve başına konuşmacı aktivite logitleri. logits.sigmoid(), her konuşmacının her çerçevede aktif olma olasılığını verir; konuşmacılar, ses dosyasındaki ilk varış sıralarına göre sıralanır.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True olduğunda döndürülür) — Parça sırasına göre her parçanın kodlayıcı gizli durumları: kodlayıcı parça başına bir kez çalıştığından, bu demet her parça için config.audio_config.num_hidden_layers + 1 tensör içerir. Sıraları uzunlukları, önbellek ve ileriye dönük kareler dahil olmak üzere parçanınkine eşittir.
  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, output_attentions=True olduğunda döndürülür) — Her parçanın encoder dikkat ağırlıkları, parça sırasına göre, parça başına config.audio_config.num_hidden_layers tensör.
  • speaker_cache (Nemotron3DiarizationSpeakerCache, opsiyonel, akış modunda döndürülür) — Aynı akışların bir sonraki ses dilimine ait forward çağrısına iletilmek üzere güncellenmiş akış durumu.

Örnek:

>>> from transformers import AutoModelForAudioFrameClassification, AutoProcessor
>>> from transformers.audio_utils import load_audio

>>> model_id = "nvidia/Nemotron-3-Diarization"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = AutoModelForAudioFrameClassification.from_pretrained(model_id, device_map="auto")

>>> sampling_rate = processor.feature_extractor.sampling_rate
>>> audio = load_audio(
...     "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/en-Alice_woman.wav",
...     sampling_rate=sampling_rate,
... )
>>> inputs = processor(audio, sampling_rate=sampling_rate).to(model.device, dtype=model.dtype)
>>> probabilities = model(**inputs).logits.sigmoid()  # (1, num_frames, 8), one frame every 10 ms
Update on GitHub