Transformers documentation
X-Codec2
نُشر هذا النموذج في أوراق HF في 2025-02-06 وسُهم به في Hugging Face Transformers في 2026-06-25.
X-Codec2
نظرة عامة
قُدِّم نموذج 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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 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.configXcodec2FeatureExtractor
فئة transformers.Xcodec2FeatureExtractor
< source >( 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__
< source >( 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
< source >( config: Xcodec2Config )
المعاملات
- config (Xcodec2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Xcodec2، وهو شيفرة صوتية عصبية.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
decode
< source >( 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.Tensorof shape(batch_size, 1, segment_length), اختياري) — قيم موجة الصوت المُفكّكة في مجال الزمن، والمُستخرجة عن طريق تحويل الرموز المنفصلة مرة أخرى إلى إشارات صوتية مستمرة. يمثل هذا الصوت المُعاد بناؤه والذي يمكن تشغيله.
encode
< source >( 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.Tensorof 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
< source >( 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.Tensorof 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