Transformers documentation

Fun-ASR-Nano

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 15 سبتمبر 2025، وأُضيف إلى مكتبة Hugging Face Transformers في 8 سبتمبر 2026.

Fun-ASR-Nano

نظرة عامة

Fun-ASR-Nano هو نموذج لتعرف الكلام من طرف إلى طرف يحتوي على 800 مليون معامل، طوّره فريق FunAudioLLM التابع لمعهد Alibaba DAMO. يحقق هذا النموذج أداءً متقدماً على معايير تقييم ASR للغة الصينية والإنجليزية واليابانية، مع كونه أصغر بكثير من النماذج المماثلة.

قُدم النموذج في Fun-ASR: نظام صناعي المستوى لتعرف الكلام.

البنية

يتكوّن Fun-ASR-Nano من ثلاثة مكوّنات:

  1. مُشفِّر الصوت (SenseVoiceEncoderSmall): مُشفِّر من 70 طبقة من نوع SANM (انتباه ذاتي مع ذاكرة FSMN) يجمع بين الانتباه الذاتي متعدد الرؤوس وشبكات الذاكرة التسلسلية الأمامية لاستخراج ميزات الكلام بكفاءة.

  2. Audio Adaptor: محوّل (Transformer) من طبقتين يقوم بإسقاط مخرجات المُشفِّر (بعد 512) إلى بُعد نموذج اللغة (بعد 1024).

  3. نموذج اللغة (Qwen3-0.6B): نموذج لغة سببي يتكوّن من 28 طبقة، يولّد نصّ النسخ التلقائي بشكل ذاتي التراجع.

الميزات الرئيسية

  • الصينية والإنجليزية واليابانية، بما في ذلك 7 لهجات صينية و26 لهجة إقليمية
  • تخصيص الكلمات المفتاحية للمفردات المتخصصة في مجال معين
  • إخراج علامات الترقيم الأصلية (لا حاجة إلى نموذج علامات ترقيم منفصل)

الاستخدام

استدلال واحد

from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])

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

from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")

audio_urls = [
    "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/zh.mp3",
    "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3",
]
languages = ["zh", "en"]
inputs = processor.apply_transcription_request(audio=audio_urls, language=languages).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True))

الموجّهات المخصّصة والكلمات الساخنة

مرّر المعلومات السياقية عبر prompt والكلمات المفتاحية عبر keywords؛ حيث يقوم قالب المحادثة الخاص بالنقطة الفاصلة (checkpoint) ببناء تعليمات النسخ الكاملة. يقبل language اللغات الصينية والإنجليزية واليابانية بأسمائها الكاملة أو بأكواد ISO.

from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(
    audio=audio_url,
    prompt="A tribal story involving a chieftain and a boy.",
    keywords=["tribal chieftain", "fifty pieces of gold"],
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])

التدريب

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

from datasets import Audio, load_dataset
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
NUM_SAMPLES = 2

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.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()

الاستدلال باستخدام torch.compile

import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, CompileConfig

model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)

with torch.inference_mode():
    generated_ids = model.generate(
        **inputs,
        max_new_tokens=200,
        compile_config=CompileConfig(),
    )
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])

FunAsrNanoConfig

فئة transformers.FunAsrNanoConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneadaptor_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151646initializer_range: float = 0.02tie_word_embeddings: bool = True )

المعاملات

  • adaptor_config (dict أو FunAsrNanoAdaptorConfig، اختياري) — إعدادات مُكيّف الصوت ثنائي الاتجاه.
  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعداد أو قاموس العمود الفقري الصوتي.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي.
  • audio_token_id (int، اختياري، القيمة الافتراضية 151646) — مؤشر رمز الصوت المستخدم كعلامة مؤقتة للصوت المُدخل.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج FunAsrNanoModel. تُستخدم لاستحداث نموذج Fun Asr Nano وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ FunAudioLLM/Fun-ASR-Nano-2512-hf

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

FunAsrNanoEncoderConfig

فئة transformers.FunAsrNanoEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonenum_mel_bins: int = 80hidden_size: int = 512num_attention_heads: int = 4intermediate_size: int = 2048num_hidden_layers: int = 70hidden_dropout: float = 0.1attention_dropout: float = 0.1layer_norm_eps: float = 1e-05hidden_act: str = 'relu'max_position_embeddings: int = 2049num_stacked_frames: int = 7num_timestamp_prediction_layers: int = 20fsmn_kernel_size: int = 11 )

