# Nemotron 3.5 ASR

## نظرة عامة

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

## الاستخدام

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

```python
from transformers import pipeline

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

> [!NOTE]
> يستخدم خط المعالجة موجه اللغة الافتراضي (المؤشر 0، `en-US`). لفرض لغة محددة أو للكشف التلقائي، مرّر معامل `language` الخاص بالمعالج (انظر تبويب AutoModel).

يُنشئ المعالج (processor) موجه اللغة، لذا تنتقل اللغة مع المدخلات إلى `generate`.

```python
from transformers import AutoModelForRNNT, AutoProcessor
from transformers.audio_utils import load_audio

model_id = "nvidia/nemotron-3.5-asr-streaming-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,
)

# Condition on a known language ...
inputs = processor(audio, sampling_rate=processor.feature_extractor.sampling_rate, language="en-US")
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))

# ... or let the model detect it and keep the emitted <xx-XX> language tag.
inputs = processor(audio, sampling_rate=processor.feature_extractor.sampling_rate) # equiv to ..., language="auto"
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
print(processor.decode(output.sequences, skip_special_tokens=False))
```

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

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

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

model_id = "nvidia/nemotron-3.5-asr-streaming-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")

# The language prompt rides along on every chunk; use a locale (e.g. "de-DE") or "auto".
language = "en-US"

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,
    language=language,
    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,
            language=language,
            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-3.5-asr-streaming-0.6b")

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

# 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` التدفقي استثناءً إذا تم تجاهله.

## Nemotron3_5AsrConfig[[transformers.Nemotron3_5AsrConfig]]

#### transformers.Nemotron3_5AsrConfig[[transformers.Nemotron3_5AsrConfig]]

```python
transformers.Nemotron3_5AsrConfig(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 = 13088, 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 = 13087, num_prompts: int = 128, prompt_intermediate_size: int = 2048, default_prompt_id: int = 101)
```

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

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

is_encoder_decoder (`bool`، *اختياري*، الافتراضي هو `True`) : ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.

vocab_size (`int`، *اختياري*، القيمة الافتراضية 13088) : حجم مفردات مخرج الشبكة المشتركة (بما في ذلك الرمز الفارغ).

decoder_hidden_size (`int`، *اختياري*، القيمة الافتراضية 640) : حجم الطبقة المخفية لشبكة التنبؤ LSTM (وهو `pred_hidden` في NeMo).

num_decoder_layers (`int`، *اختياري*، القيمة الافتراضية 2) : عدد طبقات LSTM في شبكة التنبؤ.

hidden_act (`str`، *اختياري*، القيمة الافتراضية `"relu"`) : التفعيل في الشبكة المشتركة.

max_symbols_per_step (`int`، *اختياري*، القيمة الافتراضية 10) : الحد الأقصى لعدد الرموز غير الفارغة التي تُصدر في كل خطوة زمنية للمُشفِّر أثناء فك الترميز الجشع.

