# Qwen3 ASR

## نظرة عامة

نموذج Qwen3 ASR هو نموذج للتعرف التلقائي على الكلام من فريق Qwen التابع لشركة Alibaba، يجمع بين مُشفِّر صوتي بنمط Whisper ومُفكِّك نموذج لغة Qwen3 لتحويل الكلام إلى نص. يدعم النموذج الكشف التلقائي عن اللغة والنسخ متعدد اللغات.

يتضمن النموذج أيضًا نموذج محاذاة إجبارية. يمكن استخدامه لتزويد نص مسجل مسبقًا وصوته بالطوابع الزمنية. يستخدم هذا النموذج نفس نموذج ترميز الصوت مع رأس تصنيف يتنبأ بطول الكلمة. يمكن استخدام هذا النموذج مع النص الناتج عن أي نموذج لتعرف الكلام الآلي (انظر المثال أدناه باستخدام Parakeet CTC).

النقاط المحفوظة المتاحة:
- [Qwen/Qwen3-ASR-1.7B-hf](https://huggingface.co/Qwen/Qwen3-ASR-1.7B-hf)
- [Qwen/Qwen3-ASR-0.6B-hf](https://huggingface.co/Qwen/Qwen3-ASR-0.6B-hf)
- [Qwen/Qwen3-ForcedAligner-0.6B-hf](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B-hf)

اللغات المدعومة هي:
- `Qwen3-ASR-1.7B` و`Qwen3-ASR-0.6B`: الصينية (zh)، الإنجليزية (en)، الكانتونية (yue)، العربية (ar)، الألمانية (de)، الفرنسية (fr)، الإسبانية (es)، البرتغالية (pt)، الإندونيسية (id)، الإيطالية (it)، الكورية (ko)، الروسية (ru)، التايلاندية (th)، الفيتنامية (vi)، اليابانية (ja)، التركية (tr)، الهندية (hi)، الملايوية (ms)، الهولندية (nl)، السويدية (sv)، الدنماركية (da)، الفنلندية (fi)، البولندية (pl)، التشيكية (cs)، الفلبينية (fil)، الفارسية (fa)، اليونانية (el)، المجرية (hu)، المقدونية (mk)، الرومانية (ro).
- `Qwen3-ForcedAligner-0.6B`: الصينية (zh)، الإنجليزية (en)، الكانتونية (yue)، الفرنسية (fr)، الألمانية (de)، الإيطالية (it)، اليابانية (ja)، الكورية (ko)، البرتغالية (pt)، الروسية (ru)، الإسبانية (es).

راجع المستودع الأصلي في [QwenLM/Qwen3-ASR](https://github.com/QwenLM/Qwen3-ASR) و[التقرير](https://huggingface.co/papers/2601.21337) لمزيد من التفاصيل.

تمت مساهمة هذا النموذج من قِبَل [إريك بيزام](https://huggingface.co/bezzam) و[محمد طارق](https://huggingface.co/mbtariq82).

## الاستخدام

### نسخة بسيطة

أبسط طريقة لتحويل الصوت إلى نص هي استخدام `apply_transcription_request`، حيث يتولى تنسيق قالب المحادثة نيابةً عنك، فهو في الواقع غلاف ميسّر لـ `apply_chat_template` (انظر [قالب المحادثة](#chat-template) أدناه).

```python
from transformers import AutoProcessor, AutoModelForMultimodalLM

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
print(f"Model loaded on {model.device} with dtype {model.dtype}")

inputs = processor.apply_transcription_request(
    audio="https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
).to(model.device, model.dtype)

output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]

# Raw output includes language tag and <asr_text> marker
raw = processor.decode(generated_ids)[0]
print(f"Raw: {raw}")

# Parsed output: dict with "language" and "transcription"
parsed = processor.decode(generated_ids, return_format="parsed")[0]
print(f"Parsed: {parsed}")

# Extract only the transcription text
transcription = processor.decode(generated_ids, return_format="transcription_only")[0]
print(f"Transcription: {transcription}")

"""
Raw: language English<asr_text>Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.
Parsed: {'language': 'English', 'transcription': 'Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'}
Transcription: Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.
"""
```

### فرض اللغة

يمكنك فرض لغة النسخ كما هو موضح أدناه.

```python
from transformers import AutoProcessor, AutoModelForMultimodalLM

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

# Without language hint (auto-detect)
inputs = processor.apply_transcription_request(
    audio="https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(f"Auto-detect: {processor.decode(generated_ids, return_format='transcription_only')[0]}")

# With forced language
inputs = processor.apply_transcription_request(
    audio="https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
    language="Chinese",  # or language code "zh"
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(f"Forced:      {processor.decode(generated_ids, return_format='transcription_only')[0]}")
```

### السياق / الكلمات الساخنة

يمكنك تمرير سياق حر (مثل مصطلحات خاصة بالمجال، أو أسماء، أو معلومات خلفية) عبر `prompt` لتوجيه عملية النسخ.

```python
from transformers import AutoProcessor, AutoModelForMultimodalLM

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")

inputs = processor.apply_transcription_request(
    audio="https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
    prompt="Vocabulary: Quilter, apostle, gospel.",
    language="English",
).to(model.device, model.dtype)

output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(processor.decode(generated_ids, return_format="transcription_only")[0])
```

### الاستدلال الدُفعي

يمكن إجراء الاستدلال الدُفعي (Batch inference) عن طريق تمرير قائمة من المقاطع الصوتية، وقائمة من اللغات و/أو التلميحات (prompts) إذا تم توفيرها.

```python
from transformers import AutoProcessor, AutoModelForMultimodalLM

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
audio = [
    "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
    "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
]

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

inputs = processor.apply_transcription_request(
    audio,
    prompt=["Vocabulary: Quilter, apostle, gospel.", None],
    language=[None, "zh"],  # language codes ("zh") and full names ("Chinese") are both accepted
).to(model.device, model.dtype)

output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
transcriptions = processor.decode(generated_ids, return_format="transcription_only")

for i, text in enumerate(transcriptions):
    print(f"Audio {i + 1}: {text}")
```

### قالب المحادثة

يقبل Qwen3 ASR أيضًا مدخلات قالب المحادثة. الاستخدام [الآنف الذكر](#simple-transcription) لـ `apply_transcription_request` هو غلاف ميسّر لـ `apply_chat_template`.

يمكن إجبار اللغة من خلال قالب المحادثة عن طريق *تعبئة مسبقة* لجولة المساعد باستخدام `language <NAME><asr_text>` مع تمرير `continue_final_message=True`، وهو ما يقوم به `apply_transcription_request` في الخلفية. لاحظ أنه عند إجبار اللغة، يجب تعيين تعبئة مسبقة لجميع المقاطع الصوتية في الدفعة (كما هو موضح أدناه).

```python
from transformers import AutoProcessor, Qwen3ASRForConditionalGeneration

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3ASRForConditionalGeneration.from_pretrained(model_id, device_map="auto")

chat_template = [
    [
        # Context/hotwords as system message
        {"role": "system", "content": [{"type": "text", "text": "Vocabulary: Quilter, apostle, gospel."}]},
        {
            "role": "user",
            "content": [
                {
                    "type": "audio",
                    "path": "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
                },
            ],
        },
        # empty prefill since forcing language in the other sample
        {"role": "assistant", "content": [{"type": "text", "text": ""}]},
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "audio",
                    "path": "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
                },
            ],
        },
        {"role": "assistant", "content": [{"type": "text", "text": "language Chinese<asr_text>"}]},
    ],
]

inputs = processor.apply_chat_template(
    chat_template, tokenize=True, return_dict=True, continue_final_message=True,
).to(model.device, model.dtype)

output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
transcriptions = processor.decode(generated_ids, return_format="transcription_only")
for text in transcriptions:
    print(text)
```

### التدريب

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

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

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
NUM_SAMPLES = 2

processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3ASRForConditionalGeneration.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, language="en", transcription=text_samples)
inputs.to(model.device, dtype=model.dtype)

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

### المحاذاة الإجبارية (الطوابع الزمنية على مستوى الكلمة)

استخدم `Qwen3ASRForTokenClassification` للحصول على طوابع زمنية على مستوى الكلمة من النص. ابدأ بتحويل الكلام إلى نص باستخدام نموذج ASR، ثم قم بمواءمة النص مع المحاذاة الإجبارية.

اللغات المدعومة هي: الصينية (zh)، الإنجليزية (en)، الكانتونية (yue)، الفرنسية (fr)، الألمانية (de)، الإيطالية (it)، اليابانية (ja)، الكورية (ko)، البرتغالية (pt)، الروسية (ru)، الإسبانية (es).

يتطلب اليابانية مكتبة `nagisa`، بينما تتطلب الكورية مكتبة `soynlp`:
```
pip install nagisa soynlp
```

#### مع Qwen3 ASR

```python
import torch
from transformers import AutoProcessor, AutoModelForMultimodalLM, AutoModelForTokenClassification

asr_model_id = "Qwen/Qwen3-ASR-0.6B-hf"
aligner_model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"

asr_processor = AutoProcessor.from_pretrained(asr_model_id)
asr_model = AutoModelForMultimodalLM.from_pretrained(asr_model_id, device_map="auto")

aligner_processor = AutoProcessor.from_pretrained(aligner_model_id)
aligner_model = AutoModelForTokenClassification.from_pretrained(
    aligner_model_id, dtype=torch.bfloat16, device_map="auto"
)

audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"

# Step 1: Transcribe
inputs = asr_processor.apply_transcription_request(audio=audio_url)
inputs = inputs.to(asr_model.device, asr_model.dtype)
output_ids = asr_model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
parsed = asr_processor.decode(generated_ids, return_format="parsed")[0]
transcript = parsed["transcription"]
language = parsed["language"] or "English"

# Step 2: Prepare alignment inputs
aligner_inputs, word_lists = aligner_processor.prepare_forced_aligner_inputs(
    audio=audio_url, transcript=transcript, language=language,
)
aligner_inputs = aligner_inputs.to(aligner_model.device, aligner_model.dtype)

# Step 3: Run forced aligner
with torch.inference_mode():
    outputs = aligner_model(**aligner_inputs)

# Step 4: Decode timestamps
timestamps = aligner_processor.decode_forced_alignment(
    logits=outputs.logits,
    input_ids=aligner_inputs["input_ids"],
    word_lists=word_lists,
    timestamp_token_id=aligner_model.config.timestamp_token_id,
)[0]

for item in timestamps:
    print(f"{item['text']:<20} {item['start_time']:>8.3f}s → {item['end_time']:>8.3f}s")

"""
Word                  Start (s)    End (s)
------------------------------------------
Mr                        0.560      0.800
Quilter                   0.800      1.280
is                        1.280      1.440
the                       1.440      1.520
apostle                   1.520      2.080
...
"""
```

#### مع نموذج ASR آخر

يعتمد المحاذاة الإجبارية على النموذج، مما يعني أنه يمكن تقديم النصوص المحوّلة من أي نظام لتحويل الكلام إلى نص. أدناه مثال على الاستدلال الدُفعي باستخدام [NVIDIA Parakeet CTC](https://huggingface.co/nvidia/parakeet-ctc-1.1b) للتحويل.

```python
import torch
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor, AutoModelForTokenClassification

parakeet_processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-1.1b")
parakeet_model = AutoModelForCTC.from_pretrained(
    "nvidia/parakeet-ctc-1.1b", dtype="auto", device_map="auto",
)

aligner_model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"
aligner_processor = AutoProcessor.from_pretrained(aligner_model_id)
aligner_model = AutoModelForTokenClassification.from_pretrained(
    aligner_model_id, dtype=torch.bfloat16, device_map="auto",
)

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=parakeet_processor.feature_extractor.sampling_rate))
audio_arrays = [ds[i]["audio"]["array"] for i in range(3)]
sr = ds[0]["audio"]["sampling_rate"]

# Batch transcribe with Parakeet
inputs = parakeet_processor(audio_arrays, sampling_rate=sr, return_tensors="pt", padding=True).to(
    parakeet_model.device, dtype=parakeet_model.dtype
)
with torch.inference_mode():
    outputs = parakeet_model.generate(**inputs)
transcripts = parakeet_processor.decode(outputs)

# Batch align with Qwen3 Forced Aligner
aligner_inputs, word_lists = aligner_processor.prepare_forced_aligner_inputs(
    audio=audio_arrays, transcript=transcripts, language="English",
)
aligner_inputs = aligner_inputs.to(aligner_model.device, aligner_model.dtype)

with torch.inference_mode():
    aligner_outputs = aligner_model(**aligner_inputs)

batch_timestamps = aligner_processor.decode_forced_alignment(
    logits=aligner_outputs.logits,
    input_ids=aligner_inputs["input_ids"],
    word_lists=word_lists,
    timestamp_token_id=aligner_model.config.timestamp_token_id,
)

for i, (transcript, timestamps) in enumerate(zip(transcripts, batch_timestamps)):
    print(f"\n[Sample {i}] {transcript}")
    for item in timestamps[:5]:
        print(f"  {item['text']:<20} {item['start_time']:>8.3f}s → {item['end_time']:>8.3f}s")
    if len(timestamps) > 5:
        print(f"  ... ({len(timestamps) - 5} more words)")
```

### Torch compile

يدعم كلٌّ من نموذج ASR ونموذج المحاذاة القسرية `torch.compile` للحصول على استنتاج أسرع. يُعد نموذج المحاذاة القسرية مناسباً بشكل خاص للتجميع لأنه ينفّذ تمريرة أمامية واحدة (بدون فك تشفير ذاتي التوليد). وهذا يجعله مثالياً لـ**توقيت الصوتيات على نطاق واسع**: قم بالنسخ النصي باستخدام أي نموذج ASR، ثم قم بالمحاذاة الدفعية باستخدام نموذج المحاذاة القسرية المُجمَّع لتحقيق أقصى معدل إنتاجية.

#### محاذاة إجبارية

على بطاقة A100، لاحظنا تسريعًا بنسبة ~1.2 لحجم دفعة يساوي 4 ([script](https://gist.github.com/ebezzam/3e0551708631784aeb684e0e838299f3#file-benchmark_compile_forced_alignment-py)).

```python
import torch
from transformers import AutoProcessor, AutoModelForTokenClassification

model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"
num_warmup = 5
batch_size = 4

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTokenClassification.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda")

# Prepare a batch of 4 samples
audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"
transcript = "Mr. Quilter is the apostle of the middle classes."

aligner_inputs, word_lists = processor.prepare_forced_aligner_inputs(
    audio=[audio_url] * batch_size,
    transcript=[transcript] * batch_size,
    language=["English"] * batch_size,
)
aligner_inputs = aligner_inputs.to(model.device, torch.bfloat16)

# Warm-up and apply model
model = torch.compile(model)
with torch.no_grad():
    for _ in range(num_warmup):
        _ = model(**aligner_inputs)
with torch.no_grad():
    _ = model(**aligner_inputs)
```

#### نموذج ASR (توليد)

في حالة النسخ التلقائي (autoregressive transcription)، يُسرّع `torch.compile` عمليات المرور الأمامي لكل رمز داخل إعداد `generate` عند توفير كائن `CompileConfig`.

على بطاقة A100، لاحظنا تسريعًا بنسبة ~3.8 لحجم دفعة يساوي 4 ([script](https://gist.github.com/ebezzam/3e0551708631784aeb684e0e838299f3#file-benchmark_compile_generate-py)).

```python
import torch
from transformers import AutoProcessor, AutoModelForMultimodalLM, CompileConfig

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
num_warmup = 3
max_new_tokens = 256

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda").eval()

audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"
inputs = processor.apply_transcription_request(
    audio=[audio_url] * 4,  # batch of 4
).to(model.device, torch.bfloat16)

compile_config = CompileConfig()

# Warmup
with torch.inference_mode():
    for _ in range(num_warmup):
        _ = model.generate(
            **inputs, max_new_tokens=max_new_tokens, do_sample=False,
            cache_implementation="static", compile_config=compile_config,
        )
torch.cuda.synchronize()

# Apply model
with torch.inference_mode():
    output_ids = model.generate(
        **inputs, max_new_tokens=max_new_tokens, do_sample=False,
        cache_implementation="static", compile_config=compile_config,
    )
generated_ids = output_ids[:, inputs["input_ids"].shape[1] :]
text_compiled = processor.decode(generated_ids, return_format="transcription_only")[0]
print(f"Output:  {text_compiled}")
```

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

```python
from transformers import pipeline

model_id = "Qwen/Qwen3-ASR-1.7B-hf"
pipe = pipeline("any-to-any", model=model_id, device_map="auto")

chat_template = [
    {
        "role": "user",
        "content": [
            {
                "type": "audio",
                "path": "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
            },
        ],
    }
]
outputs = pipe(text=chat_template, return_full_text=False)
raw_text = outputs[0]["generated_text"]
print(f"Raw: {raw_text}")

# Use processor helper to extract transcription
transcription = pipe.processor.extract_transcription(raw_text)
print(f"Transcription: {transcription}")
```

## Qwen3ASRConfig[[transformers.Qwen3ASRConfig]]

#### transformers.Qwen3ASRConfig[[transformers.Qwen3ASRConfig]]

```python
transformers.Qwen3ASRConfig(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 = 151676, timestamp_token_id: int = 151705, pad_token_id: int = 151645, eos_token_id: list[int] | tuple[int, ...] | int = (151643, 151645), initializer_range: float = 0.02, tie_word_embeddings: bool = True, token_classification_bias: bool = False)
```

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

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

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

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

audio_token_id (*int*، *optional*، القيمة الافتراضية 151676) : معرّف رمز الصوت (audio token id) المستخدم لتشفير موجه الصوت (audio prompt).

timestamp_token_id (*int*، *اختياري*، القيمة الافتراضية 151705) : معرّف الرمز (Token ID) لعلامة `&amp;lt;timestamp>` في مفردات مُجزّئ الرموز (tokenizer). تُحدّد هذه العلامات حدود الكلمات في تسلسل الإدخال الخاص بالمحاذاة الإجبارية (forced-alignment).

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

eos_token_id (*Union[list[int], tuple[int, ...], int]*، *اختياري*، القيمة الافتراضية *(151643, 151645)*) : معرّف الرمز المستخدم لنهاية البث في المفردات.

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

tie_word_embeddings (*bool*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب ربط ترميزات الأوزان وفقًا لخريطة *tied_weights_keys* الخاصة بالنموذج.

token_classification_bias (*bool*، *اختياري*، القيمة الافتراضية False) : ما إذا كان يجب أن تحتوي رأس تصنيف الرموز للمحاذاة القسرية على حدّ (bias term).

هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3ASRModel. تُستخدم لاستحداث نموذج Qwen3 Asr وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [Qwen/Qwen3-ASR-1.7B-hf](https://huggingface.co/Qwen/Qwen3-ASR-1.7B-hf)

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

مثال:

```python
>>> from transformers import Qwen3ASRForConditionalGeneration, Qwen3ASRConfig

>>> # Initializing a Qwen3ASR style configuration
>>> configuration = Qwen3ASRConfig()

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

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

## Qwen3ASREncoderConfig[[transformers.Qwen3ASREncoderConfig]]

#### transformers.Qwen3ASREncoderConfig[[transformers.Qwen3ASREncoderConfig]]

```python
transformers.Qwen3ASREncoderConfig(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, encoder_layers: int = 24, encoder_attention_heads: int = 16, encoder_ffn_dim: int = 4096, d_model: int = 1024, dropout: float | int = 0.0, attention_dropout: float | int = 0.0, activation_function: str = 'gelu', activation_dropout: float | int = 0.0, scale_embedding: bool = False, initializer_range: float = 0.02, n_window: int = 50, output_dim: int = 3584, n_window_infer: int = 800, downsample_hidden_size: int = 480, max_position_embeddings: int = 13)
```

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

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

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

encoder_layers (*int*، *اختياري*، القيمة الافتراضية *24*) : عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـ *num_layers* إذا لم يتم ضبطه.

encoder_attention_heads (*int*، *optional*، القيمة الافتراضية *16*) : عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer.

encoder_ffn_dim (*int*، *اختياري*، القيمة الافتراضية *4096*) : بُعد طبقة "الوسيطة" (التي تُسمّى غالبًا طبقة التغذية الأمامية) في المُشفِّر.

d_model (*int*، *اختياري*، القيمة الافتراضية *1024*) : حجم طبقات المُشفِّر وطبقة المُجمِّع.

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

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

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

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

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

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

n_window (*int*، *اختياري*، القيمة الافتراضية 50) : نصف عدد إطارات mel في كتلة مشفّر واحدة. تحتوي كل كتلة يعالجها مكدس الالتفاف على `2 * n_window` إطار mel (ثانية واحدة من الصوت عند 16 كيلو هرتز مع خطوة 10 مللي ثانية).

output_dim (*int*، *optional*، القيمة الافتراضية 3584) : بُعد المخرجات.

n_window_infer (*int*، *اختياري*، القيمة الافتراضية 800) : عدد إطارات mel من الصوت التي يمتد عليها كل نافذة انتباه. يجب أن يكون مضاعفاً لـ `n_window * 2` حتى تتطابق نوافذ الانتباه مع مقاطع المُشفِّر.

downsample_hidden_size (*int*، *optional*، القيمة الافتراضية 480) : حجم الطبقات المخفية في مكدس تقليل حجم الالتفاف.

max_position_embeddings (*int*، *اختياري*، القيمة الافتراضية *13*) : أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3ASRModel. تُستخدم لاستحداث نموذج Qwen3 Asr وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [Qwen/Qwen3-ASR-1.7B-hf](https://huggingface.co/Qwen/Qwen3-ASR-1.7B-hf)

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

## Qwen3ASRFeatureExtractor[[transformers.Qwen3ASRFeatureExtractor]]

#### transformers.Qwen3ASRFeatureExtractor[[transformers.Qwen3ASRFeatureExtractor]]

```python
transformers.Qwen3ASRFeatureExtractor(feature_size = 128, sampling_rate = 16000, hop_length = 160, chunk_length = 30, n_fft = 400, padding_value = 0.0, dither = 0.0, return_attention_mask = True, n_window = 50, min_length = 8000, **kwargs)
```

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

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

feature_size (*int*، *optional*، القيمة الافتراضية 128) : عدد بنوك مرشحات ميل.

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

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

chunk_length (*int*، *اختياري*، القيمة الافتراضية 30) : الحد الأقصى لطول الصوت (بالثواني) المستخدم لقص/تعبئة الصوت عند `padding="max_length"`.

n_fft (*int*، *اختياري*، القيمة الافتراضية 400) : حجم تحويل فورييه.

padding_value (*float*، *optional*، القيمة الافتراضية 0.0) : قيمة الحشو المستخدمة لحشو الصوت الخام.

dither (*float*، *اختياري*، القيمة الافتراضية 0.0) : إذا كانت القيمة غير صفرية، يضيف ضوضاء غاوسية (*std = dither*) إلى كل إطار STFT.

return_attention_mask (*bool*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب إرجاع قناع الانتباه (attention mask) المقابل لإطارات الميّل (mel) المُكمّلة.

n_window (*int*، *اختياري*، القيمة الافتراضية 50) : نصف حجم كتلة إطار الميّل (mel-frame) المستخدم للتوسيد. يتم توسيد محور الزمن في الميّل اللوغاريتمي (log-mel) من اليمين إلى مضاعف لـ `2 * n_window`.

min_length (*int*، *اختياري*، القيمة الافتراضية 8000) : الحد الأدنى لعدد العينات لكل مقطع صوتي. تُضاف أصفار في نهاية المقاطع الأقصر من هذا الحد، بما يتوافق مع سلوك مكتبة Qwen3-ASR الأصلية.

ينشئ مستخرج ميزات Qwen3 ASR.

يستخرج 128 ميزة لوج-ميل من الكلام الخام، ثم يملأ محور الزمن في الميزات من الجهة اليمنى حتى يصبح مضاعفاً لـ `2 * n_window`.

#### __call__[[transformers.Qwen3ASRFeatureExtractor.__call__]]

```python
__call__(raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]], truncation: bool = False, pad_to_multiple_of: int | None = None, return_tensors: str | None = 'pt', return_attention_mask: bool | None = None, padding: str | None = 'max_length', max_length: int | None = None, sampling_rate: int | None = None, n_window: int | None = None, device: str | None = 'cpu', **kwargs)
```

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

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

raw_speech (*np.ndarray*، *list[float]*، *list[np.ndarray]*، *list[list[float]]*) : التسلسل أو الدفعة من التسلسلات التي سيتم ملؤها. صوت أحادي القناة فقط.

pad_to_multiple_of (*int*، *اختياري*) : إذا تم ضبطه، يُضيف حشوة إلى الصوت الخام ليصبح مضاعفاً لهذه القيمة (بالعينات). وهو منفصل عن `n_window`، الذي يُطبَّق على محور إطار الميّل.

n_window (*int*, *optional*) : تجاوز قيمة `n_window` الخاصة بالكيان في هذه الاستدعاء. يتم ملء محور mel ليصبح مضاعفاً لـ `2 * n_window`. اضبط القيمة على `0` لتخطي ملء محور mel بالكامل.

device (*str*، *اختياري*، القيمة الافتراضية *"cpu"*) : الجهاز المستخدم لحساب طيف اللوغ-ميل.

جهّز ميزات log-mel من تسلسل صوتي واحد أو عدة تسلسلات.

## Qwen3ASRProcessor[[transformers.Qwen3ASRProcessor]]

#### transformers.Qwen3ASRProcessor[[transformers.Qwen3ASRProcessor]]

```python
transformers.Qwen3ASRProcessor(feature_extractor = None, tokenizer = None, chat_template = None, timestamp_segment_time: float = 80)
```

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

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

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

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

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

timestamp_segment_time (`float`، *اختياري*) : عدد الميلي ثانية لكل فئة طابع زمني. القيمة الافتراضية هي 80 ميلي ثانية.

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

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

#### __call__[[transformers.Qwen3ASRProcessor.__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']], output_labels: bool | None = False, **kwargs: *<class 'transformers.models.qwen3_asr.processing_qwen3_asr.Qwen3ASRProcessorKwargs'>)
```

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

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

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

#### apply_transcription_request[[transformers.Qwen3ASRProcessor.apply_transcription_request]]

```python
apply_transcription_request(audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], list[typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]]], language: str | list[str] | None = None, prompt: str | list[str] | None = None, transcription: str | list[str] | None = None, tokenize: bool = True, **kwargs: *<class 'transformers.models.qwen3_asr.processing_qwen3_asr.Qwen3ASRProcessorKwargs'>)
```

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

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

audio (*AudioInput* أو *list[AudioInput]*) : الصوت المراد تحويله إلى نص. يمكن أن يكون نص عنوان URL، أو مسارًا محليًا، أو مصفوفة numpy، أو قائمة من هذه العناصر.

language (*str* أو *list[str]*، *اختياري*) : اللغة أو اللغات التي سيتم فرضها للنسخ. يقبل الأسماء الكاملة (مثل `"English"`، `"Chinese"`) أو رموز ISO (مثل `"en"`، `"zh"`). يجب أن تكون القائمة بنفس طول دفعة الصوت. تبعًا للتنفيذ الأصلي، يتم فرض اللغة عن طريق إضافة `language &amp;lt;NAME>&amp;lt;asr_text>` بعد موجه التوليد، بحيث يولّد النموذج نص النسخ فقط. عند `None`، يقوم النموذج باكتشاف اللغة تلقائيًا ويخرج `language &amp;lt;NAME>&amp;lt;asr_text>...` بنفسه.

prompt (*str* أو *list[str]*، *اختياري*) : السياق/الكلمات الساخنة التي يجب تضمينها كتلميح للنظام، مثل الكلمات أو العبارات المتخصصة في مجال معين لميلاد عملية النسخ نحوها. يجب أن تكون القائمة بنفس طول دفعة الصوت. عند *None*، يُترك تلميح النظام فارغًا.

transcription (*str* أو *list[str]*، *اختياري*) : النص(نصوص) المستهدف(ة) للتدريب، نص واحد لكل ملف صوتي. عند تقديمه، يُكتب كل نص كدور المساعد وتُعاد *labels* (انظر *output_labels* في [*~Qwen3ASRProcessor.__call__*]). عند وجود *language*، يُضاف بادئة `language &amp;lt;NAME>&amp;lt;asr_text>` إلى النص ليتطابق مع صيغة إخراج النموذج. في حال عدم وجوده، يُكتب النص كما هو، لذا يجب أن يكون بالفعل في تلك الصيغة للحفاظ على السلوك المُدرَّب مسبقًا.

tokenize (*bool*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان سيتم ترميز الأوامر ومعالجة الصوت. إذا كانت القيمة *False*، فلن يتم تحميل الصوت وستُعاد الأوامر كنصوص مع علامات موضع الصوت غير الموسّعة. تمريرها مع الصوت إلى المعالج، *processor(text=prompts, audio=audio)*، يعطي نفس المخرجات كما في حالة *tokenize=True*.

- ****kwargs** : حُجج إضافية تُمرَّر إلى [*~Qwen3ASRProcessor.apply_chat_template*]. يجب تمرير حُجج المعالج (مثل *text_kwargs*، *audio_kwargs*، ...) على شكل *processor_kwargs=&amp;lcub;...}*.

**يعيد:** [*BatchFeature*] أو *list[str]*

موجّه واحد لكل ملف صوتي عند *tokenize=False*، وإلا فإن المُعالِج يُخرج مخرجات جاهزة للتقديم إلى [*Qwen3ASRForConditionalGeneration.generate*]، أو إلى [*Qwen3ASRForConditionalGeneration.forward*] لحساب الخسارة عند تقديم *transcription*.

جهّز المدخلات للتعرف التلقائي على الكلام دون كتابة قالب المحادثة يدويًا، سواء للاستدلال أو، عند تقديم *النسخ*، للتدريب.

#### prepare_forced_aligner_inputs[[transformers.Qwen3ASRProcessor.prepare_forced_aligner_inputs]]

```python
prepare_forced_aligner_inputs(audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']], transcript: str | list[str], language: str | list[str] | None = None, **kwargs)
```

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

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

audio (*AudioInput*) : مدخلات الصوت. تقبل المسارات، وعناوين URL، ومصفوفات numpy، أو قائمة من هذه العناصر.

transcript (*str* أو *list[str]*) : النص (أو النصوص) المراد مواءمته مع الصوت.

language (*str* أو *list[str]* أو *None*، *اختياري*) : تلميحات اللغة. غير مستخدمة حاليًا في الترميز (tokenization) لكنها محجوزة لمُرمّزي (tokenizers) لغات محددة (مثل اليابانية والكورية).

- ****kwargs** : حُجج إضافية بالكلمات المفتاحية تُمرَّر إلى [*~Qwen3ASRProcessor.apply_chat_template*].

**يعيد:** *tuple[BatchFeature, list[list[str]]]*

- `inputs`: كائن من نوع [*BatchFeature*] يحتوي على `input_ids` و`attention_mask` و`input_features` و`input_features_mask`، وجاهز لنموذج المحاذاة الإجبارية.
- `word_lists`: قائمة (واحدة لكل عينة) من قوائم الرموز على مستوى الكلمة المستخدمة لبناء المدخلات. مرر هذه إلى [*~Qwen3ASRProcessor.decode_forced_alignment*] لربط الطوابع الزمنية بالكلمات.

جهّز المدخلات لنموذج المحاذاة الإجبارية.

#### decode_forced_alignment[[transformers.Qwen3ASRProcessor.decode_forced_alignment]]

```python
decode_forced_alignment(logits, input_ids, word_lists: list, timestamp_token_id: int, timestamp_segment_time: float | None = None)
```

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

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

logits (*torch.Tensor* من الشكل *(batch_size, seq_len, num_labels)*) : قيم التصنيف (logits) من [*Qwen3ASRForTokenClassification*].

input_ids (*torch.LongTensor* من الشكل *(batch_size, seq_len)*) : معرّفات الرموز المدخلة المستخدمة في المرور الأمامي.

word_lists (*list[list[str]]*) : قوائم رموز على مستوى الكلمة كما تُعاد بواسطة [*~Qwen3ASRProcessor.prepare_forced_aligner_inputs*].

timestamp_token_id (*int*) : معرّف الرمز (Token ID) الخاص بعلامة `&amp;lt;timestamp>` (من `model.config.timestamp_token_id`).

timestamp_segment_time (*float*، *اختياري*) : عدد الميلي ثانية لكل فئة من فئات الطوابع الزمنية. إذا لم يُقدَّم، يتم استخدام *self.timestamp_segment_time*.

**يعيد:** *list[list[dict]]*

قائمة واحدة لكل عينة. تحتوي كل قائمة داخلية على قواميس بمفاتيح `"text"` (*str*)، و`"start_time"` (*float*، بالثواني)، و`"end_time"` (*float*، بالثواني).

فكّ ترميز مخرجات نموذج المحاذاة الإجبارية إلى طوابع زمنية على مستوى الكلمات.

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

```python
decode(*args, return_format = 'raw', **kwargs)
```

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

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

return_format (*str*، *اختياري*، القيمة الافتراضية *"raw"*) : الخيارات: - `"raw"`: إرجاع نصوص مُفكّكة خام من مُجزّئ النص. - `"parsed"`: إرجاع قاموس (أو قائمة من القواميس) بمفاتيح `"language"` و`"transcription"`. - `"transcription_only"`: استخراج النص المنقول فقط (بعد `&amp;lt;asr_text>`). يتم تعيين `skip_special_tokens` بشكل صارم إلى `True` لكل من `"parsed"` و`"transcription_only"`.

مرّر الحُجج إلى دالة decode في المُرمِّز (tokenizer) وقم، عند الحاجة، بتحليل مخرجات ASR.

تُخرج Qwen3 ASR النص المنقول بالصيغة: `language &amp;lt;LANG>&amp;lt;asr_text>transcribed text`

## Qwen3ASREncoder[[transformers.Qwen3ASREncoder]]

#### transformers.Qwen3ASREncoder[[transformers.Qwen3ASREncoder]]

```python
transformers.Qwen3ASREncoder(config: Qwen3ASREncoderConfig)
```

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

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

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

نموذج الصوت الخاص بـ Qwen3 ASR دون أي رأس أو إسقاط في الأعلى.

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

```python
forward(input_features: Tensor, input_features_mask: Tensor, **kwargs)
```

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

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

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

input_features_mask (`torch.LongTensor` من الشكل `(batch_size, padded_feature_length)`) : 1 للإطارات الميّل الصالحة و0 للتعبئة.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

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

تتجاوز طريقة [Qwen3ASREncoder](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASREncoder) الخاصة بالتقديم (forward) الطريقة الخاصة `__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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## Qwen3ASRModel[[transformers.Qwen3ASRModel]]

#### transformers.Qwen3ASRModel[[transformers.Qwen3ASRModel]]

```python
transformers.Qwen3ASRModel(config: Qwen3ASRConfig)
```

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

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

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

نموذج Qwen3ASR (شيفرة 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.Qwen3ASRModel.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/qwen3_asr/modeling_qwen3_asr.py#L532)

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

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)`، *اختياري*) : المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام [Qwen3ASRFeatureExtractor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor). راجع [Qwen3ASRFeatureExtractor.__call__()](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor.__call__) للتفاصيل ([Qwen3ASRProcessor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRProcessor) يستخدم [Qwen3ASRFeatureExtractor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor) لمعالجة الأصوات).

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

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

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

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

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

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

#### get_audio_features[[transformers.Qwen3ASRModel.get_audio_features]]

```python
get_audio_features(input_features: Tensor, input_features_mask: LongTensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

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

input_features_mask (`torch.LongTensor` من الشكل `(batch_size, padded_feature_length)`) : 1 للإطارات الميّل الصالحة و0 للتعبئة.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

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

تُستخدم هذه الطريقة للحصول على تمثيلات الصوت من الميزات المدخلة (مطياف لوج-ميل).

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

#### get_placeholder_mask[[transformers.Qwen3ASRModel.get_placeholder_mask]]

```python
get_placeholder_mask(input_ids: LongTensor, inputs_embeds: Tensor, audio_features: Tensor)
```

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

يحصل على قناع العلامات الوهمية متعددة الوسائط من `input_ids` أو `inputs_embeds`، ويتحقق من أن عدد رموز العلامات الوهمية يساوي طول الميزات متعددة الوسائط. إذا اختلفت الأطوال، يتم رفع خطأ.

## Qwen3ASRForConditionalGeneration[[transformers.Qwen3ASRForConditionalGeneration]]

#### transformers.Qwen3ASRForConditionalGeneration[[transformers.Qwen3ASRForConditionalGeneration]]

```python
transformers.Qwen3ASRForConditionalGeneration(config: Qwen3ASRConfig)
```

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

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

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

نموذج Qwen3ASR الذي يتكون من مشفّر صوتي ونموذج لغوي.

يرث هذا النموذج من [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.Qwen3ASRForConditionalGeneration.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/qwen3_asr/modeling_qwen3_asr.py#L627)

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

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)`، *اختياري*) : المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام [Qwen3ASRFeatureExtractor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor). راجع [Qwen3ASRFeatureExtractor.__call__()](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor.__call__) للتفاصيل ([Qwen3ASRProcessor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRProcessor) يستخدم [Qwen3ASRFeatureExtractor](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRFeatureExtractor) لمعالجة الأصوات).

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) (بعد واحد لكل من الدفعة وطول الترتيب).

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

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

تُعيد طريقة [Qwen3ASRForConditionalGeneration](/docs/transformers/main/ar/model_doc/qwen3_asr#transformers.Qwen3ASRForConditionalGeneration) الخاصة بالتقديم (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 Qwen3ASRForConditionalGeneration, AutoProcessor

>>> model_id = "Qwen/Qwen3-ASR-1.7B-hf"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = Qwen3ASRForConditionalGeneration.from_pretrained(model_id, device_map="auto")
```

#### get_audio_features[[transformers.Qwen3ASRForConditionalGeneration.get_audio_features]]

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

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

## Qwen3ASRForTokenClassification[[transformers.Qwen3ASRForTokenClassification]]

#### transformers.Qwen3ASRForTokenClassification[[transformers.Qwen3ASRForTokenClassification]]

```python
transformers.Qwen3ASRForTokenClassification(config)
```

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

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

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

نموذج Qwen3 ASR مع رأس تصنيف الرموز للتنبؤ بالطوابع الزمنية (المحاذاة الإجبارية).

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

```python
forward(input_ids: torch.LongTensor | None = None, attention_mask: torch.Tensor | None = None, position_ids: torch.LongTensor | None = None, past_key_values: Cache | None = None, inputs_embeds: torch.Tensor | None = None, labels: torch.LongTensor | None = None, use_cache: bool | None = None, **kwargs: Unpack[TransformersKwargs])
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/modeling_layers.py#L275)

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

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)

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`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `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)`، *اختياري*) : تسميات لحساب خسارة تصنيف الرموز. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`.

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

**يعيد:** `TokenClassifierOutput`

تُعيد طريقة `GenericForTokenClassification` الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

