Transformers documentation
NeuCodec
نُشر هذا النموذج في أوراق HF في 11 سبتمبر 2025، وأُضيف إلى مكتبة Hugging Face Transformers في 2 سبتمبر 2026.
NeuCodec
نظرة عامة
قُدِّم نموذج NeuCodec في Finite Scalar Quantization Enables Redundant and Transmission-Robust Neural Audio Compression at Low Bit-rates.
NeuCodec هو مشفّر صوتي عصبي مبني على XCodec2. يستفيد من الميزات التالية:
- كمّية قياسية محدودة (FSQ) تؤدي إلى كتاب رموز واحد، مما يجعلها مثالية للنمذجة اللاحقة باستخدام نماذج لغة الكلام.
- تم تدريبه على بيانات CC بحيث لا توجد قيود على البيانات غير التجارية.
- عند 50 رمزًا في الثانية و16 بت لكل رمز، يكون معدل البت الكلي 0.8kbps.
- يستقبل مشفّر/مشفّر الصوت مدخلات بتردد 16kHz ويخرج 24kHz باستخدام مفكك رفع العينة.
- يسمح مخطط ترميز FSQ بمقاومة الأخطاء على مستوى البت، وهو ما يناسب القنوات غير الموثوقة والمليئة بالضوضاء.
يمكن العثور على كود النمذجة الأصلي هنا.
مثال على الاستخدام
فيما يلي مثال سريع على كيفية ترميز وفك ترميز صوت باستخدام هذا النموذج:
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel
model_id = "neuphonic/neucodec"
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, 292])
audio_values = model.decode(audio_codes).audio_values
print("Audio values shape:", audio_values.shape)
# 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المعالجة الدفعية
تدعم هذه النسخة أيضاً الإدخال المُجمَّع!
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel
batch_size = 2
model_id = "neuphonic/neucodec"
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, 292])
audio_values = model.decode(audio_codes).audio_values
print("Audio values shape:", audio_values.shape)
# 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. ستكون الاستدعاءات الأولى أبطأ بسبب تكاليف التجميع، لكن الاستدعاءات اللاحقة ستكون أسرع.
import torch
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel
batch_size = 4
model_id = "neuphonic/neucodec"
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)NeuCodecConfig
فئة transformers.NeuCodecConfig
< 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 = Noneactivation_dropout: float = 0.1quantization_dim: int = 2048quantization_levels: list[int] | tuple[int, ...] = (4, 4, 4, 4, 4, 4, 4, 4)input_sampling_rate: int = 16000output_sampling_rate: int = 24000 )
المعاملات
- 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). - activation_dropout (
float، اختياري، القيمة الافتراضية0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل. - quantization_dim (
int، اختياري، القيمة الافتراضية 2048) — البُعد الخاص بكتاب الترميز في التكميم المتجهي. - quantization_levels (
list[int]، اختياري، القيمة الافتراضية[4, 4, 4, 4, 4, 4, 4, 4]) — المستويات الخاصة بكتاب الترميز في التكميم المتجهي. - input_sampling_rate (
int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات، بالهرتز (Hz)، لموجة الصوت المدخلة إلى المُشفِّر. - output_sampling_rate (
int، اختياري، القيمة الافتراضية 24000) — معدل أخذ العينات، بالهرتز (Hz)، لموجة الصوت الناتجة عن المُفكِّك.
هذه فئة الإعدادات (configuration class) لتخزين إعدادات نموذج NeuCodecModel. تُستخدم لاستحداث نموذج Neucodec وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث فئة الإعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ neuphonic/neucodec
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import NeuCodecConfig, NeuCodecModel
>>> # Initializing configuration
>>> configuration = NeuCodecConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = NeuCodecModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configNeuCodecFeatureExtractor
فئة transformers.NeuCodecFeatureExtractor
< 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) — عدد عينات الصوت المُرمَّزة في كل إطار. يعادل حاصل ضرب نسب تقليل العينة. مطلوب لحشو مدخلات المُرمِّز الصوتي.
ينشئ مستخرج ميزات NeuCodec، الذي يحسب ميزات بنك مرشحات ميل للمشفّر الدلالي والصوت المُملأ للمشفّر الصوتي.
يرث مستخرج الميزات هذا من 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 (اختياري) — المتبقّي من قاموس معاملات الكلمات المفتاحية التي سيتم تمريرها إلى مُجزّئ النص أو مستخرج الميزات.
NeuCodecModel
فئة transformers.NeuCodecModel
< source >( config: NeuCodecConfig )
المعاملات
- config (NeuCodecConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج NeuCodec لترميز الصوت العصبي.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
decode
< source >( audio_codes: typing.Optional[torch.Tensor] = Nonelatents: typing.Optional[torch.Tensor] = Noneaudio_codes_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → NeuCodecDecoderOutput or tuple(torch.Tensor)
المعاملات
- audio_codes (
torch.LongTensorمن الشكل(batch_size, 1, codes_length)) — فهارس رموز منفصلة محسوبة باستخدامmodel.encode. - latents (
torch.Tensorمن الشكل(batch_size, dimension, time_steps)، اختياري) — تمثيل مستمر مُكمَّم للمدخلات. - audio_codes_mask (
torch.Tensorمن الشكل(batch_size, codes_length)، اختياري) — قناع يحدد المواضع الصالحة (غير المعبّأة)، كما يُعاد بواسطةmodel.encode. مطلوب للتحليل الدقيق بالدفعة (batched decoding) لتسجيلات صوتية بطول متغير.
يعيد
NeuCodecDecoderOutput أو tuple(torch.Tensor)
NeuCodecDecoderOutput أو مجموعة مرتبة من
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'> ) → NeuCodecEncoderOutput 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) لإدخال الطيف الصوتي (spectrogram) إلى المُشفِّر الدلالي (semantic encoder).1للإطارات الصالحة، و0للتعبئة (padding). - output_latents (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع التمثيل الكامن المستمر من المُكمِّم.
يعيد
NeuCodecEncoderOutput أو tuple(torch.Tensor)
NeuCodecEncoderOutput أو مجموعة مرتبة من
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.int32of shape(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'> ) → NeuCodecOutput or tuple(torch.Tensor)
المعاملات
- input_values (
torch.Tensorمن الشكل(batch_size, 1, sequence_length)) — موجة الصوت المدخلة، المُعَيَّنَة عندconfig.input_sampling_rate. - 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) — ما إذا كان يجب إرجاع التمثيل الكامن المستمر من المُكمِّم.
يعيد
NeuCodecOutput أو tuple(torch.Tensor)
NeuCodecOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتمادًا على الإعداد (None) والمدخلات.
تتجاوز طريقة NeuCodecModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- audio_values (
torch.Tensorمن الشكل(batch_size, 1, sequence_length)، اختياري) — قيم موجة الصوت المُفكّكة في مجال الزمن، والمُستخرجة باستخدام جزء المُفكّك في NeuCodec. تمثّل هذه القيم إشارة الصوت المُعاد بناؤها. - 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, NeuCodecModel
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> audio = dataset["train"]["audio"][0]["array"]
>>> model_id = "neuphonic/neucodec"
>>> model = NeuCodecModel.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 # sampled at 24kHz