encoder_config (`Union[dict, NemotronAsrStreamingEncoderConfig]`، *اختياري*) : كائن الإعدادات أو قاموس المُشَفِّر. يعيد استخدام [NemotronAsrStreamingEncoderConfig](/docs/transformers/main/ar/model_doc/nemotron_asr_streaming#transformers.NemotronAsrStreamingEncoderConfig) مباشرةً، لأن المُشَفِّر مطابق تمامًا لتلك الخاصة بـ`NemotronAsrStreaming`.

pad_token_id (`int`، *اختياري*، القيمة الافتراضية `0`) : معرّف الرمز المستخدم للتعبئة في المفردات.

blank_token_id (`int`، *اختياري*، القيمة الافتراضية 13087) : معرّف الرمز الفارغ لفك ترميز RNN-T.

num_prompts (`int`، *اختياري*، القيمة الافتراضية 128) : عدد فتحات لغة الموجه. يتم ترميز اللغة المستهدفة كمتجه أحادي (one-hot) بهذا الحجم، ويُبث عبر محور الزمن في المُشفِّر ويُدمج مع مخرجات المُشفِّر قبل شبكة `prompt_kernel` الاندماجية متعددة الطبقات (MLP).

prompt_intermediate_size (`int`، *اختياري*، القيمة الافتراضية 2048) : حجم الطبقة المخفية في دالة MLP المدمجة `prompt_kernel` (`Linear(hidden + num_prompts -> intermediate) -> ReLU -> Linear(intermediate -> hidden)`).

default_prompt_id (`int`، *اختياري*، القيمة الافتراضية 101) : فهرس الموجه المستخدم لتكييف النموذج عندما لا يُوفَّر `prompt_ids`. القيمة الافتراضية هي خانة اكتشاف اللغة `auto` (الفهرس 101 في قاموس الموجهات الخاص بـ NeMo)، بما يتوافق مع القيمة الافتراضية لـ NeMo وهي `target_lang="auto"`؛ حيث يكتشف النموذج اللغة بنفسه ويصدر وسم `<xx-XX>`.

هذه فئة الإعدادات المخزنة لإعدادات Nemotron3_5AsrForRNNT. تُستخدم لاستحداث نموذج Nemotron 3.5 Asr وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [nvidia/nemotron-3.5-asr-streaming-0.6b](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-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 Nemotron3_5AsrForRNNT, Nemotron3_5AsrConfig

>>> configuration = Nemotron3_5AsrConfig()
>>> model = Nemotron3_5AsrForRNNT(configuration)
>>> configuration = model.config
```

## Nemotron3_5AsrProcessor[[transformers.Nemotron3_5AsrProcessor]]

#### transformers.Nemotron3_5AsrProcessor[[transformers.Nemotron3_5AsrProcessor]]

```python
transformers.Nemotron3_5AsrProcessor(feature_extractor, tokenizer, blank_token = '<blank>', decoder_type = None, supported_num_lookahead_tokens = None, default_num_lookahead_tokens = None, prompt_dictionary = None, num_prompts = 128)
```

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

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

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

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

blank_token (`str`، *اختياري*، القيمة الافتراضية `"<blank>"`) : رمز فارغ لفك ترميز RNN-T.

decoder_type (`str`, *اختياري*) : وضع فك الترميز/إصدار الطوابع الزمنية (مثل `"ctc"`، `"rnnt"`، `"tdt"`). إذا كان `None` يتم استنتاج نوع فك الترميز تلقائيًا من أجل التوافق مع الإصدارات السابقة.

supported_num_lookahead_tokens (`list[int]`، *اختياري*) : سياقات الانتباه اليمنى المدعومة (رموز الاستباق، في إطارات المُشفِّر المُعيَّنة)، على غرار `NemotronAsrStreamingEncoderConfig.supported_num_lookahead_tokens`. يُستخدم للتحقق من `streaming_latency_ms` واستنتاج قيمة `num_lookahead_tokens` المُعادَة.

default_num_lookahead_tokens (`int`، *اختياري*) : السياق الأيمن المستخدم عندما لا يُقدَّم `streaming_latency_ms`. الافتراضي هو العنصر الأول من `supported_num_lookahead_tokens`.

prompt_dictionary (`dict[str, int]`، *اختياري*) : تعيين من نص لغة الهدف (مثل `"en-US"`، `"de-DE"`، الرمز المجرد `"de"`، أو `"auto"`) إلى فهرس موجهه. الافتراضي هو قاموس الموجهات الخاص بنقطة التحقق NeMo.

num_prompts (`int`، *اختياري*، القيمة الافتراضية 128) : عدد فتحات لغة الموجه (حجم متجه الموجه أحادي الترميز)، مما يعكس `Nemotron3_5AsrConfig.num_prompts`.

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

يوفر [Nemotron3_5AsrProcessor](/docs/transformers/main/ar/model_doc/nemotron3_5_asr#transformers.Nemotron3_5AsrProcessor) جميع وظائف [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) لمزيد من المعلومات.

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

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

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

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

#### set_num_lookahead_tokens[[transformers.Nemotron3_5AsrProcessor.set_num_lookahead_tokens]]

```python
set_num_lookahead_tokens(num_lookahead_tokens: int)
```

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

اختر سياق الانتباه الصحيح (النظر إلى الأمام، في إطارات المُشفِّر المُعيَّنة) المستخدم للبث.

يُعيّن `default_num_lookahead_tokens`، بحيث يُعاد اشتقاق كل خاصية تدفّق مشتقة (`num_mel_frames_first_audio_chunk`، `num_mel_frames_per_audio_chunk`، `num_samples_first_audio_chunk`، `num_samples_per_audio_chunk`) من القيمة الجديدة. يجب أن يكون `num_lookahead_tokens` أحد قيم `supported_num_lookahead_tokens`.

مرّر القيمة نفسها من `num_lookahead_tokens` إلى `model.generate` حتى يتطابق سياق الانتباه الأيمن المستخدم في التقدّم مع أحجام المقاطع المُنتَجة هنا؛ وإلا فإن بثّ `generate` سيُطلق استثناءً.

## Nemotron3_5AsrRNNTOutput[[transformers.Nemotron3_5AsrRNNTOutput]]

#### transformers.Nemotron3_5AsrRNNTOutput[[transformers.Nemotron3_5AsrRNNTOutput]]

```python
transformers.Nemotron3_5AsrRNNTOutput(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.nemotron3_5_asr.generation_nemotron3_5_asr.Nemotron3_5AsrRNNTDecoderCache | None = None, encoder_past_key_values: transformers.cache_utils.Cache | None = None, padding_cache: NemotronAsrStreamingEncoderCausalConvPaddingCache | None = None)
```

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

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

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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

loss (`torch.Tensor`، *اختياري*، يُعاد عند تقديم `labels`) : خسارة مُحوِّل RNN-T.

logits (`torch.Tensor` من الشكل `(batch_size, encoder_length, decoder_length, vocab_size + 1)`) : درجات الشبكة المشتركة عبر مفردات اللغة بالإضافة إلى الرمز الفارغ، لكل زوج من إطارات المُشفِّر/المُفكِّك.

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

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

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

## Nemotron3_5AsrForRNNT[[transformers.Nemotron3_5AsrForRNNT]]

#### transformers.Nemotron3_5AsrForRNNT[[transformers.Nemotron3_5AsrForRNNT]]

```python
transformers.Nemotron3_5AsrForRNNT(config: Nemotron3_5AsrConfig)
```

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

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

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

Nemotron3_5Asr مُشفِّر مع رأس 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.Nemotron3_5AsrForRNNT.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.nemotron3_5_asr.generation_nemotron3_5_asr.Nemotron3_5AsrRNNTDecoderCache | None = None, use_decoder_cache: bool | None = None, encoder_outputs: transformers.modeling_outputs.BaseModelOutputWithPooling | None = None, labels: typing.Optional[torch.Tensor] = None, num_lookahead_tokens: int | None = None, prompt_ids: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

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 (`Nemotron3_5AsrRNNTDecoderCache`، *اختياري*) : ذاكرة مؤقتة لشبكة LSTM في المُفكِّك. تُعاد استخدامها عند التنبؤات الفارغة لتخطي خطوة LSTM.

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

encoder_outputs (`tuple(torch.Tensor)`، *اختياري*) : مخرجات المُشفِّر المُحسوبة مسبقًا (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`.

prompt_ids (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : فهارس موجهات اللغة لتكييف معرف اللغة. تُنتجها المعالجة من `language`. وتُحوَّل إلى متجه واحد-ساخن مُبَثّ تستهلكه `prompt_projector`.

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

A [Nemotron3_5AsrRNNTOutput](/docs/transformers/main/ar/model_doc/nemotron3_5_asr#transformers.Nemotron3_5AsrRNNTOutput) or a tuple of `torch.Tensor` (if `return_dict=False` is passed or when `config.return_dict=False`) comprising various elements depending on the configuration (`None`) and inputs.

تتجاوز طريقة [Nemotron3_5AsrForRNNT](/docs/transformers/main/ar/model_doc/nemotron3_5_asr#transformers.Nemotron3_5AsrForRNNT) الأمامية الطريقة الخاصة `__call__`.

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

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **loss** (`torch.Tensor`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة مُحوِّل RNN-T.
- **logits** (`torch.Tensor` من الشكل `(batch_size, encoder_length, decoder_length, vocab_size + 1)`) -- درجات الشبكة المشتركة عبر مفردات اللغة بالإضافة إلى الرمز الفارغ، لكل زوج من إطارات المُشفِّر/المُفكِّك.
- **decoder_cache** (`Nemotron3_5AsrRNNTDecoderCache`، *اختياري*) -- كاش LSTM المُحدَّث للوحّاد. يُعاد استخدامه عند التنبؤات الفارغة لتخطي خطوة LSTM.
- **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, Nemotron3_5AsrForRNNT
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/nemotron-3.5-asr-streaming-0.6b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = Nemotron3_5AsrForRNNT.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"], language="en-US")
>>> outputs = model(**inputs)
```

#### generate[[transformers.Nemotron3_5AsrForRNNT.generate]]

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

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

