# Audio Flamingo 3

## نظرة عامة

Audio Flamingo 3 (AF3) هو نموذج كبير مفتوح بالكامل للغة والصوت، مصمم لفهم واستدلال قوي على الكلام والأصوات البيئية والموسيقى. يجمع AF3 بين مشفّر صوتي بنمط Whisper ونموذج لغوي سببي، وينفذ دمجًا صوتيًا-نصيًا استبداليًا في الموقع: يقوم المعالج بمحاذاة إطارات الصوت بعد التجميع مع رمز محجوز مخصص، ويستبدل النموذج فتحات الرموز تلك بتضمينات صوتية مُساقطة أثناء المرور الأمامي.

نقطة التفتيش للنموذج متاحة في: [nvidia/audio-flamingo-3-hf](https://huggingface.co/nvidia/audio-flamingo-3-hf)

أبرز النقاط:

- مشفر صوتي موحّد يغطي الكلام والأصوات والموسيقى.
- **دعم الصوت الطويل عبر التقطيع النافذ ومحاذاة ما بعد التجميع (حتى 10 دقائق كحد أقصى).** يعالج النموذج الصوت في نوافذ مدتها 30 ثانية، مع حد أقصى صارم يبلغ 20 نافذة (أي 10 دقائق إجمالاً). سيتم اقتطاع أي صوت يتجاوز مدته 10 دقائق.
- دمج حتمي يحافظ على طول التسلسل من خلال استبدال رموز المحلّلات الصوتية بتضمينات صوتية.

تمت مساهمة هذا النموذج من قِبل [Lasha Koroshinadze](https://huggingface.co/lashahub) و[Eric Bezzam](https://huggingface.co/bezzam).

### ورقة

[Audio Flamingo 3](https://huggingface.co/papers/2507.08128): تعزيز الذكاء الصوتي عبر نماذج لغوية صوتية كبيرة مفتوحة بالكامل. أ. غول، س. غوش، ج. كيم، س. كومار، ز. كونغ، س. لي، تش.-هـ. هـ. يانغ، ر. دورايسوامي، د. مانوتشا، ر. فال، ب. كاتانزارو. إنفيديا وجامعة ميريلاند. المشروع: https://research.nvidia.com/labs/adlr/AF3/

## الاستخدام

### وضع التعليم الصوتي

يدعم النموذج تعليمات صوتية-نصية، بما في ذلك التفاعلات متعددة الأدوار، حيث تتم معالجتها جميعاً على شكل دفعات.

➡️ صوت + تعليمات نصية

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Transcribe the input speech."},
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)
```

➡️ متعدد الأدوار:

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Instruction: How does the tone of female speech change throughout the audio? Choose the correct option among the options below: (A) Sad to happy (B) Happy to sad (C) Neutral to happy (D) Happy to neutral.",
            },
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
        ],
    },
    {
        "role": "assistant",
        "content": [{"type": "text", "text": "(A) Sad to happy"}],
    },
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Why do you think so?"},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)
```

➡️ نص فقط:

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What is the capital of France?"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)
```

➡️ صوت فقط:

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)
```

➡️ الاستدلال المُجمَّع!

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversations = [
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Transcribe the input speech."},
                {
                    "type": "audio",
                    "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav",
                },
            ],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
                },
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
            ],
        }
    ],
]

inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)
```

➡️ التدريب:

مرّر النصوص المستهدفة إلى `apply_transcription_request` باستخدام `transcription`. تُكتب هذه النصوص كدور المساعد، وتُعاد `labels` لحساب الخسارة.

```python
from datasets import Audio, load_dataset
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

model_id = "nvidia/audio-flamingo-3-hf"
NUM_SAMPLES = 2

processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()

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))
speech_samples = [el["array"] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]

inputs = processor.apply_transcription_request(speech_samples, transcription=text_samples)
inputs.to(model.device, dtype=model.dtype)

loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()
```

بالنسبة إلى المهام الأخرى، ضع الهدف في دور المساعد ومرّر `processor_kwargs={"output_labels": True}`.

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "How does the tone of female speech change throughout the audio?"},
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
        ],
    },
    {
        "role": "assistant",
        "content": [{"type": "text", "text": "It goes from sad to happy."}],
    },
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    return_dict=True,
    processor_kwargs={"output_labels": True},
).to(model.device, dtype=model.dtype)

loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()
```

➡️ اختصار النسخ

```python
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

inputs = processor.apply_transcription_request(audio="https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav").to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True, strip_prefix=True)

print(decoded_outputs)
```

