# Nemotron ASR Streaming

## نظرة عامة

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

## الاستخدام

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

```python
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)
```

```python
from transformers import AutoModelForRNNT, AutoProcessor
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")

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

inputs = processor(audio, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
print(processor.decode(output.sequences, skip_special_tokens=True))
```

### النسخ النصي البثي
> [!NOTE]
> هذه ميزة تجريبية وقد تخضع الواجهة البرمجية للتغيير.

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

```python
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`، وهو سياق الانتباه الصحيح (الاستباق، في إطارات المُشفِّر المُعيَّنَة) الذي تنتظره كل شريحة قبل إصدارها. يسمح القيمة الأكبر لكل شريحة برؤية المزيد من الصوت المستقبلي: دقة أفضل مقابل زمن استجابة أعلى. افحص التنازلات المدعومة، واختر واحدة، واقرأ زمن الاستجابة الناتج:

```python
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.NemotronAsrStreamingConfig[[transformers.NemotronAsrStreamingConfig]]

```python
transformers.NemotronAsrStreamingConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, is_encoder_decoder: bool = True, vocab_size: int = 1025, decoder_hidden_size: int = 640, num_decoder_layers: int = 2, hidden_act: str = 'relu', max_symbols_per_step: int = 10, encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, pad_token_id: int = 0, blank_token_id: int = 1024)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/configuration_nemotron_asr_streaming.py#L120)

**المعاملات:**

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](https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

مثال:
```python
>>> 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.NemotronAsrStreamingEncoderConfig[[transformers.NemotronAsrStreamingEncoderConfig]]

```python
transformers.NemotronAsrStreamingEncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 1024, num_hidden_layers: int = 24, num_attention_heads: int = 8, intermediate_size: int = 4096, hidden_act: str = 'silu', attention_bias: bool = True, convolution_bias: bool = True, conv_kernel_size: int = 9, subsampling_factor: int = 8, subsampling_conv_channels: int = 256, num_mel_bins: int = 80, subsampling_conv_kernel_size: int = 3, subsampling_conv_stride: int = 2, dropout: float | int = 0.1, dropout_positions: float | int = 0.0, layerdrop: float | int = 0.1, activation_dropout: float | int = 0.1, attention_dropout: float | int = 0.1, max_position_embeddings: int = 5000, scale_input: bool = True, initializer_range: float = 0.02, sliding_window: int = 71, default_num_lookahead_tokens: int = 13)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/configuration_nemotron_asr_streaming.py#L31)

**المعاملات:**

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) : عدد ميزات ميل.

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](see 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](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingProcessor).

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

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

مثال:
```python
>>> 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]]

#### transformers.NemotronAsrStreamingFeatureExtractor[[transformers.NemotronAsrStreamingFeatureExtractor]]

```python
transformers.NemotronAsrStreamingFeatureExtractor(feature_size = 80, sampling_rate = 16000, hop_length = 160, n_fft = 512, win_length = 400, preemphasis = 0.97, padding_value = 0.0, mel_filters_dtype = 'float32', **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/feature_extraction_nemotron_asr_streaming.py#L41)

**المعاملات:**

feature_size (`int`، *اختياري*، القيمة الافتراضية 80) : بُعد الميزة للميزات المستخرجة.

sampling_rate (`int`، *اختياري*، القيمة الافتراضية 16000) : معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).

hop_length (`int`، *اختياري*، القيمة الافتراضية 160) : طول النوافذ المتداخلة لخوارزمية STFT المستخدمة للحصول على معاملات ترددات Mel.

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"`) : دقة بنك مرشحات ميل المخزنة ونافذة STFT. بعض نقاط التفتيش تحتفظ بهذه الثوابت بدقة مخفّضة (`"bfloat16"` في Nemotron 3.5 Transcribe): في هذه الحالة، يتم تقريب بنك المرشحات والنافذة إلى ذلك النوع من البيانات عند حساب الميزات، بحيث تتطابق ميزات اللوغ-ميل مع الواجهة الأمامية الأصلية؛ أما الطيف الطيفي نفسه فيُحسب دائمًا في float32.

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

يرث مستخرج الميزات هذا من [SequenceFeatureExtractor](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.SequenceFeatureExtractor) الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

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

