Transformers documentation

UnivNet

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

UnivNet

نظرة عامة

The UnivNet model was proposed in UnivNet: A Neural Vocoder with Multi-Resolution Spectrogram Discriminators for High-Fidelity Waveform Generation by Won Jang, Dan Lim, Jaesam Yoon, Bongwan Kin, and Juntae Kim. The UnivNet model is a generative adversarial network (GAN) trained to synthesize high fidelity speech waveforms. The UnivNet model shared in transformers is the generator, which maps a conditioning log-mel spectrogram and optional noise sequence to a speech waveform (e.g. a vocoder). Only the generator is required for inference. The discriminator used to train the generator is not implemented.

المستخلص من الورقة البحثية هو كالتالي:

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

نصائح:

  • يجب أن يكون الحجة noise_sequence الخاصة بـ UnivNetModel.forward() ضوضاء غاوسية قياسية (مثل تلك الناتجة عن torch.randn) بأبعاد ([batch_size], noise_length, model.config.model_in_channels)، حيث يجب أن يتطابق noise_length مع بُعد الطول (البُعد 1) لحجة input_features. إذا لم يتم تقديمها، فسيتم توليدها عشوائياً؛ ويمكن تقديم torch.Generator إلى الحجة generator بحيث يمكن إعادة إنتاج مسار الأمامي. (لاحظ أن UnivNetFeatureExtractor سيعيد الضوضاء المولّدة افتراضياً، لذا لا ينبغي أن يكون من الضروري توليد noise_sequence يدوياً.)
  • يمكن إزالة الحشو المضاف بواسطة UnivNetFeatureExtractor من مخرجات UnivNetModel من خلال الطريقة UnivNetFeatureExtractor.batch_decode()، كما هو موضح في مثال الاستخدام أدناه.
  • يمكن تقليل الشوائب في نهاية عينة الصوت المولّدة عن طريق ملء نهاية كل موجة صوتية بالصمت. يمكن تحقيق ذلك بتزويد UnivNetFeatureExtractor.call() بالقيمة pad_end = True. راجع هذه المشكلة لمزيد من التفاصيل.

مثال على الاستخدام:

import torch
from datasets import Audio, load_dataset
from scipy.io.wavfile import write

from transformers import UnivNetFeatureExtractor, UnivNetModel


model_id_or_path = "dg845/univnet-dev"
model = UnivNetModel.from_pretrained(model_id_or_path, device_map="auto")
feature_extractor = UnivNetFeatureExtractor.from_pretrained(model_id_or_path)

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
# Resample the audio to the model and feature extractor's sampling rate.
ds = ds.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
# Pad the end of the converted waveforms to reduce artifacts at the end of the output audio samples.
inputs = feature_extractor(
    ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], pad_end=True, return_tensors="pt"
)

with torch.no_grad():
    audio = model(**inputs)

# Remove the extra padding at the end of the output.
audio = feature_extractor.batch_decode(**audio)[0]
# Convert to wav file
write("sample_audio.wav", feature_extractor.sampling_rate, audio)

تمت مساهمة هذا النموذج من قِبل dg845. بحسب علمي، لا يوجد إصدار رسمي للكود، لكن يمكن العثور على تطبيق غير رسمي في maum-ai/univnet مع نقاط تحقق مسبقة التدريب هنا.

UnivNetConfig

فئة transformers.UnivNetConfig

< >

( 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 = Nonemodel_in_channels: int = 64model_hidden_channels: int = 32num_mel_bins: int = 100resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 3, 3)resblock_stride_sizes: list[int] | tuple[int, ...] = (8, 8, 4)resblock_dilation_sizes: list | tuple = ((1, 3, 9, 27), (1, 3, 9, 27), (1, 3, 9, 27))kernel_predictor_num_blocks: int = 3kernel_predictor_hidden_channels: int = 64kernel_predictor_conv_size: int = 3kernel_predictor_dropout: float | int = 0.0initializer_range: float = 0.01leaky_relu_slope: float = 0.2 )