يُدرَّب النموذج على إصدار نسخ نصية مسبقة بإطار المساعد مثل `The spoken content of the audio is "<text>".`. استخدم `strip_prefix=True` (كما هو موضح أعلاه) لإزالة جملة المساعد الثابتة والعلامات التنصيص المحيطة بها بحيث تبقى النسخة النصية فقط.

## كيف يعمل النموذج

### البنية

* **AudioFlamingo3Encoder** مستخرج ميزات ومشفّر بنمط Whisper → متوسط مجمّع عبر الزمن (خطوة 2) → LayerNorm. ينتج حالات مخفية لكل إطار بمعدل ما بعد التجميع.

* **AudioFlamingo3MultiModalProjector** شبكة عصبية متعددة الطبقات صغيرة الحجم تُحوّل ميزات المُشفِّر إلى حجم المخفي لنموذج اللغة.

* **AudioFlamingo3ForConditionalGeneration** نموذج لغوي سببي يقبل تمثيلات نصية حيث يُستبدل كل خانة رمز محدد مسبقاً للصوت، في مكانه، بتمثيل إطار صوتي. ولا يُحدث الدمج أي تغيير في طول التسلسل.

### محاذاة على مستوى المعالج

1. يتم تقسيم كل موجة خام إلى نوافذ بطول ثابت بناءً على `chunk_length` (بالثواني) و`sampling_rate` (هرتز) الخاص بمستخرج الميزات.
2. للقسم الزمني (نافذة) لكل، يحسب المعالج عدد إطارات ما بعد التجميع `post_pool_len` التي سيُخرجها المُشفِّر (بما يتوافق مع جدول التحوّل/التجميع).
3. يوسّع المعالج رمز موضع الصوت حسب إجمالي عدد الإطارات بعد التجميع عبر جميع النوافذ.
4. يستبدل النموذج لاحقًا مواضع الرموز تلك بتضمينات الصوت المُساقطة المقابلة.

## أنماط الاستخدام

### اختصار النسخ

لتعرف على كيفية استخدام التعرف التلقائي على الكلام، يمكنك تخطي كتابة التعليمات الافتراضية في كل مرة والاستدعاء `apply_transcription_request()`:

```python
inputs = processor.apply_transcription_request(audio=audio_array)
```

مرّر `prompt="Transcribe the input speech."` (أو قائمة من الأوامر للصوتيات الدفعية) لتخصيص التعليمات مع الحفاظ على معالجة موضع الصوت.

يقبل `audio` مصفوفات في الذاكرة، أو مسارات ملفات محلية، أو عناوين URL. يتم تمرير أي من معاملات المعالج (`text_kwargs`، `audio_kwargs`، إلخ)، مما يتيح لك ضبط التعبئة أو تنسيقات المصفوفات تمامًا كما تفعل عند استدعاء `processor(...)`.

## الصوت الطويل والتقسيم إلى نوافذ

**مهم: الحد الأقصى لطول الصوت هو 10 دقائق.** سيتم اقتطاع أي صوت أطول من ذلك.

* يعالج الإعداد الافتراضي نوافذ مدتها 30 ثانية بمعدل عينة 16 كيلو هرتز بصيغة أحادية.
* **يفرض المعالج حدًا أقصى صارمًا يبلغ 20 نافذة لكل عينة، مما يؤدي إلى حد أقصى قدره 10 دقائق من الصوت (20 نافذة × 30 ثانية).**
* لكل نافذة:

  * `mel_len` هو طول الميِل المُكمّل.
  * تقلّل مجموعة التحويلات الزمنية من الوقت لأن `conv_output_len = (mel_len - 1) // 2 + 1`.
  * إطارات ما بعد التجميع لكل نافذة: `post_pool_len = (conv_output_len - 2) // 2 + 1`.
  * يتم توسيع رمز الوكيل الصوتي إلى مجموع `post_pool_len` عبر جميع النوافذ.

## الحشو والانتباه والتخزين المؤقت

* **الحشو الأيسر مقابل الحشو الأيمن** عند التوليد مع تدرّج في أطوال الموجهات ضمن دفعة واحدة، يُفضَّل عادةً استخدام الحشو الأيسر. أما في التدريب، فيُشاع استخدام الحشو الأيمن؛ فآلية الدمج في AF3 لا تعتمد على نوع الحشو بحد ذاتها، لأنها تستبدل العناصر في مكانها.
* **أقنعة الانتباه** يُرجع المعالج `attention_mask` (للنص) و`input_features_mask` (للتسجيل الصوتي). يبني النموذج قناعًا داخليًا رباعي الأبعاد على محور ما قبل التجميع في المُشفِّر، مع قيمة سالب ما لا نهاية عند مواضع الحشو.
* **التخزين المؤقت** أثناء التوليد، لا يتم تمرير `input_features` و`input_features_mask` إلا في الخطوة الأولى. وتستخدم الخطوات اللاحقة المفاتيح/القيم المخزنة مؤقتًا من نموذج اللغة.

