Transformers documentation

Nemotron ASR Streaming

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

نُشر هذا النموذج في أوراق HF في 2023-05-08 وسُهم به في Hugging Face Transformers في 2026-06-18.

Nemotron ASR Streaming

نظرة عامة

Nemotron ASR Streaming هو نموذج لتعرف الكلام باللغة الإنجليزية من NVIDIA يحتوي على 600 مليون معامل، مصمم لإجراء نسخ نصي عالي الجودة في كل من إعدادات البث منخفض الكمون وإعدادات الدفعة عالية الإنتاجية، مع دعم أصلي للعلامات الترقيمية وأحرف البداية الكبيرة. وفيما يتعلق بالبث، يوفر أحجام مقاطع قابلة للضبط—80 مللي ثانية، 160 مللي ثانية، 560 مللي ثانية، و1120 مللي ثانية—مما يتيح للمستخدمين الموازنة بين الكمون والدقة لتناسب تطبيقهم. وتُعد بنية FastConformer-RNNT السريعة الواعية بالذاكرة المؤقتة جوهرية لهذه القدرة: فبخلاف البث المخزّن التقليدي الذي يعالج نوافذ الصوت المتداخلة بشكل متكرر، يعالج النموذج كل مقطع جديد وارد فقط مع إعادة استخدام سياق المشفّر المخزّن المؤقت من المقاطع السابقة. وهذا يلغي الحسابات الزائدة، ويحسّن الكفاءة بشكل كبير، ويقلل التأخير من البداية إلى النهاية دون التضحية بالدقة، مما يجعله مناسبًا جدًا لأعباء العمل المتعلقة بالنسخ النصي في الوقت الفعلي.

الاستخدام

النسخ النصي دون اتصال

خط أنابيب
AutoModel
from transformers import pipeline

pipe = pipeline(
    "automatic-speech-recognition",
    model="nvidia/nemotron-speech-streaming-en-0.6b",
)
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)

النسخ النصي البثي

هذه ميزة تجريبية وقد تخضع الواجهة البرمجية للتغيير.

للتفريغ في الوقت الفعلي، يتم تقسيم الصوت إلى مقاطع وفقاً لما يلي:

from threading import Thread
from transformers import AutoModelForRNNT, AutoProcessor, TextIteratorStreamer
from transformers.audio_utils import load_audio

model_id = "nvidia/nemotron-speech-streaming-en-0.6b"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForRNNT.from_pretrained(model_id, device_map="auto")

processor.set_num_lookahead_tokens(6)
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/obama.mp3",
    sampling_rate=sampling_rate,
)

first_chunk_inputs = processor(
    audio[: processor.num_samples_first_audio_chunk],
    sampling_rate=sampling_rate,
    is_streaming=True,
    is_first_audio_chunk=True,
    return_tensors="pt",
)
first_chunk_inputs = first_chunk_inputs.to(model.device, dtype=model.dtype)


def input_features_generator():
    yield first_chunk_inputs.input_features[:, : processor.num_mel_frames_first_audio_chunk, :]

    mel_frame_idx = processor.num_mel_frames_first_audio_chunk
    hop_length = processor.feature_extractor.hop_length
    n_fft = processor.feature_extractor.n_fft

    start_idx = mel_frame_idx * hop_length - n_fft // 2
    while (end_idx := start_idx + processor.num_samples_per_audio_chunk) < audio.shape[0]:
        inputs = processor(
            audio[start_idx:end_idx],
            sampling_rate=sampling_rate,
            is_streaming=True,
            is_first_audio_chunk=False,
            return_tensors="pt",
        )
        inputs = inputs.to(model.device, dtype=model.dtype)
        yield inputs.input_features

        mel_frame_idx += processor.num_mel_frames_per_audio_chunk
        start_idx = mel_frame_idx * hop_length - n_fft // 2


streamer = TextIteratorStreamer(processor.tokenizer, skip_special_tokens=True)
generate_kwargs = {
    **first_chunk_inputs,
    "input_features": input_features_generator(),
    "streamer": streamer,
}
thread = Thread(target=model.generate, kwargs=generate_kwargs)
thread.start()

# Iterate over the streamer to get text chunks as they are generated
print("Model output (streaming):", end=" ", flush=True)
for text_chunk in streamer:
    print(text_chunk, end="", flush=True)
thread.join()

زمن الاستجابة للبث

