Transformers documentation

X-Codec2

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 في 2025-02-06 وسُهم به في Hugging Face Transformers في 2026-06-25.

X-Codec2

SDPA

نظرة عامة

قُدِّم نموذج X-Codec2 في Llasa: Scaling Train-Time and Inference-Time Compute for Llama-based Speech Synthesis.

X-Codec2 هو مشفّر صوتي عصبي مصمّم لتحسين تركيب الكلام وتوليد الصوت بشكل عام في خطوط أنابيب نماذج اللغة الكبيرة (LLM). وهو يوسّع X-Codec الأصلي من خلال تحسين طريقة دمج المعلومات الدلالية والصوتية وتحويلها إلى رموز، مما يتيح تمثيلاً صوتياً فعالاً وعالياً الدقة.

حول معماريته:

  • الترميز الموحّد الدلالي-الصوتي: يدمج X-Codec2 المخرجات من مُرمِّز دلالي (مثل Wav2Vec2-BERT) ومُرمِّز صوتي في تضمين واحد، لالتقاط كلٍّ من المعنى على مستوى عالٍ (مثل محتوى النص، والعاطفة) وتفاصيل الصوت على مستوى منخفض (مثل طبقة الصوت).
  • تكميم الميزات القياسي أحادي المرحلة (FSQ): على عكس تكميم VQ المتبقي متعدد الطبقات المستخدم في معظم الأساليب (مثل DAC، EnCodec، X-Codec، Mimi)، يستخدم X-Codec2 طبقة واحدة من تكميم الميزات القياسي (FSQ) من أجل الاستقرار والتوافق مع نماذج LLM السببية ذاتية التراجع.
  • تصميم متوافق مع نماذج التحويل: يتوافق بنية الرموز أحادية البعد في X-Codec2 بشكل طبيعي مع النمذجة الذاتية في نماذج اللغة الكبيرة مثل LLaMA، مما يحسّن كفاءة التدريب والتوافق مع المهام اللاحقة.

يتوفر نقطة تفتيش للنموذج في HKUSTAudio/xcodec2-hf.

تمت مساهمة هذا النموذج من قِبل إريك بيزام وستيفن تشنغ. يمكن العثور على كود النمذجة الأصلي هنا، بينما كود التدريب الخاص بهما هنا.

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

فيما يلي مثال سريع على كيفية ترميز وفك ترميز صوت باستخدام هذا النموذج:

from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel

model_id = "HKUSTAudio/xcodec2-hf"
model = AutoModel.from_pretrained(model_id, device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio = dataset[0]["audio"]["array"]
inputs = feature_extractor(audio=audio, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(
    model.device, model.dtype
)
print("Input waveform shape:", inputs["input_values"].shape)
# Input waveform shape: torch.Size([1, 1, 93760])

# encoder and decoder
audio_codes = model.encode(**inputs).audio_codes
print("Audio codes shape:", audio_codes.shape)
# Audio codes shape: torch.Size([1, 1, 293])
audio_values = model.decode(audio_codes).audio_values
print("Audio values shape:", audio_values.shape)
# Audio values shape: torch.Size([1, 1, 93760])

# Equivalently, you can do encoding and decoding in one step
model_output = model(**inputs)
audio_codes = model_output.audio_codes
audio_values = model_output.audio_values

المعالجة الدفعية

تدعم هذه النسخة أيضًا إدخالًا مجمّعًا (batched input)، على عكس الإصدار الأصلي!

from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel

batch_size = 2
model_id = "HKUSTAudio/xcodec2-hf"
model = AutoModel.from_pretrained(model_id, device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audios = [dataset[i]["audio"]["array"] for i in range(batch_size)]
inputs = feature_extractor(audio=audios, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(
    model.device, model.dtype
)
print("Input waveform shape:", inputs["input_values"].shape)
# Input waveform shape: torch.Size([2, 1, 93760])

# encoder and decoder
encoder_output = model.encode(**inputs)
audio_codes = encoder_output.audio_codes
print("Audio codes shape:", audio_codes.shape)
# Audio codes shape: torch.Size([2, 1, 293])
audio_values = model.decode(audio_codes).audio_values
print("Audio values shape:", audio_values.shape)
# Audio values shape: torch.Size([2, 1, 93760])

# Equivalently, you can do encoding and decoding in one step
model_output = model(**inputs)
audio_codes = model_output.audio_codes
audio_values = model_output.audio_values

التسريع باستخدام torch.compile

يمكنك تسريع الاستدلال باستخدام torch.compile. ستكون الاستدعاءات الأولى أبطأ بسبب تكاليف التجميع، لكن الاستدعاءات اللاحقة ستكون أسرع.

على بطاقة A100، لاحظنا تسريعًا بنسبة ~1.35 لحجم دفعة يساوي 4 (script).

import torch
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel

batch_size = 4
model_id = "HKUSTAudio/xcodec2-hf"
model = AutoModel.from_pretrained(model_id, device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audios = [dataset[i]["audio"]["array"] for i in range(batch_size)]
inputs = feature_extractor(
    audio=audios, sampling_rate=feature_extractor.sampling_rate, padding=True, return_tensors="pt"
).to(model.device, model.dtype)

compiled_model = torch.compile(model, fullgraph=True)

# Warmup (includes compilation on first call)
for _ in range(10):
    with torch.inference_mode():
        _ = compiled_model(**inputs)

with torch.inference_mode():
    output = compiled_model(**inputs)
print("Audio values shape:", output.audio_values.shape)

Xcodec2Config

فئة transformers.Xcodec2Config

< >

( 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 = 1024intermediate_size: int = 4096num_hidden_layers: int = 12num_attention_heads: int = 16num_key_value_heads: int = 16hidden_act: str = 'silu'max_position_embeddings: int = 4096initializer_range: float = 0.02rms_norm_eps: float = 1e-06pad_token_id: int | None = Nonetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0head_dim: int = 64encoder_hidden_size: int = 48downsampling_ratios: list[int] | tuple[int, ...] = (2, 2, 4, 4, 5)semantic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonesampling_rate: int = 16000activation_dropout: float = 0.1quantization_dim: int = 2048quantization_levels: list[int] | tuple[int, ...] = (4, 4, 4, 4, 4, 4, 4, 4) )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 1024) — أبعاد التمثيلات المخفية.
  • intermediate_size (int، اختياري، القيمة الافتراضية 4096) — أبعاد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 12) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_key_value_heads (int, اختياري، القيمة الافتراضية 16) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كان num_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كان num_key_value_heads=1 فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هي num_attention_heads.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 4096) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • rms_norm_eps (float، اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.
  • pad_token_id (int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • attention_dropout (Union[int, float]، اختياري، القيمة الافتراضية 0.0) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • head_dim (int، اختياري، القيمة الافتراضية 64) — بعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads
  • encoder_hidden_size (int، اختياري، القيمة الافتراضية 48) — أبعاد التمثيلات المخفية.
  • downsampling_ratios (list[int]، اختياري، القيمة الافتراضية [2, 2, 4, 4, 5]) — النسب المستخدمة في تقليل حجم البيانات داخل المُشفِّر.
  • semantic_model_config (Union[Dict, Wav2Vec2BertConfig], اختياري) — مثال من كائن التهيئة الخاص بالنموذج الدلالي (Wav2Vec2BertConfig).
  • sampling_rate (int، اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • activation_dropout (float، اختياري، القيمة الافتراضية 0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • quantization_dim (int، اختياري، القيمة الافتراضية 2048) — البُعد الخاص بكتاب الترميز في التكميم المتجهي.
  • quantization_levels (list[int]، اختياري، القيمة الافتراضية [4, 4, 4, 4, 4, 4, 4, 4]) — المستويات الخاصة بكتاب الترميز في التكميم المتجهي.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Xcodec2Model. تُستخدم لاستحداث نموذج Xcodec2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ HKUSTAudio/xcodec2-hf

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

مثال:

>>> from transformers import Xcodec2Config, Xcodec2Model

>>> # Initializing configuration
>>> configuration = Xcodec2Config()

>>> # Initializing a model (with random weights) from the configuration
>>> model = Xcodec2Model(configuration)

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

Xcodec2FeatureExtractor

فئة transformers.Xcodec2FeatureExtractor

< >

( feature_size = 80sampling_rate = 16000padding_value = 1.0hop_length = 320**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 80) — أبعاد الميزة للميزات المستخرجة.
  • sampling_rate (int، اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، معبّرًا عنه بالهرتز (Hz).
  • padding_value (float، اختياري، القيمة الافتراضية 1.0) — القيمة المستخدمة لملء متجهات الحشو في مطياف الميّل.
  • hop_length (int، اختياري، القيمة الافتراضية 320) — عدد عينات الصوت المُرمَّزة في كل إطار. يعادل حاصل ضرب نسب تقليل العينة. مطلوب لحشو مدخلات المُرمِّز الصوتي.

ينشئ مستخرج ميزات Xcodec2، الذي يحسب ميزات بنك مرشحات ميل للمشفّر الدلالي والصوت المملوء للمشفّر الصوتي.

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

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonedevice: str = 'cpu'**kwargs )

المعاملات

  • audio (np.ndarray، torch.Tensor، list[np.ndarray]، list[torch.Tensor]) — مصفوفة Numpy أو متجه torch بأبعاد (num_channels, sequence_length). يمكن أيضًا تقديم قائمة من هذه المصفوفات أو المتجهات لمجموعة من المدخلات.
  • padding (bool, str أو PaddingStrategy, اختياري, الافتراضي هو True) — اختر استراتيجية لحشو التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:
    • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).
    • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.
    • False أو 'do_not_pad' (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
  • max_length (int، اختياري) — الحد الأقصى لطول القائمة المُعادَة وطول الحشو بشكل اختياري (انظر أعلاه).
  • truncation (bool) — يفعّل القصّ لقطع تسلسلات الإدخال الأطول من max_length إلى max_length.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي:
    • 'tf': إرجاع كائنات tf.constant من TensorFlow.
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من نوع Numpy.
  • sampling_rate (int, اختياري) — معدل أخذ العينات الذي تم به أخذ عينات مدخل audio. يُوصى بشدة بتمرير sampling_rate عند استدعاء الأمامي لمنع الأخطاء الصامتة.
  • device (str، اختياري، الافتراضي "cpu") — الجهاز الخاص بتensors في PyTorch أثناء استخراج ميزات بنك مرشحات ميل.
  • kwargs (اختياري) — المتبقّي من قاموس معاملات الكلمات المفتاحية التي سيتم تمريرها إلى مُجزّئ النص أو مستخرج الميزات.

Xcodec2Model

فئة transformers.Xcodec2Model

< >

( config: Xcodec2Config )

المعاملات

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

نموذج Xcodec2، وهو شيفرة صوتية عصبية.

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

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

decode

< >

( audio_codes: typing.Optional[torch.Tensor] = Nonelatents: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Xcodec2DecoderOutput or tuple(torch.Tensor)

المعاملات

  • audio_codes (torch.LongTensor من الشكل (batch_size, 1, codes_length)) — فهارس رموز منفصلة محسوبة باستخدام model.encode.
  • latents (torch.Tensor من الشكل (batch_size, dimension, time_steps)، اختياري) — تمثيل مستمر مُكمَّم للمدخلات.

يعيد

Xcodec2DecoderOutput أو tuple(torch.Tensor)

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

  • audio_values (torch.Tensor of shape (batch_size, 1, segment_length), اختياري) — قيم موجة الصوت المُفكّكة في مجال الزمن، والمُستخرجة عن طريق تحويل الرموز المنفصلة مرة أخرى إلى إشارات صوتية مستمرة. يمثل هذا الصوت المُعاد بناؤه والذي يمكن تشغيله.

encode

< >

( input_values: Tensorinput_features: Tensorpadding_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneoutput_latents: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Xcodec2EncoderOutput or tuple(torch.Tensor)

المعاملات

  • input_values (torch.Tensor من الشكل (batch_size, 1, sequence_length)) — موجة الصوت المدخلة.
  • input_features (torch.Tensor من الشكل (batch_size, mel_bins, time_steps)) — مطياف ميل الصوتي المدخل للتشفير الدلالي.
  • padding_mask (torch.Tensor من الشكل (batch_size, 1, sequence_length)) — قناع الحشو المستخدم لحشو input_values.
  • input_features_mask (torch.Tensor of shape (batch_size, time_steps), اختياري) — قناع الانتباه (Attention mask) لإدخال الطيف الصوتي إلى المُشفِّر الدلالي. 1 للإطارات الصالحة، و0 للتعبئة.
  • output_latents (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع التمثيل الكامن المستمر من المُكمِّم.

يعيد

Xcodec2EncoderOutput أو tuple(torch.Tensor)

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

  • audio_codes (torch.LongTensor من الشكل (batch_size, 1, codes_length)، اختياري) — تمثيلات رموز منفصلة محسوبة باستخدام model.encode. تمثل هذه الرموز الشكل المضغوط والمكمَّم للإشارة الصوتية المدخلة، ويمكن استخدامها للتخزين أو النقل أو التوليد.
  • latents (torch.Tensor من الشكل (batch_size, dimension, time_steps)) — تمثيل مستمر مُكمَّم لتضمين المدخلات.
  • audio_codes_mask (torch.int32 من الشكل (batch_size, 1, codes_length)، اختياري) — padding_mask مُصغَّر الحجم للإشارة إلى رموز الصوت الصالحة في audio_codes.

forward

< >

( input_values: Tensorinput_features: Tensorpadding_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneoutput_latents: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Xcodec2Output or tuple(torch.Tensor)

المعاملات

  • input_values (torch.Tensor من الشكل (batch_size, 1, sequence_length)) — موجة الصوت المدخلة.
  • input_features (torch.Tensor من الشكل (batch_size, mel_bins, time_steps)) — مطياف ميل الصوتي المدخل للتشفير الدلالي.
  • padding_mask (torch.Tensor من الشكل (batch_size, 1, sequence_length)) — قناع الحشو المستخدم لحشو input_values.
  • input_features_mask (torch.Tensor of shape (batch_size, time_steps), اختياري) — قناع الانتباه (Attention mask) لإدخال الطيف الصوتي إلى المُشفِّر الدلالي. 1 للإطارات الصالحة، و0 للتعبئة.
  • output_latents (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع التمثيل الكامن المستمر من المُكمِّم.

يعيد

Xcodec2Output أو tuple(torch.Tensor)

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

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

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

  • audio_values (torch.Tensor من الشكل (batch_size, 1, sequence_length)، اختياري) — قيم موجة الصوت المُفكّكة في مجال الزمن، والمُستخرجة باستخدام جزء المُفكّك من Xcodec2. تمثّل هذه القيم إشارة الصوت المُعاد بناؤها.
  • audio_codes (torch.LongTensor من الشكل (batch_size, 1, codes_length)، اختياري) — تمثيلات رموز منفصلة محسوبة باستخدام model.encode. هذه هي التمثيلات الكمّية للصوت المدخل المستخدمة للمعالجة أو التوليد اللاحق.
  • latents (torch.Tensor من الشكل (batch_size, dimension, time_steps)) — تمثيل مستمر مُكمَّم لتضمين المدخلات.
  • audio_codes_mask (torch.int32 من الشكل (batch_size, 1, codes_length)، اختياري) — padding_mask مُصغَّر الحجم للإشارة إلى رموز الصوت الصالحة في audio_codes.

أمثلة:

>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, Xcodec2Model

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> audio = dataset["train"]["audio"][0]["array"]

>>> model_id = "HKUSTAudio/xcodec2-hf"
>>> model = Xcodec2Model.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

>>> inputs = feature_extractor(audio=audio, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt")

>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_values
Update on GitHub