## استكشاف الأخطاء وإصلاحها

* المخرجات الفارغة أو المقطوعة عند استخدام الدفعات (Batching) استخدم التعبئة اليسرى (Left padding) للتوليد بالدفعات، وفكّ ترميز الرموز الجديدة فقط بعد طول الموجّه (prompt)، كما هو موضح في دليل البدء السريع.

## AudioFlamingo3Config[[transformers.AudioFlamingo3Config]]

#### transformers.AudioFlamingo3Config[[transformers.AudioFlamingo3Config]]

```python
transformers.AudioFlamingo3Config(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, audio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, audio_token_id: int = 151669, projector_hidden_act: str = 'gelu', projector_bias: bool = True)
```

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

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

audio_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري الصوتي.

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري النصي.

audio_token_id (`int`، *اختياري*، القيمة الافتراضية `151669`) : فهرس رمز الصوت المستخدم كعلامة مؤقتة للصوت المُدخل.

projector_hidden_act (`str`، *اختياري*، القيمة الافتراضية هي `gelu`) : دالة التنشيط المستخدمة في المُشغِّل متعدد الوسائط.

projector_bias (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام الانحياز في المُسقط متعدد الوسائط.

هذه فئة الإعدادات المخزنة لإعدادات نموذج AudioFlamingo3Model. تُستخدم لاستحداث نموذج Audioflamingo3 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ [nvidia/audio-flamingo-3-hf](https://huggingface.co/nvidia/audio-flamingo-3-hf)

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

مثال:

```python
>>> from transformers import AudioFlamingo3ForConditionalGeneration, AudioFlamingo3Config, AudioFlamingo3EncoderConfig, Qwen2Config

>>> # Initializing an AudioFlamingo3Encoder config
>>> audio_config = AudioFlamingo3EncoderConfig()

>>> # Initializing a Qwen2 config
>>> text_config = Qwen2Config()

>>> # Initializing an AudioFlamingo3 configuration
>>> configuration = AudioFlamingo3Config(audio_config, text_config)

>>> # Initializing a model from the audioflamingo3 style configuration
>>> model = AudioFlamingo3ForConditionalGeneration(configuration)

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

## AudioFlamingo3EncoderConfig[[transformers.AudioFlamingo3EncoderConfig]]

#### transformers.AudioFlamingo3EncoderConfig[[transformers.AudioFlamingo3EncoderConfig]]

```python
transformers.AudioFlamingo3EncoderConfig(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, num_mel_bins: int = 128, num_hidden_layers: int = 32, num_attention_heads: int = 20, intermediate_size: int = 5120, layerdrop: float | int = 0.0, activation_function: str = 'gelu', hidden_size: int = 1280, dropout: float | int = 0.0, attention_dropout: float | int = 0.0, activation_dropout: float | int = 0.0, initializer_range: float = 0.02, scale_embedding: bool = False, max_source_positions: int = 1500)
```

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

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

num_mel_bins (`int`، *اختياري*، القيمة الافتراضية `128`) : عدد ميزات ميل المستخدمة لكل إطار إدخال. يجب أن يتوافق مع القيمة المستخدمة في فئة `AutoFeatureExtractor`.

num_hidden_layers (`int`، *اختياري*، القيمة الافتراضية `32`) : عدد الطبقات المخفية في مُفكِّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `20`) : عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.

intermediate_size (`int`، *اختياري*، القيمة الافتراضية `5120`) : بُعد تمثيلات MLP.

layerdrop (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : احتمال LayerDrop. راجع [ورقة LayerDrop](see https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.

activation_function (`str`، *اختياري*، القيمة الافتراضية `gelu`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

hidden_size (`int`، *اختياري*، القيمة الافتراضية `1280`) : بُعد التمثيلات المخفية.

dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة جميع طبقات dropout.

attention_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) لاحتمالات الانتباه.

activation_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) للتفعيلات داخل الطبقة المتصلة بالكامل.

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

scale_embedding (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم توسيع التضمينات (embeddings) من خلال القسمة على sqrt(d_model).

max_source_positions (`int`، *اختياري*، القيمة الافتراضية 1500) : الحد الأقصى لطول التسلسل لميزات بنك مرشحات log-mel التي قد يُستخدم هذا النموذج معها.

هذه فئة الإعدادات المخزنة لإعدادات نموذج AudioFlamingo3Model. تُستخدم لاستحداث نموذج Audioflamingo3 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ [nvidia/audio-flamingo-3-hf](https://huggingface.co/nvidia/audio-flamingo-3-hf)

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

مثال:

```python
>>> from transformers import AudioFlamingo3EncoderConfig, AudioFlamingo3Encoder

>>> # Initializing an AudioFlamingo3EncoderConfig
>>> configuration = AudioFlamingo3EncoderConfig()

>>> # Initializing an AudioFlamingo3Encoder (with random weights)
>>> model = AudioFlamingo3Encoder(configuration)

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

## AudioFlamingo3Processor[[transformers.AudioFlamingo3Processor]]

#### transformers.AudioFlamingo3Processor[[transformers.AudioFlamingo3Processor]]

```python
transformers.AudioFlamingo3Processor(feature_extractor, tokenizer, chat_template = None, audio_token = '<sound>', default_transcription_prompt = 'Transcribe the input speech.', max_audio_len = 600)
```

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

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

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

tokenizer (`Qwen2Tokenizer`) : المُجزِّئ مدخل إلزامي.

chat_template (`str`) : قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتحويم.

audio_token (`Optional[str]`، *اختياري*، القيمة الافتراضية `"<sound>"`) : الرمز الخاص المستخدم لتمثيل مدخلات الصوت في قالب المحادثة.

default_transcription_prompt (`str`، *اختياري*، القيمة الافتراضية `"Transcribe the input speech."`) : الموجه الافتراضي المستخدم لمهام النسخ عند تطبيق طلبات النسخ.

max_audio_len (`int`، *اختياري*، القيمة الافتراضية 600) : الحد الأقصى لطول تسلسلات الصوت بالثواني. سيتم اقتطاع أي صوت أطول من هذا الحد.

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

يوفر [AudioFlamingo3Processor](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3Processor) جميع وظائف [WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor) و[Qwen2Tokenizer](/docs/transformers/main/ar/model_doc/qwen2#transformers.Qwen2Tokenizer). راجع [~WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor) و[~Qwen2Tokenizer](/docs/transformers/main/ar/model_doc/qwen2#transformers.Qwen2Tokenizer) لمزيد من المعلومات.

#### __call__[[transformers.AudioFlamingo3Processor.__call__]]

```python
__call__(text: str | list[str], audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, output_labels: bool | None = False, **kwargs: *<class 'transformers.models.audioflamingo3.processing_audioflamingo3.AudioFlamingo3ProcessorKwargs'>)
```

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

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

text (`Union[str, list[str]]`) : التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُجزَّأ مسبقًا). إذا مررت مدخلات مُجزَّأة مسبقًا، فاضبط `is_split_into_words=True` لتجنب الغموض مع المدخلات المُجمَّعة في دفعات.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`، *اختياري*) : الصوت أو مجموعة الأصوات التي يجب تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.

output_labels (`bool`، *اختياري*، الافتراضي=False) : ما إذا كان يجب إرجاع التسميات للتدريب.

return_tensors (`str` أو [TensorType](/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)

قاموس يحتوي على النص المُرمَّز (`input_ids`، `attention_mask`) وميزات الصوت (`input_features`، `input_features_mask`).

## AudioFlamingo3Encoder[[transformers.AudioFlamingo3Encoder]]

#### transformers.AudioFlamingo3Encoder[[transformers.AudioFlamingo3Encoder]]

```python
transformers.AudioFlamingo3Encoder(config: AudioFlamingo3EncoderConfig)
```

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

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

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

نموذج الصوت من AudioFlamingo3 دون أي رأس أو إسقاط في الأعلى.

يرث هذا النموذج من [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.AudioFlamingo3Encoder.forward]]

```python
forward(input_features: Tensor, input_features_mask: typing.Optional[torch.Tensor] = None, **kwargs)
```

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

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

input_features (`torch.Tensor` من الشكل `(batch_size, feature_size, sequence_length)`) : ميزات Log-Mel المستخرجة من الصوت الخام. استخدم المعالج/مستخرج الميزات لحساب هذه الميزات من مدخلات الموجة الصوتية وإضافة الحشو إليها.

input_features_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس الميزات المعبأة. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.

## AudioFlamingo3Model[[transformers.AudioFlamingo3Model]]

#### transformers.AudioFlamingo3Model[[transformers.AudioFlamingo3Model]]

```python
transformers.AudioFlamingo3Model(config: AudioFlamingo3Config)
```

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

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

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

نموذج AudioFlamingo3 (مشفر Whisper المُحسَّن، مُسقط متعدد الوسائط، نموذج اللغة Qwen2)، دون رأس نمذجة اللغة.

يرث هذا النموذج من [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.AudioFlamingo3Model.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, input_features: typing.Optional[torch.Tensor] = None, input_features_mask: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

input_features (`torch.Tensor` من الشكل `(batch_size, sequence_length, feature_dim)`، *اختياري*) : المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام [WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor). راجع [WhisperFeatureExtractor.__call__()](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor.__call__) للتفاصيل (يستخدم [AudioFlamingo3Processor](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3Processor) [WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor) لمعالجة الملفات الصوتية).

input_features_mask (`torch.Tensor` من الشكل `(batch_size, feature_sequence_length)`) : قناع لتجنب تنفيذ الانتباه على فهارس الحشو.

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_utils.Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بتمرير كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

**يعيد:** `AudioFlamingo3ModelOutputWithPast` أو `tuple(torch.Tensor)`

`AudioFlamingo3ModelOutputWithPast` أو مجموعة مرتبة من `torch.Tensor` (في حال تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعدادات ([AudioFlamingo3Config](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3Config)) والمدخلات.

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

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

- **audio_hidden_states** (`torch.Tensor`، *اختياري*) -- حالات مخفية صوتية مُسقطَة.

## AudioFlamingo3ForConditionalGeneration[[transformers.AudioFlamingo3ForConditionalGeneration]]

#### transformers.AudioFlamingo3ForConditionalGeneration[[transformers.AudioFlamingo3ForConditionalGeneration]]

```python
transformers.AudioFlamingo3ForConditionalGeneration(config: AudioFlamingo3Config)
```

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

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

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

نموذج AudioFlamingo3 الذي يتكون من مشفّر Whisper مُحسَّن، ومشغّل متعدد الوسائط، ونموذج لغة Qwen2.

يرث هذا النموذج من [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.AudioFlamingo3ForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, input_features: typing.Optional[torch.Tensor] = None, input_features_mask: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

input_features (`torch.Tensor` من الشكل `(batch_size, sequence_length, feature_dim)`، *اختياري*) : المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام [WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor). راجع [WhisperFeatureExtractor.__call__()](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor.__call__) للتفاصيل (يستخدم [AudioFlamingo3Processor](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3Processor) [WhisperFeatureExtractor](/docs/transformers/main/ar/model_doc/whisper#transformers.WhisperFeatureExtractor) لمعالجة الملفات الصوتية).

input_features_mask (`torch.Tensor` من الشكل `(batch_size, feature_sequence_length)`) : قناع لتجنب تنفيذ الانتباه على فهارس الحشو.

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_utils.Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بتمرير كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

labels (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسميات لحساب خسارة نمذجة اللغة المقنّعة.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

logits_to_keep (`Union[int, torch.Tensor]`، *اختياري*، القيمة الافتراضية `0`) : إذا كان `int`، يتم حساب القيم اللوجستية (logits) لآخر `logits_to_keep` رموز. إذا كانت `0`، يتم حساب القيم اللوجستية لجميع `input_ids` (حالة خاصة). لا تكون قيم اللوجستيات للرمز الأخير فقط ضرورية للتوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة، وهو ما يصبح ذا أهمية كبيرة للترتيبات الطويلة أو لحجم المفردات الكبير. إذا كان `torch.Tensor`، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول الترتيب. وهذا مفيد عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول الترتيب).

**يعيد:** `AudioFlamingo3CausalLMOutputWithPast` أو `tuple(torch.Tensor)`

`AudioFlamingo3CausalLMOutputWithPast` أو مجموعة مرتبة من `torch.Tensor` (في حال تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتألف من عناصر مختلفة اعتماداً على الإعدادات ([AudioFlamingo3Config](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3Config)) والمدخلات.

تُعيد طريقة [AudioFlamingo3ForConditionalGeneration](/docs/transformers/main/ar/model_doc/audioflamingo3#transformers.AudioFlamingo3ForConditionalGeneration) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة نمذجة اللغة (لتوقع الرمز التالي).
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.vocab_size)`) -- درجات التنبؤ لرأس نمذجة اللغة.
- **past_key_values** (`Cache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند تعيين `config.use_cache=True`) -- هو كائن من نوع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache).
- **hidden_states** (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة (Tuple) من `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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **audio_hidden_states** (`torch.Tensor`، *اختياري*) -- حالات المخفية لمشفّر الصوت بعد الإسقاط.

مثال:

```python
>>> from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor

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

#### get_audio_features[[transformers.AudioFlamingo3ForConditionalGeneration.get_audio_features]]

```python
get_audio_features(input_features, input_features_mask, **kwargs)
```

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