المعاملات

  • model_in_channels (int، اختياري، القيمة الافتراضية 64) — عدد قنوات الإدخال لشبكة UnivNet المتبقية. يجب أن يتوافق هذا مع noise_sequence.shape[1] والقيمة المستخدمة في فئة UnivNetFeatureExtractor.
  • model_hidden_channels (int، اختياري، القيمة الافتراضية 32) — عدد القنوات المخفية في كل كتلة متبقية في الشبكة المتبقية UnivNet.
  • num_mel_bins (int، اختياري، القيمة الافتراضية 100) — عدد نطاقات التردد في طيف log-mel الشرطي. يجب أن يتوافق هذا مع القيمة المستخدمة في فئة UnivNetFeatureExtractor.
  • resblock_kernel_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [3, 3, 3]) — مجموعة من الأعداد الصحيحة (tuple) تحدد أحجام النوى (kernel sizes) لطبقات الالتفاف أحادية البعد (1D convolutional layers) في شبكة UnivNet المتبقية (residual network). يحدد طول resblock_kernel_sizes عدد كتل resnet، ويجب أن يتطابق مع طول resblock_stride_sizes وresblock_dilation_sizes.
  • resblock_stride_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [8, 8, 4]) — مجموعة من الأعداد الصحيحة تُعرّف أحجام الخطوة (stride) لطبقات الالتفاف أحادية البعد في شبكة UnivNet المتبقية. يجب أن يطابق طول resblock_stride_sizes طول resblock_kernel_sizes وresblock_dilation_sizes.
  • resblock_dilation_sizes (tuple[tuple[int]] أو list[list[int]]، اختياري، القيمة الافتراضية هي [[1, 3, 9, 27], [1, 3, 9, 27], [1, 3, 9, 27]]) — مجموعة من الأعداد الصحيحة المتداخلة تُعرّف معدلات التمدد (dilation rates) لطبقات الالتفاف أحادية البعد المتمددة في شبكة UnivNet المتبقية. يجب أن يطابق طول resblock_dilation_sizes طول resblock_kernel_sizes وresblock_stride_sizes. يحدد طول كل قائمة متداخلة داخل resblock_dilation_sizes عدد طبقات الالتفاف لكل كتلة resnet.
  • kernel_predictor_num_blocks (int، اختياري، القيمة الافتراضية 3) — عدد الكتل المتبقية في شبكة تنبؤ النواة، التي تحسب النواة والانحياز لكل طبقة تلافيف متغيرة الموقع في شبكة UnivNet المتبقية.
  • kernel_predictor_hidden_channels (int، اختياري، القيمة الافتراضية 64) — عدد القنوات المخفية لكل كتلة متبقية في شبكة تنبؤ النواة.
  • kernel_predictor_conv_size (int، اختياري، القيمة الافتراضية 3) — حجم النواة لكل طبقة تلافيفية أحادية البُعد في شبكة تنبؤ النواة.
  • kernel_predictor_dropout (float، اختياري، القيمة الافتراضية 0.0) — احتمالية الإسقاط (dropout) لكل كتلة متبقية (residual block) في شبكة تنبؤ النواة (kernel predictor network).
  • initializer_range (float، اختياري، القيمة الافتراضية 0.01) — انحراف معياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • leaky_relu_slope (float, اختياري، القيمة الافتراضية 0.2) — زاوية الميل السالب المستخدمة في دالة التنشيط Leaky ReLU.

هذه فئة الإعدادات (Configuration) المخزنة لإعدادات UnivNetModel. تُستخدم لاستنساخ نموذج Univnet وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ dg845/univnet-dev

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

مثال:

>>> from transformers import UnivNetModel, UnivNetConfig

>>> # Initializing a Tortoise TTS style configuration
>>> configuration = UnivNetConfig()

>>> # Initializing a model (with random weights) from the Tortoise TTS style configuration
>>> model = UnivNetModel(configuration)

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

UnivNetFeatureExtractor

فئة transformers.UnivNetFeatureExtractor

