Transformers documentation

VITS

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 في 11 يونيو 2021، وأُضيف إلى مكتبة Hugging Face Transformers في 1 سبتمبر 2023.

VITS

VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) is an end-to-end speech synthesis model, simplifying the traditional two-stage text-to-speech (TTS) systems. It’s unique because it directly synthesizes speech from text using variational inference, adversarial learning, and normalizing flows to produce natural and expressive speech with diverse rhythms and intonations.

يمكنك العثور على جميع نقاط التفتيش الأصلية لـ VITS تحت منظمة AI at Meta.

انقر على نماذج VITS في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق VITS.

يُظهر المثال أدناه كيفية توليد النص بناءً على صورة باستخدام Pipeline أو فئة AutoModel.

خط أنابيب
AutoModel
from scipy.io.wavfile import write

from transformers import pipeline, set_seed


set_seed(555)

pipe = pipeline(
    task="text-to-speech",
    model="facebook/mms-tts-eng",
    device=0
)

speech = pipe("Hello, my dog is cute")

# Extract audio data and sampling rate
audio_data = speech["audio"]
sampling_rate = speech["sampling_rate"]

# Save as WAV file
write("hello.wav", sampling_rate, audio_data.squeeze())

ملاحظات

  • اضبط بذرة (seed) لضمان قابلية التكرار، لأن VITS يولّد الكلام بشكل غير حتمي.

  • بالنسبة للّغات التي تستخدم أبجديات غير لاتينية (الكورية، العربية، إلخ)، ثبّت حزمة uroman لمعالجة مدخلات النص مسبقاً وتحويلها إلى الأبجدية اللاتينية. يمكنك التحقق مما إذا كان مُجزّئ الرموز (tokenizer) يتطلب uroman كما هو موضح أدناه.

    # pip install -U uroman
    from transformers import VitsTokenizer
    
    tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
    print(tokenizer.is_uroman)

    إذا كانت لغتك تتطلب uroman، فإن المُجزِّئ يطبّقه تلقائيًا على مدخلات النص.

VitsConfig

فئة transformers.VitsConfig

< >