يُحدَّد زمن الاستجابة بواسطة num_lookahead_tokens، وهو سياق الانتباه الصحيح (الاستباق، في إطارات المُشفِّر المُعيَّنَة) الذي تنتظره كل شريحة قبل إصدارها. يسمح القيمة الأكبر لكل شريحة برؤية المزيد من الصوت المستقبلي: دقة أفضل مقابل زمن استجابة أعلى. افحص التنازلات المدعومة، واختر واحدة، واقرأ زمن الاستجابة الناتج:

from transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("nvidia/nemotron-speech-streaming-en-0.6b")

# Each supported `num_lookahead_tokens` mapped to its streaming latency in milliseconds:
print(processor.supported_streaming_latencies_ms)
# {13: 1120, 6: 560, 1: 160, 0: 80}

# Select a right attention context (this also re-derives the streaming chunk sizes used above):
processor.set_num_lookahead_tokens(6)

# Latency of the current selection:
print(processor.streaming_latency_ms)
# 560

set_num_lookahead_tokens يحدد حجم المقاطع التي يُصدرها المعالج، ويجب أن يصل num_lookahead_tokens المطابق إلى generate (في المقطع أعلاه، ينتقل عبر **inputs/**first_chunk_inputs، الذي يحمل num_lookahead_tokens). يثير generate التدفقي استثناءً إذا تم تجاهله.

NemotronAsrStreamingConfig

فئة transformers.NemotronAsrStreamingConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 1025decoder_hidden_size: int = 640num_decoder_layers: int = 2hidden_act: str = 'relu'max_symbols_per_step: int = 10encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 0blank_token_id: int = 1024 )

المعاملات

  • is_encoder_decoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.
  • vocab_size (int، اختياري، القيمة الافتراضية 1025) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • decoder_hidden_size (int, اختياري، القيمة الافتراضية 640) — حجم المخفي لشبكة التنبؤ LSTM (وهو pred_hidden في NeMo). تقوم الشبكة المشتركة بإسقاط كل من مخرجات المُشفِّر والمُفكِّك إلى هذا الحجم (وهو joint_hidden في NeMo، حيث تُعيَّن جميع نقاط التفتيش المعروفة له بقيمة تساوي pred_hidden).
  • num_decoder_layers (int، اختياري، القيمة الافتراضية 2) — عدد طبقات LSTM في شبكة التنبؤ.
  • hidden_act (str، اختياري، القيمة الافتراضية "relu") — دالة التنشيط في الشبكة المشتركة.
  • max_symbols_per_step (int، اختياري، القيمة الافتراضية 10) — الحد الأقصى لعدد الرموز غير الفارغة التي تُصدر في كل خطوة زمنية للمُشفِّر أثناء فك الترميز الجشع.
  • encoder_config (Union[dict, NemotronAsrStreamingEncoderConfig]، اختياري) — كائن الإعدادات أو قاموس المُشفِّر.
  • pad_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • blank_token_id (int، اختياري، القيمة الافتراضية 1024) — معرّف الرمز الفارغ. يختلف عن pad_token_id في RNN-T.

هذه فئة الإعدادات المخزنة لإعدادات NemotronAsrStreamingForRNNT. تُستخدم لاستحداث نموذج Nemotron Asr Streaming وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ nvidia/nemotron-speech-streaming-en-0.6b

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import NemotronAsrStreamingForRNNT, NemotronAsrStreamingConfig

>>> # Initializing a NemotronAsrStreaming RNN-T configuration
>>> configuration = NemotronAsrStreamingConfig()

>>> # Initializing a model from the configuration
>>> model = NemotronAsrStreamingForRNNT(configuration)

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

NemotronAsrStreamingEncoderConfig

فئة transformers.NemotronAsrStreamingEncoderConfig

< >

( 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 = 1024num_hidden_layers: int = 24num_attention_heads: int = 8intermediate_size: int = 4096hidden_act: str = 'silu'attention_bias: bool = Trueconvolution_bias: bool = Trueconv_kernel_size: int = 9subsampling_factor: int = 8subsampling_conv_channels: int = 256num_mel_bins: int = 80subsampling_conv_kernel_size: int = 3subsampling_conv_stride: int = 2dropout: float | int = 0.1dropout_positions: float | int = 0.0layerdrop: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1max_position_embeddings: int = 5000scale_input: bool = Trueinitializer_range: float = 0.02sliding_window: int = 71default_num_lookahead_tokens: int = 13 )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 1024) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 4096) — أبعاد تمثيلات MLP.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • attention_bias (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • convolution_bias (bool، اختياري، الافتراضي True) — ما إذا كان سيتم استخدام الانحياز في عمليات الالتفاف داخل وحدة الالتفاف الخاصة بـ conformer.
  • conv_kernel_size (int, اختياري، القيمة الافتراضية 9) — حجم النواة لطبقات الالتفاف في كتلة Conformer.
  • subsampling_factor (int، اختياري، القيمة الافتراضية 8) — المعامل الذي يتم بموجبه أخذ عينة فرعية من تسلسل الإدخال.
  • subsampling_conv_channels (int، اختياري، القيمة الافتراضية 256) — عدد القنوات في طبقات الالتفاف الفرعية.
  • num_mel_bins (int، اختياري، القيمة الافتراضية 80) — عدد ميزات mel.
  • subsampling_conv_kernel_size (int، اختياري، القيمة الافتراضية 3) — حجم النواة لطبقات الالتفاف الفرعية.
  • subsampling_conv_stride (int، اختياري، القيمة الافتراضية 2) — خطوة طبقات التمرير الفرعي.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • dropout_positions (float, اختياري، القيمة الافتراضية 0.0) — نسبة dropout للمواقع في تسلسل الإدخال.
  • layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 5000) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • scale_input (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم توسيع تمثيلات الإدخال.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • sliding_window (int، اختياري، القيمة الافتراضية 71) — حجم نافذة الانتباه المنزلقة لـ K/V (بإطار المشفر المُخفَّض العينة). يساوي left_context + 1 (الإطار الحالي بالإضافة إلى السياق الأيسر)، لذا فإن سياق الانتباه الأيسر هو sliding_window - 1 — وهو نفسه عبر جميع مسافات الاستباق المدعومة.
  • default_num_lookahead_tokens (int، اختياري، القيمة الافتراضية 13) — سياق الانتباه الأيمن (الاستباق، في إطارات المُشفِّر المُعيَّنة) المستخدم عند عدم تمرير أي سياق إلى التمرير الأمامي. المجموعة المدعومة التي تم تدريب النموذج عليها موجودة في NemotronAsrStreamingProcessor.

هذه فئة الإعدادات المخزنة لإعدادات NemotronAsrStreamingForRNNT. تُستخدم لاستحداث نموذج Nemotron Asr Streaming وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ nvidia/nemotron-speech-streaming-en-0.6b

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import NemotronAsrStreamingEncoder, NemotronAsrStreamingEncoderConfig

>>> # Initializing a `NemotronAsrStreamingEncoder` configuration
>>> configuration = NemotronAsrStreamingEncoderConfig()

>>> # Initializing a model from the configuration
>>> model = NemotronAsrStreamingEncoder(configuration)

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

NemotronAsrStreamingFeatureExtractor

فئة transformers.NemotronAsrStreamingFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400preemphasis = 0.97padding_value = 0.0mel_filters_dtype = 'float32'**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 80) — أبعاد الميزة للميزات المستخرجة.
  • sampling_rate (int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • hop_length (int، اختياري، القيمة الافتراضية 160) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه الزمني القصير (STFT) للحصول على معاملات ترددات ميل.
  • n_fft (int، اختياري، القيمة الافتراضية 512) — حجم تحويل فورييه.
  • win_length (int، اختياري، القيمة الافتراضية 400) — طول النافذة لحساب تحويل فورييه الزمني القصير (STFT).
  • preemphasis (float، اختياري، القيمة الافتراضية 0.97) — معامل مرشح التمهيد. القيمة 0.0 تعني عدم استخدام مرشح التمهيد.
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — قيمة الحشو المستخدمة لحشو الصوت. يجب أن تتوافق مع الصمت.
  • mel_filters_dtype (str، اختياري، القيمة الافتراضية "float32") — دقة بنك المرشحات المييلية (mel filter bank) ونافذة STFT المخزنة. تحتفظ بعض نقاط الفحص (checkpoints) بهذه الثوابت بدقة مخفّضة ("bfloat16" في Nemotron 3.5 Transcribe): في هذه الحالة، يتم تقريب بنك المرشحات والنافذة إلى نوع البيانات (dtype) ذلك عند حساب الميزات، مما يجعل ميزات log-mel مطابقة للواجهة الأمامية الأصلية؛ بينما يتم حساب الطيف الترددي (spectrogram) نفسه دائمًا في float32.

ينشئ مستخرج ميزات من نوع NemotronAsrStreaming.

يرث مستخرج الميزات هذا من SequenceFeatureExtractor الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

تستخرج هذه الفئة ميزات بنك مرشحات ميل من الكلام الخام باستخدام تنفيذ مخصص عبر numpy لتحويل Short Time Fourier Transform، والذي ينبغي أن يطابق ما يعادله في pytorch وهو torch.stft.

NemotronAsrStreamingProcessor

فئة transformers.NemotronAsrStreamingProcessor

< >

( feature_extractortokenizerblank_token = '<blank>'supported_num_lookahead_tokens = Nonedefault_num_lookahead_tokens = None )

المعاملات

  • feature_extractor (NemotronAsrStreamingFeatureExtractor) — مستخرج الميزات هو مدخل مطلوب.
  • tokenizer (ParakeetTokenizer) — مُجزِّئ النصّ مدخل إلزامي.
  • blank_token (str، اختياري، القيمة الافتراضية "<blank>") — رمز فارغ لفك ترميز RNN-T.
  • supported_num_lookahead_tokens (list[int]، اختياري) — سياقات الانتباه اليمنى (الرموز الاستباقية، في إطارات المُشفِّر المُخفَّضة العينات) التي تم تدريب النموذج عليها. يعتبر المُعالِج المصدر الوحيد الموثوق لهذا المجموعة: set_num_lookahead_tokens() يُتحقق من ذلك بناءً عليه. القيمة الافتراضية هي مجموعة NeMo الواعية بالذاكرة المؤقتة [13, 6, 1, 0].
  • default_num_lookahead_tokens (int, اختياري) — السياق الأيمن المستخدم لتحديد حجم مقاطع البث والمُخرَج بواسطة call()؛ يمكنك تغييره باستخدام set_num_lookahead_tokens(). القيمة الافتراضية هي العنصر الأول من supported_num_lookahead_tokens.

ينشئ NemotronAsrStreamingProcessor الذي يغلّف مستخرج الميزات ومجزّئ الرموز في معالج واحد.

يوفر NemotronAsrStreamingProcessor جميع وظائف NemotronAsrStreamingFeatureExtractor وParakeetTokenizer. راجع ~NemotronAsrStreamingFeatureExtractor و~ParakeetTokenizer لمزيد من المعلومات.

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]text: str | list[str] | list[list[str]] | None = Nonesampling_rate: int | None = Noneis_streaming: bool = Falseis_first_audio_chunk: bool | None = True**kwargs: *<class 'transformers.models.nemotron_asr_streaming.processing_nemotron_asr_streaming.NemotronAsrStreamingProcessorKwargs'> ) → BatchFeature

المعاملات

  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.
  • text (Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّن is_split_into_words=True لتجنّب الغموض مع المدخلات المُجمَّعة في دفعات.
  • sampling_rate (int, اختياري) — معدل أخذ العينات للصوت المُدخل بالهرتز. يجب أن يتطابق هذا المعدل مع معدل أخذ العينات المتوقع من قِبل مستخرج الميزات (الافتراضي هو 16000 هرتز). إذا تم تقديمه، فسيتم التحقق منه مقابل معدل أخذ العينات المتوقع من المعالج، وسيتم رفع خطأ إذا لم يتطابقا. أما إذا لم يتم تقديمه، فسيتم إصدار تحذير وسيُفترض معدل أخذ العينات الافتراضي.
  • is_streaming (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب معالجة الصوت في وضع البث. عند تعيين True، يمكن تمرير الصوت على شكل مقاطع، مع استخدام is_first_audio_chunk للتمييز بين المقطع الأول والمقاطع اللاحقة.
  • is_first_audio_chunk (bool، اختياري، القيمة الافتراضية True) — ما إذا كان الصوت الحالي هو الجزء الأول من جلسة بث. يستخدم مستخرج الميزات center=True للجزء الأول (وللاستخدام غير المباشر) وcenter=False للأجزاء اللاحقة، بحيث يعيد تحويل STFT لكل جزء، إطارًا بإطار، مسارًا واحدًا كاملًا للعبارة. يجب أن تكون القيمة True عندما تكون is_streaming=False.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

يعيد

BatchFeature

مخرجات مستخرج الميزات (ومُرمّز الاختياري)، معزّزة بما يلي:

  • num_lookahead_tokens — سياق الانتباه الأيمن (النظر إلى الأمام، في إطارات المُشفِّر المُخفَّضة العينة)، أي default_num_lookahead_tokens (يُعيَّن عبر set_num_lookahead_tokens()). مرّره إلى الأمام في النموذج/المُشفِّر (أو generate)؛ فهو يؤدي دور num_delay_tokens في Voxtral Realtime.

decode

< >

( *argsdurations = None**kwargs )

مرّر الحُجج إلى decode() ثم عالج طوياً الأختام الزمنية على مستوى الرموز (إذا تم توفير durations) كما في مكتبة NeMo.

NemotronAsrStreamingEncoderModelOutput

فئة transformers.NemotronAsrStreamingEncoderModelOutput

< >

( last_hidden_state: typing.Optional[torch.Tensor] = Nonepooler_output: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None )

المعاملات

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات الخفاء عند مخرجات الطبقة الأخيرة من النموذج.
  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُعيد هذه القيمة رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
  • hidden_states (tuple(torch.Tensor), اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.Tensor (واحد لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحد لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.Tensor), اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو بعد ضغط التسلسل. يُعاد لأن طول التسلسل قد يختلف عن طول التسلسل المدخل. قيم القناع المختارة في [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.
  • past_key_values (Cache، اختياري) — مخزن نافذة الانزلاق المحدّث لـ K/V الانتباه من المُشفِّر. مرّره إلى استدعاء المقطع التالي.
  • padding_cache (NemotronAsrStreamingEncoderCausalConvPaddingCache، اختياري) — ذاكرة تخزين موحّدة للبث تدعم طبقات Conv2d الخاصة بتخفيض العينة وطبقة Conv1d العميقة الخاصة بـ conformer.

يمدّد ParakeetEncoderModelOutput بخزانات مؤقتة اختيارية للبث. تُملأ الخزانات المؤقتة فقط للنماذج التي تدعم الخزانات المؤقتة عندما يكون use_cache=True.

NemotronAsrStreamingRNNTOutput

فئة transformers.NemotronAsrStreamingRNNTOutput

< >

( last_hidden_state: typing.Optional[torch.Tensor] = Nonepooler_output: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = Noneloss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonedecoder_cache: transformers.models.nemotron_asr_streaming.generation_nemotron_asr_streaming.NemotronAsrStreamingRNNTDecoderCache | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None )

encoder_past_key_values (Cache, اختياري): مخزن نافذة المنزلقة المحدّث لانتباه K/V في المُشفِّر، يُعاد عند ترميز الصوت باستخدام use_cache=True (بثّ واعٍ بالمخزن). مرّره إلى تمريرة الأمامي للقطعة التالية. padding_cache (NemotronAsrStreamingEncoderCausalConvPaddingCache, اختياري): مخزن التحوّلات الموحّد للبثّ المحدّث (تحوّل Conv2d للعينات الفرعية + تحوّل Conv1d العميق في conformer)، يُعاد عند ترميز الصوت باستخدام use_cache=True. مرّره إلى تمريرة الأمامي للقطعة التالية.

NemotronAsrStreamingEncoder

فئة transformers.NemotronAsrStreamingEncoder

< >

( config: NemotronAsrStreamingEncoderConfig )

المعاملات

  • config (NemotronAsrStreamingEncoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج NemotronAsrStreaming Encoder، المبني على بنية Fast Conformer.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneoutput_attention_mask: bool = Trueuse_cache: bool | None = Nonepadding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = Nonenum_lookahead_tokens: int | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • position_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • past_key_values (Cache، اختياري) — ذاكرة مؤقتة K/V بنافذة منزلقة (DynamicCache مبنية من config.sliding_window) للانتباه التدفقي الواعي بالذاكرة المؤقتة.
  • output_attention_mask (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع قناع الانتباه الناتج. لا يكون فعالاً إلا عند تقديم attention_mask.
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).
  • padding_cache (NemotronAsrStreamingEncoderCausalConvPaddingCache، اختياري) — ذاكرة تخزين موحّدة للبث تدعم طبقات Conv2d الخاصة بتخفيض العينة وطبقة Conv1d العميقة الخاصة بـ conformer.
  • num_lookahead_tokens (int, اختياري) — تجاوز سياق الانتباه الأيمن (النظرة الاستباقية، في إطارات المُشفِّر المُخفَّضة العينات) لهذا المارّة الأمامية. يُدمج مع السياق الأيسر config.sliding_window - 1. القيمة الافتراضية هي config.default_num_lookahead_tokens.

يعيد

BaseModelOutput أو tuple(torch.Tensor)

torch.Tensor أو BaseModelOutput (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) يتكوّن من عناصر مختلفة اعتماداً على الإعداد (None) والمدخلات.

تتجاوز طريقة NemotronAsrStreamingEncoder الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.

  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> from transformers import AutoProcessor, NemotronAsrStreamingEncoder
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/nemotron-speech-streaming-en-0.6b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = NemotronAsrStreamingEncoder.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)

>>> print(encoder_outputs.last_hidden_state.shape)

NemotronAsrStreamingForRNNT

فئة transformers.NemotronAsrStreamingForRNNT

< >

( config: NemotronAsrStreamingConfig )

المعاملات

  • config (NemotronAsrStreamingConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

NemotronAsrStreaming مُشفِّر مع رأس RNN-T (Transducer الشبكة العصبية المتكررة).

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_cache: transformers.models.nemotron_asr_streaming.generation_nemotron_asr_streaming.NemotronAsrStreamingRNNTDecoderCache | None = Noneuse_decoder_cache: bool | None = Noneencoder_outputs: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderModelOutput | None = Nonelabels: typing.Optional[torch.Tensor] = Nonenum_lookahead_tokens: int | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → NemotronAsrStreamingRNNTOutput or tuple(torch.Tensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • decoder_input_ids (torch.LongTensor من الشكل (batch_size, 1)، اختياري) — معرّفات رموز الإدخال لفكّ الترميز للاستدلال خطوةً واحدة.
  • decoder_cache (NemotronAsrStreamingRNNTDecoderCache، اختياري) — ذاكرة مؤقتة لشبكة LSTM في المُفكِّك. تُعاد استخدامها عند التنبؤات الفارغة لتخطي خطوة LSTM.
  • use_decoder_cache (bool, اختياري) — ما إذا كان سيتم تخصيص ذاكرة مؤقتة للمفكك واستخدامها عندما لا تُوفَّر أي ذاكرة مؤقتة.
  • encoder_outputs (NemotronAsrStreamingEncoderModelOutput، اختياري) — مخرجات المُشفِّر المحسوبة مسبقًا (last_hidden_state، pooler_output، …).
  • labels (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن [0, ..., config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size].
  • num_lookahead_tokens (int, اختياري) — سياق الانتباه الأيمن (النظر إلى الأمام، في إطارات المُشفِّر المُخفَّضة العينات) المُرسَل إلى المُشفِّر. القيمة الافتراضية هي config.encoder_config.default_num_lookahead_tokens.

يعيد

NemotronAsrStreamingRNNTOutput أو tuple(torch.Tensor)

NemotronAsrStreamingRNNTOutput أو مجموعة مرتبة من torch.Tensor (عند تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة حسب الإعداد (None) والمدخلات.

تتجاوز طريقة NemotronAsrStreamingForRNNT الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • encoder_past_key_values (Cache، اختياري) — ذاكرة مؤقتة (cache) محدثة لنافذة منزلقة لمفاتيقات/قيم انتباه المُشفِّر (encoder)، تُعاد عند ترميز الصوت باستخدام use_cache=True (بثّ واعٍ بالذاكرة المؤقتة). مرّرها إلى تمريرة الأمامي (forward) للقطعة التالية.
  • padding_cache (NemotronAsrStreamingEncoderCausalConvPaddingCache، اختياري) — كاش التحويلات البينية الموحّد المُحدَّث للبث (تحويلات Conv2d للعينات الفرعية + تحويلات Conv1d العميقة لمعمارية conformer)، يُعاد عند ترميز الصوت باستخدام use_cache=True. مرّره إلى تمريرة الأمامي (forward) للقطعة التالية.

مثال:

>>> from transformers import AutoProcessor, NemotronAsrStreamingForRNNT
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/nemotron-speech-streaming-en-0.6b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = NemotronAsrStreamingForRNNT.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> outputs = model(**inputs)

generate

< >

( inputs = Nonegeneration_config = None**kwargs )

Update on GitHub