< >

( feature_size: int = 1sampling_rate: int = 24000padding_value: float = 0.0do_normalize: bool = Falsenum_mel_bins: int = 100hop_length: int = 256win_length: int = 1024win_function: str = 'hann_window'filter_length: int | None = 1024max_length_s: int = 10fmin: float = 0.0fmax: float | None = Nonemel_floor: float = 1e-09center: bool = Falsecompression_factor: float = 1.0compression_clip_val: float = 1e-05normalize_min: float = -11.512925148010254normalize_max: float = 2.3143386840820312model_in_channels: int = 64pad_end_length: int = 10return_attention_mask = True**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 1) — أبعاد الميزة للميزات المستخرجة.
  • sampling_rate (int, اختياري، القيمة الافتراضية 24000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، معبّرًا عنه بالهرتز (Hz).
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — القيمة المستخدمة للتعبئة عند تطبيق استراتيجية التعبئة المعرّفة بواسطة الحجة padding على UnivNetFeatureExtractor.call(). يجب أن تتوافق مع صمت الصوت. كما ستستخدم الحجة pad_end في __call__ قيمة التعبئة هذه.
  • do_normalize (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تنفيذ تطبيع Tacotron 2 على المدخلات. يمكن أن يساعد التطبيع في تحسين الأداء بشكل كبير لبعض النماذج.
  • num_mel_bins (int, اختياري، القيمة الافتراضية 100) — عدد خلايا ترددات ميل في ميزات الطيف الصوتي المستخرجة. يجب أن يتطابق هذا مع UnivNetModel.config.num_mel_bins.
  • hop_length (int، اختياري، القيمة الافتراضية 256) — العدد المباشر للعينات بين النوافذ المنزلقة. ويُشار إليه أيضاً باسم «الإزاحة» في العديد من الأوراق البحثية. لاحظ أن هذا يختلف عن مستخرجات ميزات الصوت الأخرى مثل SpeechT5FeatureExtractor التي تأخذ hop_length بالمللي ثانية.
  • win_length (int، اختياري، القيمة الافتراضية 1024) — عدد العينات المباشر لكل نافذة منزلقة. لاحظ أن هذا يختلف عن مستخرجات ميزات الصوت الأخرى مثل SpeechT5FeatureExtractor التي تأخذ win_length بالمللي ثانية.
  • win_function (str، اختياري، القيمة الافتراضية "hann_window") — اسم لدالة النافذة المستخدمة للتقسيم إلى نوافذ، ويجب أن تكون قابلة للوصول عبر torch.{win_function}
  • filter_length (int، اختياري، القيمة الافتراضية 1024) — عدد مكونات FFT المستخدمة. إذا كانت None، يتم تحديدها باستخدام transformers.audio_utils.optimal_fft_length.
  • max_length_s (int، اختياري، القيمة الافتراضية 10) — الحد الأقصى لطول مدخلات النموذج بالثواني. يُستخدم هذا لتعبئة الصوت.
  • fmin (float، اختياري، القيمة الافتراضية 0.0) — أدنى تردد ميل بالهرتز.
  • fmax (float, اختياري) — أقصى تردد ميل بالهرتز. إذا لم يتم ضبطه، يكون الافتراضي sampling_rate / 2.
  • mel_floor (float، اختياري، القيمة الافتراضية 1e-09) — القيمة الدنيا لبنوك ترددات ميل. لاحظ أن الطريقة التي يستخدم بها UnivNetFeatureExtractor معامل mel_floor تختلف عن الطريقة المستخدمة في transformers.audio_utils.spectrogram().
  • center (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب ملء الموجة (padding) بحيث تكون الإطار t متمركزاً حول الزمن t * hop_length. إذا كانت القيمة False، فإن الإطار t سيبدأ عند الزمن t * hop_length.
  • compression_factor (float، اختياري، القيمة الافتراضية 1.0) — معامل الضغط الضربي لضغط المدى الديناميكي أثناء التطبيع الطيفي.
  • compression_clip_val (float، اختياري، القيمة الافتراضية 1e-05) — قيمة القص المطبقة على الموجة قبل تطبيق ضغط النطاق الديناميكي أثناء التطبيع الطيفي.
  • normalize_min (float، اختياري، القيمة الافتراضية -11.512925148010254) — القيمة الدنيا المستخدمة في التطبيع الخطي بنمط Tacotron 2. القيمة الافتراضية هي القيمة الأصلية من تطبيق Tacotron 2.
  • normalize_max (float، اختياري، القيمة الافتراضية 2.3143386840820312) — القيمة القصوى المستخدمة في التطبيع الخطي بنمط Tacotron 2. القيمة الافتراضية هي القيمة الأصلية من تطبيق Tacotron 2.
  • model_in_channels (int، اختياري، القيمة الافتراضية 64) — عدد قنوات الإدخال لنموذج UnivNetModel. يجب أن يتطابق هذا مع UnivNetModel.config.model_in_channels.
  • pad_end_length (int، اختياري، القيمة الافتراضية 10) — عند إضافة الحشو إلى نهاية كل موجة صوتية، يُحدد هذا المعامل عدد إطارات الطيف الصوتي (spectrogram frames) من العينات التي يجب إضافتها. وسيكون عدد العينات المضافة مساوياً لـ pad_end_length * hop_length.
  • return_attention_mask (bool، اختياري، القيمة الافتراضية True) — ما إذا كان ينبغي لـ call() إرجاع attention_mask أم لا.

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

تستخرج هذه الفئة ميزات بنك مرشحات اللوغ-ميل من الكلام الخام باستخدام تحويل فورييه قصير المدى (STFT). يتبع تنفيذ STFT ذلك المستخدم في TacoTron 2 و Hifi-GAN.

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

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]sampling_rate: int | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonetruncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_noise: bool = Truegenerator: numpy.random._generator.Generator | None = Nonepad_end: bool = Falsepad_length: int | None = Nonedo_normalize: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = None )

المعاملات

  • raw_speech (np.ndarray، list[float]، list[np.ndarray]، list[list[float]]) — التسلسل أو الدفعة من التسلسلات التي سيتم ملؤها. يمكن أن يكون كل تسلسل مصفوفة numpy، أو قائمة من قيم float، أو قائمة من مصفوفات numpy، أو قائمة من قوائم قيم float. يجب أن يكون الصوت أحادي القناة وليس ستيريو، أي قيمة float واحدة لكل خطوة زمنية.
  • sampling_rate (int, اختياري) — معدل أخذ العينات الذي تم به أخذ عينات مدخل raw_speech. يُوصى بشدة بتمرير sampling_rate عند استدعاء الأمامي لمنع الأخطاء الصامتة وتمكين خط أنابيب التعرف التلقائي على الكلام.
  • padding (bool, str أو PaddingStrategy, اختياري, الافتراضي هو True) — اختر استراتيجية لحشو الموجات الصوتية المدخلة raw_speech (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:
    • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).
    • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.
    • False أو 'do_not_pad' (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).

    إذا كان pad_end = True، فسيتم تنفيذ ذلك الحشو قبل تطبيق استراتيجية padding.

  • max_length (int، اختياري) — الحد الأقصى لطول القائمة المُعادَة وطول الحشو بشكل اختياري (انظر أعلاه).
  • truncation (bool، اختياري، القيمة الافتراضية True) — يفعّل القصّ لقطع تسلسلات الإدخال الأطول من max_length إلى max_length.
  • pad_to_multiple_of (int, اختياري) — إذا تم تعيينه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.

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

  • return_noise (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم توليد موجة ضوضاء وإعادتها للاستخدام في UnivNetModel.forward().
  • generator (numpy.random.Generator، اختياري، القيمة الافتراضية None) — مولّد أرقام عشوائية اختياري من نوع numpy.random.Generator يُستخدم عند توليد الضوضاء.
  • pad_end (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب ملء نهاية كل موجة صوتية بصمت. يمكن أن يساعد ذلك في تقليل الشوائب في نهاية عينة الصوت المولّدة؛ راجع https://github.com/seungwonpark/melgan/issues/8 لمزيد من التفاصيل. سيتم تنفيذ هذا الملء قبل تطبيق استراتيجية الملء المحددة في padding.
  • pad_length (int، اختياري، القيمة الافتراضية None) — عند إضافة حشو في نهاية كل موجة صوتية، يحدد هذا الطول بعدد إطارات الطيف. إذا لم يتم تعيينه، فسيتم استخدام self.config.pad_end_length كقيمة افتراضية.
  • do_normalize (bool، اختياري) — ما إذا كان سيتم تنفيذ تطبيع Tacotron 2 على المدخلات. يمكن أن يساعد التطبيع في تحسين الأداء بشكل كبير لبعض النماذج. إذا لم يتم تعيينه، فسيتم افتراض self.config.do_normalize.
  • return_attention_mask (bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمعالج الميزات (feature_extractor) المعني.

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

  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.np.array من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من نوع Numpy.

الطريقة الرئيسية لتحويل السلسلة أو السلاسل إلى ميزات وتجهيزها للنموذج.

UnivNetModel

فئة transformers.UnivNetModel

< >

( config: UnivNetConfig )

المعاملات

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

نموذج Univnet الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

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

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

forward

< >

( input_features: Tensornoise_sequence: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool | None = None**kwargs ) → UnivNetModelOutput or tuple(torch.Tensor)

المعاملات

  • input_features (torch.Tensor من الشكل (batch_size, sequence_length, feature_dim)) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام UnivNetFeatureExtractor. راجع UnivNetFeatureExtractor.call() للتفاصيل (processor_class يستخدم UnivNetFeatureExtractor لمعالجة ملفات الصوت).
  • noise_sequence (torch.Tensor, اختياري) — مصفوفة تحتوي على تسلسل ضوضاء من ضوضاء غاوسية قياسية. يمكن أن تكون مُجمَّعة (batched) وبشكل (batch_size, sequence_length, config.model_in_channels)، أو غير مُجمَّعة وبشكل (sequence_length, config.model_in_channels)`. إذا لم يتم تقديمها، فسيتم توليدها عشوائيًا.
  • padding_mask (torch.BoolTensor, اختياري) — قناع يُظهر الأجزاء المُملّأة من كل تسلسل. تُختار قيم القناع من [0, 1]:
    • 1 للرموز التي لم تُقنَّع
    • 0 للرموز التي تكون مقنّعة

    يمكن أن تكون القناع مُجمَّعة (batched) وبشكل (batch_size, sequence_length) أو غير مُجمَّعة وبشكل (sequence_length,).

  • generator (torch.Generator، اختياري) — مولّد torch لجعل عملية التوليد حتمية. return_dict: ما إذا كان يجب إرجاع فئة فرعية من ModelOutput بدلاً من tuple عادي.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

UnivNetModelOutput أو tuple(torch.Tensor)

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

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

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

  • الموجات الصوتية (torch.Tensor من الشكل (batch_size, sequence_length)) — موجات صوتية مُجمَّعة أحادية البُعد (قناة واحدة) للمخرجات.
  • waveform_lengths (torch.Tensor of shape (batch_size,)) — الطول المُجمَّع لكل موجة صوتية غير مُملّأة في waveforms، مقاسًا بعدد العينات.

مثال:

>>> from transformers import UnivNetFeatureExtractor, UnivNetModel
>>> from datasets import load_dataset, Audio

>>> model = UnivNetModel.from_pretrained("dg845/univnet-dev")
>>> feature_extractor = UnivNetFeatureExtractor.from_pretrained("dg845/univnet-dev")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> # Resample the audio to the feature extractor's sampling rate.
>>> ds = ds.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
>>> inputs = feature_extractor(
...     ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt"
... )
>>> audio = model(**inputs).waveforms
>>> list(audio.shape)
[1, 140288]
Update on GitHub