Transformers documentation

LASR

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 في 16 مايو 2020، وأُضيف إلى مكتبة Hugging Face Transformers في 5 ديسمبر 2025.

SDPA

LASR

نظرة عامة

LASR هي البنية المعمارية التي تقف خلف MedASR، وهو نموذج لتحويل الكلام إلى نص من Google Health AI تم تدريبه مسبقًا على الإملاء الطبي. وهو مبني على بنية Conformer ومصمم كنقطة انطلاق للمطورين الذين يبنون أدوات إملاء تتضمن مصطلحات طبية، مثل إملاء الأشعة. يؤدي MedASR أداءً جيدًا على الصوتيات الطبية، لكنه قد يواجه صعوبة مع المصطلحات خارج نطاق بيانات تدريبه، مثل أسماء الأدوية غير القياسية أو المراجع الزمنية (التواريخ، أو الأوقات، أو المدد).

الاستخدام

الاستخدام الأساسي

خط أنابيب
AutoModel
from transformers import pipeline


pipe = pipeline("automatic-speech-recognition", model="google/medasr")
out = pipe("path/to/audio.mp3")
print(out)

التدريب

يُعدّ المثال التالي دفعة من بيانات الصوت والنص، ويمررها عبر نموذج LASR/MedASR، ثم يحسب خسارة التدريب.

from datasets import Audio, load_dataset

from transformers import AutoModelForCTC, AutoProcessor


# Load processor and model
processor = AutoProcessor.from_pretrained("google/medasr")
model = AutoModelForCTC.from_pretrained("google/medasr", device_map="auto")

# Load a small example dataset and prepare batch
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"][:5]]
text_samples = [el for el in ds["text"][:5]]

# Passing `text` to the processor will prepare the `labels`
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(device, dtype=model.dtype)

outputs = model(**inputs)
outputs.loss.backward()

LasrTokenizer

فئة transformers.LasrTokenizer

< >

( eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'_spm_precompiled_charsmap = Noneextra_ids = 100additional_special_tokens = Nonevocab = Nonevocab_file = None**kwargs )

المعاملات

  • vocab_file (str, اختياري) — ملف SentencePiece (يحمل عادةً امتداد .spm) يحتوي على المفردات اللازمة لإنشاء مُجزِّئ.
  • eos_token (str, اختياري, الافتراضي هو "</s>") — رمز نهاية التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل، بل يُستخدم رمز الفاصل (sep_token) لهذا الغرض.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل. الرمز المستخدم هو sep_token.

  • unk_token (str، اختياري، القيمة الافتراضية "<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.
  • pad_token (str، اختياري، القيمة الافتراضية "<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.
  • extra_ids (int، اختياري، القيمة الافتراضية 100) — إضافة عدد من المعرّفات الإضافية إلى المفردات لاستخدامها كرموز حدّية. يمكن الوصول إلى هذه الرموز على شكل “id{%d}>” حيث أن ”{%d}” هو رقم يتراوح بين 0 و extra_ids-1. يمكن استرجاع هذه الرموز عن طريق استدعاء طريقة get_sentinel_tokens ويمكن استرجاع معرّفات الرموز عن طريق استدعاء طريقة get_sentinel_token_ids
  • additional_special_tokens (list[str]، اختياري) — رموز خاصة إضافية يستخدمها مُجزّئ النص.
  • vocab (str أو dict أو list، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم إنشاء قاموس مفردات أساسي باستخدام الرموز الخاصة.

أنشئ مُرمِّز LASR (مدعوم بمكتبة tokenizers من HuggingFace). مبني على Unigram.

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

get_sentinel_token_ids

< >

( )

احصل على معرّفات الرموز (Token IDs) لرموز الحارس (sentinel tokens).

get_sentinel_tokens

< >

( )

احصل على قائمة رموز الحارس (رموز extra_id) من additional_special_tokens.

LasrFeatureExtractor

فئة transformers.LasrFeatureExtractor

< >

( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400padding_value = 0.0**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 128) — أبعاد الميزات للميزات المستخرجة.
  • sampling_rate (int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • hop_length (int، اختياري، القيمة الافتراضية 160) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه الزمني القصير (STFT) للحصول على معاملات ترددات ميل.
  • n_fft (int، اختياري، القيمة الافتراضية 512) — حجم تحويل فورييه.
  • win_length (int، اختياري، القيمة الافتراضية 400) — طول النافذة لحساب تحويل فورييه الزمني القصير (STFT).
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — قيمة الحشو المستخدمة لحشو الصوت. يجب أن تتوافق مع الصمت.

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

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

تستخرج هذه الفئة ميزات بنك مرشحات ميل من الكلام الخام باستخدام تنفيذ مخصص عبر numpy لتحويل Short Time Fourier Transform، والذي ينبغي أن يطابق ما يعادله في pytorch وهو torch.stft.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Nonepadding: str | None = 'longest'max_length: int | None = Nonesampling_rate: int | None = Nonedo_normalize: bool | None = Nonedevice: str | None = 'cpu'return_token_timestamps: bool | None = None**kwargs )

المعاملات

  • raw_speech (np.ndarray، list[float]، list[np.ndarray]، list[list[float]]) — التسلسل أو الدفعة من التسلسلات التي سيتم ملؤها. يمكن أن يكون كل تسلسل مصفوفة numpy، أو قائمة من قيم float، أو قائمة من مصفوفات numpy، أو قائمة من قوائم قيم float. يجب أن يكون الصوت أحادي القناة وليس ستيريو، أي قيمة float واحدة لكل خطوة زمنية.
  • truncation (bool، اختياري، الافتراضي True) — يفعّل القصّ لقطع تسلسلات الإدخال الأطول من max_length إلى max_length.
  • pad_to_multiple_of (int, اختياري, الافتراضي هو None) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.

    يُعدّ هذا مفيدًا بشكل خاص لتفعيل استخدام نوى التينسور (Tensor Cores) على أجهزة NVIDIA التي تتمتع بقابلية معالجة >= 7.5 (Volta)، أو على وحدات TPU التي تستفيد من أن تكون أطوال التسلسلات مضاعفات للعدد 128.

  • return_attention_mask (bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمعالج الميزات (feature_extractor) المعني.

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

    فيما يتعلق بنماذج Parakeet، يجب دائماً تمرير attention_mask عند الاستدلال الدُفعي (batched inference) لتجنب الأخطاء الدقيقة.

  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي:
    • 'tf': إرجاع كائنات tf.constant من TensorFlow.
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من نوع Numpy.
  • sampling_rate (int, اختياري) — معدل أخذ العينات الذي تم به أخذ عينات مدخل raw_speech. يُوصى بشدة بتمرير sampling_rate عند استدعاء الأمامي لمنع الأخطاء الصامتة وتمكين خط أنابيب التعرف التلقائي على الكلام.
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — القيمة المستخدمة لملء قيم الحشو / متجهات الحشو.
  • do_normalize (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تطبيع المدخلات إلى متوسط صفري وتباين وحدة. يمكن أن يساعد التطبيع في تحسين أداء النموذج بشكل كبير.
  • device (str، اختياري، القيمة الافتراضية 'cpu') — يحدد الجهاز المستخدم لحساب طيف اللوغ-ميل (log-mel spectrogram) لإشارات الصوت في طريقة _torch_extract_fbank_features. (على سبيل المثال، “cpu” أو “cuda”)
  • return_token_timestamps (bool, اختياري, الافتراضي هو None) — غير مستخدم. استخدم return_attention_mask بدلاً منه، حيث يمكن استنتاج عدد الإطارات منه.

    ما إذا كان يجب إرجاع عدد الإطارات (frames) لـ raw_speech المُدخل. يمكن استخدام هذه num_frames من قِبَل النموذج لحساب الطوابع الزمنية على مستوى الكلمة.

الطريقة الرئيسية لتحويل البيانات إلى ميزات (Featurization) وتجهيزها للنموذج، سواءً كانت تسلسلاً واحداً أو عدة تسلسلات. يستخدم التنفيذ مكتبة PyTorch لحساب STFT إذا كانت متاحة، وإلا فسيتم استخدام طريقة أبطأ تعتمد على NumPy.

LasrProcessor

فئة transformers.LasrProcessor

< >

( feature_extractortokenizer )

المعاملات

  • feature_extractor (feature_extractor_class) — مستخرج الميزات هو مدخل مطلوب.
  • tokenizer (tokenizer_class) — مُجزِّئ النص (tokenizer) هو مدخل إلزامي.

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

يوفر LasrProcessor جميع وظائف feature_extractor_class وtokenizer_class. راجع ~feature_extractor_class و~tokenizer_class لمزيد من المعلومات.

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]text: str | list[str] | list[list[str]] | None = Nonesampling_rate: int | None = None**kwargs: *<class 'transformers.models.lasr.processing_lasr.LasrProcessorKwargs'> )

المعاملات

  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.
  • text (Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّن is_split_into_words=True لتجنّب الغموض مع المدخلات المُجمَّعة في دفعات.
  • sampling_rate (int, اختياري) — معدل أخذ العينات للصوت المُدخل بالهرتز. يجب أن يتطابق هذا المعدل مع معدل أخذ العينات المتوقع من قِبل مستخرج الميزات (الافتراضي هو 16000 هرتز). إذا تم تقديمه، فسيتم التحقق منه مقابل معدل أخذ العينات المتوقع من المعالج، وسيتم رفع خطأ إذا لم يتطابقا. أما إذا لم يتم تقديمه، فسيتم إصدار تحذير وسيُفترض معدل أخذ العينات الافتراضي.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

batch_decode

< >

( *args**kwargs )

تُمرّر هذه الطريقة جميع معاملاتها إلى batch_decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.

decode

< >

( *args**kwargs )

تُمرّر هذه الطريقة جميع معاملاتها إلى decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.

LasrEncoderConfig

فئة transformers.LasrEncoderConfig

< >

( 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 = 512num_hidden_layers: int = 17num_attention_heads: int = 8intermediate_size: int = 2048hidden_act: str = 'silu'attention_bias: bool = Falseconvolution_bias: bool = Falseconv_kernel_size: int = 32subsampling_conv_channels: int = 256num_mel_bins: int = 128subsampling_conv_kernel_size: int = 5subsampling_conv_stride: int = 2dropout: float | int = 0.1dropout_positions: float | int = 0.0layerdrop: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1max_position_embeddings: int = 10000initializer_range: float = 0.02layer_norm_eps: float = 1e-06feed_forward_residual_weights: list[float] | tuple[float, ...] = (1.5, 0.5)conv_residual_weights: list[float] | tuple[float, ...] = (2.0, 1.0)batch_norm_momentum: float = 0.01rope_parameters: dict | None = None )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 512) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int, اختياري، القيمة الافتراضية 17) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 2048) — بعد تمثيلات MLP.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • convolution_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام الانحياز في عمليات الالتفاف داخل وحدة الالتفاف الخاصة بـ conformer.
  • conv_kernel_size (int، اختياري، القيمة الافتراضية 32) — حجم النواة لطبقات الالتفاف في كتلة Conformer.
  • subsampling_conv_channels (int، اختياري، القيمة الافتراضية 256) — عدد القنوات في طبقات الالتفاف الفرعية.
  • num_mel_bins (int، اختياري، القيمة الافتراضية 128) — عدد ميزات mel المستخدمة لكل إطار إدخال. يجب أن يتوافق مع القيمة المستخدمة في فئة AutoFeatureExtractor.
  • subsampling_conv_kernel_size (int, اختياري، القيمة الافتراضية 5) — حجم النواة لطبقات الالتفاف الفرعية.
  • subsampling_conv_stride (int، اختياري، القيمة الافتراضية 2) — خطوة طبقات التمرير الفرعي.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • dropout_positions (float, اختياري، القيمة الافتراضية 0.0) — نسبة dropout للمواقع في تسلسل الإدخال.
  • layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 10000) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • feed_forward_residual_weights (tuple[float, float]، اختياري، القيمة الافتراضية [1.5, 0.5]) — أوزان المتبقي لطبقات التقدّم الأمامي.
  • conv_residual_weights (tuple[float, float]، اختياري، القيمة الافتراضية [2.0, 1.0]) — أوزان المتبقي لطبقات الالتفاف.
  • batch_norm_momentum (float, اختياري، القيمة الافتراضية 0.01) — زخم طبقات تطبيع الدفعة
  • rope_parameters (dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.

هذه فئة الإعدادات المخزنة لإعدادات نموذج LasrModel. تُستخدم لاستحداث نموذج Lasr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/medasr

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

مثال:

>>> from transformers import LasrEncoderModel, LasrEncoderConfig

>>> # Initializing a `LasrEncoder` configuration
>>> configuration = LasrEncoderConfig()

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

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

تستند فئة التهيئة هذه إلى بنية LasrEncoder من Google Health AI. يمكنك العثور على مزيد من التفاصيل والنماذج المدربة مسبقًا في google/medasr.

LasrCTCConfig

فئة transformers.LasrCTCConfig

< >

( 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 = Nonevocab_size: int = 512ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 0 )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 512) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • ctc_loss_reduction (str، اختياري، القيمة الافتراضية "mean") — يحدد طريقة الاختزال (reduction) المطبقة على مخرجات torch.nn.CTCLoss. لا ينطبق إلا عند تدريب نسخة من LasrForCTC.
  • ctc_zero_infinity (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تصفير الخسائر اللانهائية والتدرجات المرتبطة بها في torch.nn.CTCLoss. تحدث الخسائر اللانهائية بشكل رئيسي عندما تكون المدخلات قصيرة جداً بحيث لا يمكن مواءمتها مع الأهداف. يكون هذا الخيار ذا صلة فقط عند تدريب مثيل من LasrForCTC.
  • encoder_config (Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعداد أو قاموس العمود الفقري للترميز.
  • pad_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم للتعبئة في المفردات.

هذه فئة الإعدادات المخزنة لإعدادات نموذج LasrModel. تُستخدم لاستحداث نموذج Lasr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/medasr

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

مثال:

>>> from transformers import LasrForCTC, LasrCTCConfig
>>> # Initializing a Lasr configuration
>>> configuration = LasrCTCConfig()
>>> # Initializing a model from the configuration
>>> model = LasrForCTC(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
This configuration class is based on the Lasr CTC architecture from Google Health AI. You can find more details and pre-trained models at [google/medasr](https://huggingface.co/google/medasr).

LasrEncoder

فئة transformers.LasrEncoder

< >

( config: LasrEncoderConfig )

المعاملات

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

نموذج LasrEncoder، المبني على معمارية Conformer](https://arxiv.org/abs/2005.08100).

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

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

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attention_mask: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → LasrEncoderModelOutput or tuple(torch.Tensor)

المعاملات

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

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

  • output_attention_mask (bool، اختياري) — ما إذا كان يجب إرجاع قناع الانتباه الناتج.

يعيد

LasrEncoderModelOutput أو tuple(torch.Tensor)

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

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

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو بعد ضغط التسلسل. يُعاد لأن طول التسلسل قد يختلف عن طول التسلسل المدخل. قيم القناع المختارة في [0, 1]:

    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

مثال:

>>> from transformers import AutoProcessor, LasrEncoder
>>> from datasets import load_dataset, Audio

>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = ParakeetEncoder.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)

>>> print(encoder_outputs.last_hidden_state.shape)

LasrForCTC

فئة transformers.LasrForCTC

< >

( config: LasrCTCConfig )

المعاملات

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

مشفر Lasr مع رأس تصنيف زمني اتصال (CTC).

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

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

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)

المعاملات

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

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

  • labels (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن [0, ..., config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size].

يعيد

CausalLMOutput أو tuple(torch.Tensor)

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

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

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

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

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

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

مثال:

>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/lasr-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> outputs = model(**inputs)

>>> print(outputs.loss)

generate

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict_in_generate: bool = Falsecompile_config: transformers.generation.configuration_utils.CompileConfig | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

مثال:

>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> predicted_ids = model.generate(**inputs)
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)

>>> print(transcription)
Update on GitHub