المعاملات

  • num_mel_bins (int، اختياري، القيمة الافتراضية 80) — عدد ميزات mel المستخدمة لكل إطار إدخال. يجب أن يتوافق مع القيمة المستخدمة في فئة AutoFeatureExtractor.
  • hidden_size (int، اختياري، القيمة الافتراضية 512) — أبعاد التمثيلات المخفية.
  • num_attention_heads (int, اختياري، القيمة الافتراضية 4) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 2048) — بعد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 70) — إجمالي عدد طبقات المُشفِّر، بما في ذلك طبقات النسخ وطبقات التنبؤ بالطوابع الزمنية اللاحقة.
  • hidden_dropout (float, اختياري، القيمة الافتراضية 0.1) — احتمالية الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع.
  • attention_dropout (float، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • hidden_act (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 2049) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • num_stacked_frames (int، اختياري، القيمة الافتراضية 7) — عدد إطارات mel المتتالية التي يتم تجميعها بواسطة استخراج الميزات بمعدل إطار منخفض.
  • num_timestamp_prediction_layers (int، اختياري، القيمة الافتراضية 20) — عدد طبقات المُشفِّر (الطبقات الأخيرة) المخصصة للتنبؤ بالطوابع الزمنية. يتم أخذ مخرجات النسخ بعد الطبقة num_hidden_layers - num_timestamp_prediction_layers - 1.
  • fsmn_kernel_size (int, اختياري، القيمة الافتراضية 11) — حجم النواة (Kernel size) لعمليّة الالتفاف في شبكة الذاكرة التسلسلية الأمامية (FSMN).

هذه فئة الإعدادات المخزنة لإعدادات نموذج FunAsrNanoModel. تُستخدم لاستحداث نموذج Fun Asr Nano وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ FunAudioLLM/Fun-ASR-Nano-2512-hf

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

FunAsrNanoAdaptorConfig

فئة transformers.FunAsrNanoAdaptorConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_attention_heads: int = 8intermediate_size: int = 256num_hidden_layers: int = 2hidden_dropout: float = 0.0attention_dropout: float = 0.0layer_norm_eps: float = 1e-05hidden_act: str = 'relu'projector_hidden_act: str = 'relu'projector_hidden_size: int = 2048 )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 1024) — أبعاد التمثيلات المخفية.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 256) — أبعاد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 2) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • hidden_dropout (float، اختياري، القيمة الافتراضية 0.0) — احتمال الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات والمُشفِّر (encoder) والمُجمِّع (pooler).
  • attention_dropout (float، اختياري، القيمة الافتراضية 0.0) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • hidden_act (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • projector_hidden_act (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط المستخدمة في المُشغِّل متعدد الوسائط.
  • projector_hidden_size (int، اختياري، القيمة الافتراضية 2048) — أبعاد طبقات الإسقاط للنص والرؤية.

هذه فئة الإعدادات المخزنة لإعدادات نموذج FunAsrNanoModel. تُستخدم لاستحداث نموذج Fun Asr Nano وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ FunAudioLLM/Fun-ASR-Nano-2512-hf

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

FunAsrNanoFeatureExtractor

فئة transformers.FunAsrNanoFeatureExtractor

< >

( feature_size: int = 80sampling_rate: int = 16000frame_length: int = 25frame_shift: int = 10num_frames_lfr: int = 7stride_lfr: int = 6window: str = 'hamming'padding_value: float = 0.0return_attention_mask: bool = True**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 80) — عدد أشرطة ترددات ميل.
  • sampling_rate (int، اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات للصوت.
  • frame_length (int، اختياري، القيمة الافتراضية 25) — طول الإطار بالمللي ثانية لـ STFT.
  • frame_shift (int, اختياري، القيمة الافتراضية 10) — إزاحة الإطار (طول القفزة) بالمللي ثانية لتحويل فورييه القصير (STFT).
  • num_frames_lfr (int، اختياري، القيمة الافتراضية 7) — عدد الإطارات المتتالية التي سيتم تجميعها (معامل تجميع LFR).
  • stride_lfr (int، اختياري، القيمة الافتراضية 6) — خطوة أخذ العينات الفرعية لـ LFR (أخذ كل إطار مكدّس رقم stride_lfr).
  • window (str، اختياري، القيمة الافتراضية "hamming") — دالة النافذة المستخدمة في تحويل فورييه الزمني القصير (STFT).
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — القيمة المستخدمة لحشو التسلسلات الأقصر.
  • return_attention_mask (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع قناع الانتباه.

ينشئ مستخرج ميزات Fun-ASR-Nano.

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

يستخرج ميزات مصفوفة مرشحات ميل المتوافقة مع Kaldi (عبر torchaudio.compliance.kaldi.fbank، بما يتوافق مع الواجهة الأمامية الأصلية لـ FunASR)، ثم يطبّق معالجة معدل الإطار المنخفض (LFR) عن طريق تجميع num_frames_lfr إطارًا متتاليًا وتجزئة العينات بخطوة stride_lfr.

مثال:

>>> import numpy as np
>>> from transformers import FunAsrNanoFeatureExtractor

>>> feature_extractor = FunAsrNanoFeatureExtractor()
>>> audio = np.random.randn(16000)  # 1 second of audio at 16kHz
>>> features = feature_extractor(audio, sampling_rate=16000, return_tensors="pt")
>>> features.input_features.shape  # (1, num_frames_after_lfr, 560)

__call__

< >

( raw_speech: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]sampling_rate: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = 'pt'padding: bool | str = Truemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = None**kwargs )

المعاملات

  • raw_speech (np.ndarray، list[float]، list[np.ndarray]، list[list[float]]) — التسلسل أو الدفعة من الموجات الصوتية أحادية القناة التي سيتم استخراج الميزات منها.
  • sampling_rate (int, اختياري) — معدل أخذ العينات للصوت المدخل. يجب أن يتطابق مع self.sampling_rate (16000 هرتز).
  • return_tensors (str أو TensorType، اختياري) — إذا تم تعيينه، يُرجع تينسورات من إطار العمل المحدد ("pt"، "np"، …).
  • padding (bool أو str، اختياري، القيمة الافتراضية True) — استراتيجية الحشو المُمرَّرة إلى pad().
  • max_length (int, اختياري) — الحد الأقصى لطول تسلسل LFR للتعبئة/الاقتطاع.
  • truncation (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تقصير التسلسلات التي تتجاوز max_length.
  • pad_to_multiple_of (int، اختياري) — إذا تم تعيينه، يُوسّع طول تسلسل LFR ليصبح مضاعفاً لهذه القيمة.
  • return_attention_mask (bool، اختياري) — ما إذا كان يجب إرجاع input_features_mask. القيمة الافتراضية هي self.return_attention_mask.

استخراج ميزات Kaldi mel-filterbank و LFR من موجة صوتية خام واحدة أو من عدة موجات صوتية خام.

FunAsrNanoProcessor

فئة transformers.FunAsrNanoProcessor

< >

( feature_extractortokenizerchat_template = Noneaudio_token = '<|object_ref_start|>' )

المعاملات

  • feature_extractor (FunAsrNanoFeatureExtractor) — مستخرج الميزات هو مدخل مطلوب.
  • tokenizer (Qwen2Tokenizer) — المُجزِّئ مدخل إلزامي.
  • chat_template (str) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
  • audio_token (str، اختياري، القيمة الافتراضية "<|object_ref_start|>") — الرمز المستخدم كحرف عائد (placeholder) للصوت داخل النص.

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

يوفر FunAsrNanoProcessor جميع وظائف FunAsrNanoFeatureExtractor وQwen2Tokenizer. راجع ~FunAsrNanoFeatureExtractor و~Qwen2Tokenizer لمزيد من المعلومات.

__call__

< >

( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → BatchFeature

المعاملات

  • 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, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

يعيد

BatchFeature

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

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 = Noneprompt: str | list[str] | None = Nonekeywords: str | list[str] | list[list[str]] | None = Nonetranscription: str | list[str] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.models.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → BatchFeature or list[str]

المعاملات

  • audio (AudioInput أو list[AudioInput]) — الصوت المراد تحويله إلى نص. يمكن أن يكون رابط URL، أو مسارًا محليًا، أو مصفوفة NumPy، أو متجه PyTorch، أو قائمة من هذه العناصر.
  • language (str أو list[str]، اختياري) — اللغة المستهدفة. يقبل اللغة الصينية أو الإنجليزية أو اليابانية بأسمائها الإنجليزية الكاملة، أو رموز ISO ("zh"، "en"، "ja")، أو أسماء اللغات الصينية الخاصة بالنقطة الفاحصة ("中文"، "英文"، "日文"). يتم بث قيمة واحدة عبر الدفعة.
  • prompt (str أو list[str]، اختياري) — معلومات سياقية قد تحسّن عملية النسخ. يجب أن يتطابق طول القائمة مع حجم دفعة الصوت.
  • keywords (str أو list[str] أو list[list[str]]، اختياري) — كلمات مفتاحية لتحيز عملية التعرف. يُشارَك السلسلة النصية أو القائمة المسطحة عبر الدفعة بأكملها؛ بينما توفر القائمة المتداخلة كلمات مفتاحية منفصلة لكل عينة صوتية.
  • transcription (str أو list[str]، اختياري) — النص(النصوص) المستهدف(الستهداف) للتدريب، نص واحد لكل ملف صوتي. عند تقديمه، يُكتب كل نص كدور المساعد وتُعاد labels (انظر output_labels في call()).
  • tokenize (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم ترميز الأوامر (prompts) ومعالجة الصوت. إذا كانت القيمة False، فلن يتم تحميل الصوت وتُعاد الأوامر كنصوص مع بقاء محددات الصوت (audio placeholders) دون توسيع. عند تمريرها مع الصوت إلى المعالج، processor(text=prompts, audio=audio)، تُنتج نفس المخرجات كما لو كانت tokenize=True.
  • **kwargs — حجج إضافية بالكلمات المفتاحية تُمرَّر إلى apply_chat_template(). يجب تمرير حجج المعالج (مثل text_kwargs، audio_kwargs، …) على النحو processor_kwargs={...}.

يعيد

BatchFeature أو list[str]

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

جهّز المدخلات لنظام التعرف على الكلام (ASR) باستخدام قالب المحادثة المنظم للنسخ الصوتي الخاص بالنقطة المرجعية، إما للاستدلال أو، عند تحديد transcription، للتدريب.

FunAsrNanoEncoder

فئة transformers.FunAsrNanoEncoder

< >

( config: FunAsrNanoEncoderConfig )

المعاملات

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

مشفّر الصوت Fun-ASR-Nano (بنية SenseVoice SAN-M)، دون أي رأس في الأعلى.

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

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

forward

< >

( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)

المعاملات

  • input_features (torch.Tensor of shape (batch_size, sequence_length, feature_dim)) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام FunAsrNanoFeatureExtractor. راجع FunAsrNanoFeatureExtractor.call() للتفاصيل (FunAsrNanoProcessor يستخدم FunAsrNanoFeatureExtractor لمعالجة ملفات الصوت).
  • input_features_mask (torch.LongTensor من الشكل (batch_size, padded_feature_length)) — 1 للإطارات الطيفية الصالحة و0 للتعبئة.

يعيد

BaseModelOutput أو tuple(torch.Tensor)

BaseModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FunAsrNanoConfig) والمدخلات.

تتجاوز طريقة FunAsrNanoEncoder الخاصة بـ forward الطريقة الخاصة __call__.

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

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

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

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

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

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

FunAsrNanoModel

فئة transformers.FunAsrNanoModel

< >

( config: FunAsrNanoConfig )

المعاملات

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

نموذج Fun-ASR-Nano (مشفر الصوت SenseVoice SAN-M، ومحوّل Transformer، ونموذج اللغة Qwen3)، بدون رأس نمذجة اللغة.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → FunAsrNanoModelOutputWithPast or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • input_features (torch.Tensor of shape (batch_size, sequence_length, feature_dim), اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام FunAsrNanoFeatureExtractor. راجع FunAsrNanoFeatureExtractor.call() للتفاصيل (FunAsrNanoProcessor يستخدم FunAsrNanoFeatureExtractor لمعالجة الملفات الصوتية).
  • input_features_mask (torch.Tensor من الشكل (batch_size, feature_sequence_length)) — قناع لتجنب تنفيذ الانتباه على فهارس الحشو.
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

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

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

  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة 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).

يعيد

FunAsrNanoModelOutputWithPast أو tuple(torch.Tensor)

FunAsrNanoModelOutputWithPast أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (FunAsrNanoConfig) والمدخلات.

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

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

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

FunAsrNanoForConditionalGeneration

فئة transformers.FunAsrNanoForConditionalGeneration

< >

( config: FunAsrNanoConfig )

المعاملات

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

نموذج Fun-ASR-Nano للتعرف على الكلام: مُشفِّر صوتي من نوع SenseVoice SAN-M، ومُكيِّف Transformer، ونموذج لغوي Qwen3 مع رأس لنمذجة اللغة.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → FunAsrNanoCausalLMOutputWithPast or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • input_features (torch.Tensor of shape (batch_size, sequence_length, feature_dim), اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام FunAsrNanoFeatureExtractor. راجع FunAsrNanoFeatureExtractor.call() للتفاصيل (FunAsrNanoProcessor يستخدم FunAsrNanoFeatureExtractor لمعالجة الملفات الصوتية).
  • input_features_mask (torch.Tensor من الشكل (batch_size, feature_sequence_length)) — قناع لتجنب تنفيذ الانتباه على فهارس الحشو.
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

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

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

  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة 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، يتم حساب logits لجميع input_ids (حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كان torch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).

يعيد

FunAsrNanoCausalLMOutputWithPast أو tuple(torch.Tensor)

FunAsrNanoCausalLMOutputWithPast أو مجموعة (tuple) من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتمادًا على الإعداد (FunAsrNanoConfig) والمدخلات.

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

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

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة.

  • past_key_values (Cache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع Cache.

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

  • audio_hidden_states (torch.Tensor، اختياري) — حالات المخفية لمشفّر الصوت بعد الإسقاط.

مثال:

>>> from transformers import FunAsrNanoForConditionalGeneration, AutoProcessor

>>> model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = FunAsrNanoForConditionalGeneration.from_pretrained(model_id, device_map="auto")
Update on GitHub