## NemotronAsrStreamingProcessor[[transformers.NemotronAsrStreamingProcessor]]

#### transformers.NemotronAsrStreamingProcessor[[transformers.NemotronAsrStreamingProcessor]]

```python
transformers.NemotronAsrStreamingProcessor(feature_extractor, tokenizer, blank_token = '<blank>', supported_num_lookahead_tokens = None, default_num_lookahead_tokens = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/processing_nemotron_asr_streaming.py#L50)

**المعاملات:**

feature_extractor (`NemotronAsrStreamingFeatureExtractor`) : مُستخرج الميزات هو مدخل مطلوب.

tokenizer (`ParakeetTokenizer`) : مُجزِّئ النص (tokenizer) هو مدخل مطلوب.

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__()](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingProcessor.__call__)؛ يمكن تغييره عبر `set_num_lookahead_tokens()`. القيمة الافتراضية هي العنصر الأول من `supported_num_lookahead_tokens`.

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

يوفر [NemotronAsrStreamingProcessor](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingProcessor) جميع وظائف [NemotronAsrStreamingFeatureExtractor](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingFeatureExtractor) و[ParakeetTokenizer](/docs/transformers/main/ar/model_doc/parakeet#transformers.ParakeetTokenizer). راجع [~NemotronAsrStreamingFeatureExtractor](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingFeatureExtractor) و[~ParakeetTokenizer](/docs/transformers/main/ar/model_doc/parakeet#transformers.ParakeetTokenizer) لمزيد من المعلومات.

#### __call__[[transformers.NemotronAsrStreamingProcessor.__call__]]

```python
__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 = None, sampling_rate: int | None = None, is_streaming: bool = False, is_first_audio_chunk: bool | None = True, **kwargs: *<class 'transformers.models.nemotron_asr_streaming.processing_nemotron_asr_streaming.NemotronAsrStreamingProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/processing_nemotron_asr_streaming.py#L85)

**المعاملات:**

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](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع تينسورات من إطار عمل محدد. القيم المقبولة هي:  - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch. - `'np'`: يُرجع كائنات `np.ndarray` من NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessingKwargs)، *اختياري*) : خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

**يعيد:** [BatchFeature](/docs/transformers/main/ar/main_classes/feature_extractor#transformers.BatchFeature)

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

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

#### فك الترميز[[transformers.NemotronAsrStreamingProcessor.decode]]

```python
decode(*args, durations = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/processing_nemotron_asr_streaming.py#L169)

مرّر الحُجج إلى [decode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.decode) ثم عالج طوياً الأختام الزمنية على مستوى الرموز (إذا تم توفير `durations`) كما في مكتبة NeMo.

## NemotronAsrStreamingEncoderModelOutput[[transformers.NemotronAsrStreamingEncoderModelOutput]]

#### transformers.NemotronAsrStreamingEncoderModelOutput[[transformers.NemotronAsrStreamingEncoderModelOutput]]

```python
transformers.NemotronAsrStreamingEncoderModelOutput(last_hidden_state: typing.Optional[torch.Tensor] = None, pooler_output: typing.Optional[torch.Tensor] = None, hidden_states: tuple[torch.Tensor, ...] | None = None, attentions: tuple[torch.Tensor, ...] | None = None, attention_mask: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, padding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L325)

**المعاملات:**

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]]

#### transformers.NemotronAsrStreamingRNNTOutput[[transformers.NemotronAsrStreamingRNNTOutput]]

```python
transformers.NemotronAsrStreamingRNNTOutput(last_hidden_state: typing.Optional[torch.Tensor] = None, pooler_output: typing.Optional[torch.Tensor] = None, hidden_states: tuple[torch.Tensor, ...] | None = None, attentions: tuple[torch.Tensor, ...] | None = None, loss: typing.Optional[torch.Tensor] = None, logits: typing.Optional[torch.Tensor] = None, decoder_cache: transformers.models.nemotron_asr_streaming.generation_nemotron_asr_streaming.NemotronAsrStreamingRNNTDecoderCache | None = None, encoder_past_key_values: transformers.cache_utils.Cache | None = None, padding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L1037)

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

## NemotronAsrStreamingEncoder[[transformers.NemotronAsrStreamingEncoder]]

#### transformers.NemotronAsrStreamingEncoder[[transformers.NemotronAsrStreamingEncoder]]

```python
transformers.NemotronAsrStreamingEncoder(config: NemotronAsrStreamingEncoderConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L877)