( 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 = 38hidden_size: int = 192num_hidden_layers: int = 6num_attention_heads: int = 2window_size: int = 4use_bias: bool = Trueffn_dim: int = 768layerdrop: float | int = 0.1ffn_kernel_size: int = 3flow_size: int = 192spectrogram_bins: int = 513hidden_act: str = 'relu'hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_stochastic_duration_prediction: bool = Truenum_speakers: int = 1speaker_embedding_size: int = 0upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (8, 8, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (16, 16, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1depth_separable_channels: int = 2depth_separable_num_layers: int = 3duration_predictor_flow_bins: int = 10duration_predictor_tail_bound: float = 5.0duration_predictor_kernel_size: int = 3duration_predictor_dropout: float | int = 0.5duration_predictor_num_flows: int = 4duration_predictor_filter_channels: int = 256prior_encoder_num_flows: int = 4prior_encoder_num_wavenet_layers: int = 4posterior_encoder_num_wavenet_layers: int = 16wavenet_kernel_size: int = 5wavenet_dilation_rate: int = 1wavenet_dropout: float | int = 0.0speaking_rate: float | int = 1.0noise_scale: float = 0.667noise_scale_duration: float = 0.8sampling_rate: int = 16000pad_token_id: int | None = None )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 38) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 192) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 2) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • window_size (int، اختياري، القيمة الافتراضية 4) — حجم النافذة للتضمينات الموضعية النسبية في طبقات الانتباه داخل مُشفِّر Transformer.
  • use_bias (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام الانحياز في طبقات الإسقاط للمفتاح والاستعلام والقيمة في مُشفِّر Transformer.
  • ffn_dim (int، اختياري، القيمة الافتراضية 768) — بعد تمثيلات MLP.
  • layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • ffn_kernel_size (int, اختياري، القيمة الافتراضية 3) — حجم النواة لطبقات الالتفاف أحادية البُعد المستخدمة في الشبكة الأمامية داخل مُشفِّر Transformer.
  • flow_size (int، اختياري، القيمة الافتراضية 192) — أبعاد طبقات التدفق.
  • spectrogram_bins (int، اختياري، القيمة الافتراضية 513) — عدد خلايا التردد في الطيف الصوتي المستهدف.
  • hidden_act (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • hidden_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمالية dropout لجميع الطبقات المتصلة بالكامل في التضمينات والمُشفِّر (encoder) والمُجمِّع (pooler).
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • use_stochastic_duration_prediction (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب استخدام وحدة التنبؤ العشوائي بالمدة أم مُتنبئ المدة العادي.
  • num_speakers (int، اختياري، القيمة الافتراضية 1) — عدد المتكلمين إذا كان هذا نموذجًا متعدد المتكلمين.
  • speaker_embedding_size (int، اختياري، القيمة الافتراضية 0) — عدد القنوات المستخدمة في تمثيلات المتحدث. تكون صفرًا في نماذج المتحدث الواحد.
  • upsample_initial_channel (int، اختياري، القيمة الافتراضية 512) — عدد قنوات الإدخال إلى شبكة رفع العينة في HiFi-GAN.
  • upsample_rates (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [8, 8, 2, 2]) — مجموعة من الأعداد الصحيحة تُعرّف الخطوة (stride) لكل طبقة تلافيفية أحادية البعد في شبكة رفع العينة (upsampling) الخاصة بـ HiFi-GAN. يحدد طول upsample_rates عدد الطبقات التلافيفية، ويجب أن يطابق طول upsample_kernel_sizes.
  • upsample_kernel_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [16, 16, 4, 4]) — مجموعة من الأعداد الصحيحة تحدد حجم النواة لكل طبقة تلافيفية أحادية البعد في شبكة رفع العينة في HiFi-GAN. يحدد طول upsample_kernel_sizes عدد الطبقات التلافيفية، ويجب أن يطابق طول upsample_rates.
  • resblock_kernel_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [3, 7, 11]) — مجموعة من الأعداد الصحيحة تحدد أحجام النوى للطبقات التلافيفية أحادية البعد في وحدة HiFi-GAN لدمج الحقول الاستقبالية المتعددة (MRF).
  • resblock_dilation_sizes (tuple[tuple[int]] أو list[list[int]]، اختياري، القيمة الافتراضية [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — مجموعة من الأعداد الصحيحة المتداخلة تحدد معدلات التمدد (dilation rates) لطبقات الالتفاف أحادية البعد المتمددة (dilated 1D convolutional layers) في وحدة دمج الحقول متعددة الاستقبال (MRF) في HiFi-GAN.
  • leaky_relu_slope (float, اختياري، القيمة الافتراضية 0.1) — زاوية الميل السالب المستخدمة في دالة التنشيط Leaky ReLU.
  • depth_separable_channels (int، اختياري، القيمة الافتراضية 2) — عدد القنوات المستخدمة في كل كتلة depth-separable.
  • depth_separable_num_layers (int، اختياري، القيمة الافتراضية 3) — عدد طبقات الالتفاف المستخدمة في كل كتلة depth-separable.
  • duration_predictor_flow_bins (int، اختياري، القيمة الافتراضية 10) — عدد القنوات التي يتم تحويلها باستخدام منحنى سبلاين كسري غير مقيّد في نموذج متنبئ المدة.
  • duration_predictor_tail_bound (float، اختياري، القيمة الافتراضية 5.0) — قيمة حدّ فئة الذيل عند حساب الدالة الكسرية غير المقيدة في نموذج متنبئ المدة.
  • duration_predictor_kernel_size (int، اختياري، القيمة الافتراضية 3) — حجم النواة لطبقات الالتفاف أحادية البُعد المستخدمة في نموذج التنبؤ بالمدة.
  • duration_predictor_dropout (float, اختياري، القيمة الافتراضية 0.5) — نسبة dropout لنموذج duration predictor.
  • duration_predictor_num_flows (int، اختياري، القيمة الافتراضية 4) — عدد مراحل التدفق (flow stages) التي يستخدمها نموذج متنبئ المدة.
  • duration_predictor_filter_channels (int, اختياري، القيمة الافتراضية 256) — عدد القنوات في طبقات الالتفاف المستخدمة في نموذج التنبؤ بالمدة.
  • prior_encoder_num_flows (int، اختياري، القيمة الافتراضية 4) — عدد مراحل التدفق المستخدمة في نموذج تدفق المُشفِّر المسبق.
  • prior_encoder_num_wavenet_layers (int, اختياري، القيمة الافتراضية 4) — عدد طبقات WaveNet المستخدمة في نموذج تدفق المُشفِّر المسبق.
  • posterior_encoder_num_wavenet_layers (int, اختياري، القيمة الافتراضية 16) — عدد طبقات WaveNet المستخدمة في نموذج مُشفِّر الاحتمال اللاحق.
  • wavenet_kernel_size (int، اختياري، القيمة الافتراضية 5) — حجم النواة لطبقات الالتفاف أحادية البُعد المستخدمة في نموذج WaveNet.
  • wavenet_dilation_rate (int، اختياري، القيمة الافتراضية 1) — معدلات التوسيع للطبقات التلافيفية أحادية البُعد المُوسَّعة المستخدمة في نموذج WaveNet.
  • wavenet_dropout (float، اختياري، القيمة الافتراضية 0.0) — نسبة dropout لطبقات WaveNet.
  • speaking_rate (float، اختياري، القيمة الافتراضية 1.0) — معدل الكلام. تمنح القيم الأكبر كلامًا مُصنَّعًا أسرع.
  • noise_scale (float، اختياري، القيمة الافتراضية 0.667) — مدى عشوائية التنبؤ بالكلام. تُنتج القيم الأكبر تنوعاً أكبر في الكلام المتنبأ به.
  • noise_scale_duration (float, اختياري، القيمة الافتراضية 0.8) — مدى عشوائية التنبؤ بالمدة. تُنتج القيم الأكبر تنوعاً أكبر في المدد المتنبأ بها.
  • sampling_rate (int، اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • pad_token_id (int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات.

هذه فئة الإعدادات المخزنة لإعدادات نموذج VitsModel. تُستخدم لاستحداث نموذج Vits وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/mms-tts-eng

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

مثال:

>>> from transformers import VitsModel, VitsConfig

>>> # Initializing a "facebook/mms-tts-eng" style configuration
>>> configuration = VitsConfig()

>>> # Initializing a model (with random weights) from the "facebook/mms-tts-eng" style configuration
>>> model = VitsModel(configuration)

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

VitsTokenizer

فئة transformers.VitsTokenizer

< >

( vocab_filepad_token = '<pad>'unk_token = '<unk>'language = Noneadd_blank = Truenormalize = Truephonemize = Trueis_uroman = False**kwargs )

المعاملات

  • vocab_file (str) — مسار ملف المفردات.
  • language (str، اختياري) — معرّف اللغة.
  • add_blank (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم إدراج معرّف الرمز 0 بين الرموز الأخرى.
  • normalize (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع النص المدخل عن طريق إزالة جميع الأحرف الكبيرة والصغيرة والعلامات الترقيمية.
  • phonemize (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تحويل النص المدخل إلى فونيمات.
  • is_uroman (bool، اختياري، القيمة الافتراضية False) — ما إذا كان من الضروري تطبيق مُرمِّز uroman على النص المُدخل قبل إجراء الترميز.

Construct a VITS tokenizer. Also supports MMS-TTS.

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

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

المعاملات

  • text (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نصوص مُقسّمة مسبقًا إلى رموز). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مقسّمة مسبقًا)، فيجب تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_pair (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نصوص مُقسّمة مسبقًا إلى رموز). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مقسّمة مسبقًا)، فيجب تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_target (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات التي سيتم ترميزها كنصوص هدف. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُقسَّم مسبقًا إلى وحدات). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مُقسَّمة مسبقًا)، فيجب عليك تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_pair_target (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات التي سيتم ترميزها كنصوص هدف. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُقسَّم مسبقًا إلى وحدات). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مُقسَّمة مسبقًا)، فيجب عليك تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • tokenizer_kwargs (dict[str, Any], اختياري) — معاملات إضافية (kwargs) تُمرَّر إلى مُجزِّئ النص (tokenizer). سيتم دمج هذه المعاملات مع المعاملات الصريحة ومعاملات أخرى، مع إعطاء الأولوية للمعاملات الصريحة.
  • add_special_tokens (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسية PretrainedTokenizerBase.build_inputs_with_special_tokens، التي تحدد الرموز التي تُضاف تلقائيًا إلى معرّفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموز bos أو eos تلقائيًا.
  • padding (bool, str أو PaddingStrategy, اختياري, الافتراضي هو False) — يُفعّل التحكم في الحشو. يقبل القيم التالية:
    • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).
    • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.
    • False أو 'do_not_pad' (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
  • truncation (bool, str أو TruncationStrategy, اختياري, الافتراضي هو False) — تفعيل التحكم في القص. يقبل القيم التالية:
    • True أو 'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. يتم هذا القص رمزًا تلو الآخر، حيث يُزال رمز من أطول تسلسل في الزوج إذا كان قد قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).
    • 'only_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يُقصّ هذا الخيار سوى التسلسل الأول من الزوج إذا قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).
    • 'only_second': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يتم قصّ النص الثاني من الزوج إلا إذا قُدِّم زوج من النصوص (أو دفعة من الأزواج).
    • False أو 'do_not_truncate' (الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).
  • max_length (int, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.

    إذا تُرك غير مُعيَّن أو عُدِّل إلى None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى.

  • stride (int، اختياري، القيمة الافتراضية 0) — إذا تم تعيينه إلى رقم مع max_length، فستحتوي الرموز الزائدة المُعاد عند return_overflowing_tokens=True على بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة.
  • is_split_into_words (bool، اختياري، القيمة الافتراضية False) — ما إذا كان المدخل مُجزَّأً مسبقاً (على سبيل المثال، مقسَّماً إلى كلمات). إذا تم ضبطه على True، يفترض المُجزِّئ أن المدخل مقسَّم بالفعل إلى كلمات (على سبيل المثال، عن طريق تقسيمه على المسافات) وسيُجزِّئها. هذا مفيد لتصنيف الكيانات الاسمية أو تصنيف الرموز.
  • pad_to_multiple_of (int, اختياري) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المقدمة. يتطلب تفعيل padding. هذا مفيد بشكل خاص لتمكين استخدام نوى Tensor على أجهزة NVIDIA التي تتمتع بقابلية حساب >= 7.5 (Volta).
  • padding_side (str، اختياري) — الجهة التي يجب تطبيق الحشو عليها في النموذج. يجب اختيارها من بين [‘right’، ‘left’]. القيمة الافتراضية تُختار من سمة الفئة التي تحمل الاسم نفسه.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من نوع Numpy.
  • return_token_type_ids (bool, اختياري) — ما إذا كان يجب إرجاع معرّفات أنواع الرموز. إذا تُركت القيمة الافتراضية، فسيتم إرجاع معرّفات أنواع الرموز وفقًا للقيمة الافتراضية الخاصة بمجزّئ الرموز المحدد، كما تحددها خاصية return_outputs .

    ما هي معرّفات أنواع الرموز؟

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

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

  • return_overflowing_tokens (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إرجاع تسلسلات الرموز الزائدة أم لا. إذا تم تقديم زوج من تسلسلات معرفات الإدخال (أو دفعة من الأزواج) مع truncation_strategy = longest_first أو True، فسيتم رفع خطأ بدلاً من إرجاع الرموز الزائدة.
  • return_special_tokens_mask (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع معلومات قناع الرموز الخاصة أم لا.
  • return_offsets_mapping (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب إرجاع (char_start, char_end) لكل رمز.

    يتوفر هذا فقط على مُرمّزيات سريعة ترث من PreTrainedTokenizerFast، فإذا كنت تستخدم مُرمّزي Python، فسيُطلق هذا الدالة NotImplementedError.

  • return_length (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع أطوال المدخلات المُرمّزة أم لا.
  • verbose (bool، اختياري، الافتراضي True) — ما إذا كان يجب طباعة مزيد من المعلومات والتحذيرات أم لا.
  • **kwargs — تُمرَّر إلى طريقة self.tokenize()

يعيد

BatchEncoding

BatchEncoding يحتوي على الحقول التالية:

  • input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج.

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

  • token_type_ids — قائمة معرّفات أنواع الرموز التي تُمرَّر إلى النموذج (عندما يكون return_token_type_ids=True أو إذا كان “token_type_ids” ضمن self.model_input_names).

    ما هي معرّفات أنواع الرموز؟

  • attention_mask — قائمة بالفهارس تحدد الرموز التي ينبغي للنموذج الانتباه إليها (عندما يكون return_attention_mask=True أو إذا كان “attention_mask” ضمن self.model_input_names).

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

  • overflowing_tokens — قائمة تسلسلات الرموز المتجاوزة (عند تحديد max_length و return_overflowing_tokens=True).

  • num_truncated_tokens — عدد الرموز المقصوصة (عند تحديد max_length و return_overflowing_tokens=True).

  • special_tokens_mask — قائمة من الأصفار والواحدات، حيث تشير الواحدة إلى الرموز الخاصة المضافة وتصفّر إلى رموز التسلسل العادية (عندما يكون add_special_tokens=True وreturn_special_tokens_mask=True).

  • length — طول المدخلات (عندما يكون return_length=True)

الطريقة الرئيسية لتجزئة (tokenization) وتجهيز تسلسل واحد أو عدة تسلسلات، أو زوج واحد أو عدة أزواج من التسلسلات، للنموذج.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

VitsModel

فئة transformers.VitsModel

< >

( config: VitsConfig )

المعاملات

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

نموذج VITS الكامل، لتوليد الكلام من النص.

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonespeaker_id: int | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonespeaking_rate: float | None = None**kwargs ) → VitsModelOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

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

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

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

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

  • speaker_id (int، اختياري) — تضمين المتكلم الذي يجب استخدامه. يُستخدم فقط في نماذج متعددة المتكلمين.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
  • labels (torch.Tensor من الشكل (batch_size, config.spectrogram_bins, sequence_length)، اختياري) — قيم رقمية عشرية للطيف الصوتي المستهدف. تُتجاهل الخطوات الزمنية (تُخفى) التي تم ضبط قيمتها على -100.0 عند حساب الخسارة.
  • speaking_rate (float, اختياري) — معدل الكلام.

يعيد

VitsModelOutput أو tuple(torch.Tensor)

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

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

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

  • waveform (torch.Tensor of shape (batch_size, sequence_length)) — الموجة الصوتية النهائية التي يتنبأ بها النموذج.

  • sequence_lengths (torch.Tensor من الشكل (batch_size,)) — طول كل عنصر في دفعة waveform مقاساً بعدد العينات.

  • مطياف التردد (torch.Tensor من الشكل (batch_size, sequence_length, num_bins)) — مطياف التردد اللوغاريتمي-الميلي المتوقع عند مخرج نموذج التدفق. يُمرَّر هذا المطياف إلى نموذج فك الترميز Hi-Fi GAN للحصول على موجة الصوت النهائية.

  • 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 VitsTokenizer, VitsModel, set_seed
>>> import torch

>>> tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
>>> model = VitsModel.from_pretrained("facebook/mms-tts-eng")

>>> inputs = tokenizer(text="Hello - my dog is cute", return_tensors="pt")

>>> set_seed(555)  # make deterministic

>>> with torch.no_grad():
...     outputs = model(inputs["input_ids"])
>>> outputs.waveform.shape
torch.Size([1, 45824])
Update on GitHub