Transformers documentation
Fun-ASR-Nano
نُشر هذا النموذج في أوراق HF في 15 سبتمبر 2025، وأُضيف إلى مكتبة Hugging Face Transformers في 8 سبتمبر 2026.
Fun-ASR-Nano
نظرة عامة
Fun-ASR-Nano هو نموذج لتعرف الكلام من طرف إلى طرف يحتوي على 800 مليون معامل، طوّره فريق FunAudioLLM التابع لمعهد Alibaba DAMO. يحقق هذا النموذج أداءً متقدماً على معايير تقييم ASR للغة الصينية والإنجليزية واليابانية، مع كونه أصغر بكثير من النماذج المماثلة.
قُدم النموذج في Fun-ASR: نظام صناعي المستوى لتعرف الكلام.
البنية
يتكوّن Fun-ASR-Nano من ثلاثة مكوّنات:
مُشفِّر الصوت (SenseVoiceEncoderSmall): مُشفِّر من 70 طبقة من نوع SANM (انتباه ذاتي مع ذاكرة FSMN) يجمع بين الانتباه الذاتي متعدد الرؤوس وشبكات الذاكرة التسلسلية الأمامية لاستخراج ميزات الكلام بكفاءة.
Audio Adaptor: محوّل (Transformer) من طبقتين يقوم بإسقاط مخرجات المُشفِّر (بعد 512) إلى بُعد نموذج اللغة (بعد 1024).
نموذج اللغة (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
< source >( 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
< source >( 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
< source >( 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
< source >( 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__
< source >( 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
< source >( 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__
< source >( 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 للحصول على القائمة الكاملة للحجج المدعومة.
يعيد
قاموس يحتوي على النص المُرمَّز (input_ids، attention_mask) وميزات الصوت (input_features، input_features_mask).
apply_transcription_request
< source >( 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
< source >( config: FunAsrNanoEncoderConfig )
المعاملات
- config (FunAsrNanoEncoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
مشفّر الصوت Fun-ASR-Nano (بنية SenseVoice SAN-M)، دون أي رأس في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensorof 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
< source >( config: FunAsrNanoConfig )
المعاملات
- config (FunAsrNanoConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Fun-ASR-Nano (مشفر الصوت SenseVoice SAN-M، ومحوّل Transformer، ونموذج اللغة Qwen3)، بدون رأس نمذجة اللغة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.Tensorof 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
< source >( config: FunAsrNanoConfig )
المعاملات
- config (FunAsrNanoConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Fun-ASR-Nano للتعرف على الكلام: مُشفِّر صوتي من نوع SenseVoice SAN-M، ومُكيِّف Transformer، ونموذج لغوي Qwen3 مع رأس لنمذجة اللغة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.Tensorof 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.Tensorof 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، اختياري) — حالات المخفية لمشفّر الصوت بعد الإسقاط.