**المعاملات:**

config ([NemotronAsrStreamingEncoderConfig](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingEncoderConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج NemotronAsrStreaming Encoder، المبني على [بنية Fast Conformer](https://huggingface.co/papers/2305.05084).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.NemotronAsrStreamingEncoder.forward]]

```python
forward(input_features: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, output_attention_mask: bool = True, use_cache: bool | None = None, padding_cache: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None, num_lookahead_tokens: int | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L900)

**المعاملات:**

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 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

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](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutput) أو `tuple(torch.Tensor)`

A [BaseModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutput) أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتمادًا على الإعداد (`None`) والمدخلات.

تتجاوز طريقة [NemotronAsrStreamingEncoder](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingEncoder) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

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

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> 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]]

#### transformers.NemotronAsrStreamingForRNNT[[transformers.NemotronAsrStreamingForRNNT]]

```python
transformers.NemotronAsrStreamingForRNNT(config: NemotronAsrStreamingConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L1126)

**المعاملات:**

config ([NemotronAsrStreamingConfig](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

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

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.NemotronAsrStreamingForRNNT.forward]]

```python
forward(input_features: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_cache: transformers.models.nemotron_asr_streaming.generation_nemotron_asr_streaming.NemotronAsrStreamingRNNTDecoderCache | None = None, use_decoder_cache: bool | None = None, encoder_outputs: transformers.models.nemotron_asr_streaming.modeling_nemotron_asr_streaming.NemotronAsrStreamingEncoderModelOutput | None = None, labels: typing.Optional[torch.Tensor] = None, num_lookahead_tokens: int | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/modeling_nemotron_asr_streaming.py#L1156)

**المعاملات:**

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 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` من الشكل `(batch_size, 1)`، *اختياري*) : معرّفات رموز الإدخال لفكّ الترميز للاستدلال بخطوة واحدة.

decoder_cache (`NemotronAsrStreamingRNNTDecoderCache`، *اختياري*) : ذاكرة مؤقتة لشبكة LSTM في فك الترميز. تُعاد استخدامها عند التنبؤات الفارغة لتخطي خطوة LSTM.

use_decoder_cache (`bool`، *اختياري*) : ما إذا كان سيتم تخصيص واستخدام ذاكرة مؤقتة للوحّاد (decoder) عند عدم توفيرها.

encoder_outputs (`NemotronAsrStreamingEncoderModelOutput`، *اختياري*) : مخرجات المُشفِّر المُحسوبة مسبقًا (last_hidden_state، pooler_output، ...).

labels (`torch.Tensor` بشكل `(batch_size, sequence_length)`، *اختياري*) : تسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن `[0, ..., config.vocab_size]` أو -100 (انظر إلى docstring الخاص بـ `input_ids`). تُتجاهل الرموز التي تكون فهارسها `-100` (مقنّعة)، وتُحسب الخسارة فقط للرموز التي تسمياتها ضمن `[0, ..., config.vocab_size]`.

num_lookahead_tokens (`int`, *اختياري*) : سياق الانتباه الأيمن (النظر إلى الأمام، في إطارات المُشفِّر المُخفَّضة العينات) المُمرَّر إلى المُشفِّر. القيمة الافتراضية هي `config.encoder_config.default_num_lookahead_tokens`.

**يعيد:** [NemotronAsrStreamingRNNTOutput](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingRNNTOutput) أو `tuple(torch.Tensor)`

[NemotronAsrStreamingRNNTOutput](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingRNNTOutput) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد (`None`) والمدخلات.

تتجاوز طريقة [NemotronAsrStreamingForRNNT](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingForRNNT) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

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

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

مثال:

```python
>>> 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[[transformers.NemotronAsrStreamingForRNNT.generate]]

```python
generate(inputs = None, generation_config = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nemotron_asr_streaming/generation_nemotron_asr_streaming.py#L212)

