Transformers documentation

Gradium Phonon TTS

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

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-10-20.

Gradium Phonon TTS

نظرة عامة

نموذج Gradium Phonon TTS هو عائلة نماذج تحويل النص إلى كلام تعمل على الجهاز من تطوير Gradium، وقد تم تدريبها وفق منهجية Pocket TTS: حيث يقرأ محوّل سببي (causal transformer) موجهًا صوتيًا والنص، ثم يُخرج في كل خطوة كامنًا صوتيًا مستمرًا بعدد أبعاد 32 بمعدل 12.5 هرتز عبر رأس تدفق من خطوة واحدة، بينما يقرر رأس نهاية الكلام متى ينتهي الجمل. يتم فك ترميز الكامونات إلى صوت بمعدل 24 كيلوهرتز بواسطة مُرمِّز الصوت الخاص بـ Pocket TTS الذي يحتفظ به المعالج، وهو PocketTTSProcessor الخاص بـ Pocket TTS.

يختلف عن Pocket TTS في طريقة تكييف الصوت: إذ يتكوّن موجه الصوت من كامنات (latents) ذات 512 بُعداً من مشفّر متحدث (speaker codec) منفصل، ويُضاف متجه متعلّم للمتحدث إلى كل موضع كامن صوتي. لم يتم إصدار مشفّر المتحدث، لذا تأتي الأصوات على شكل كامنات محسوبة مسبقاً (ملف default-voice.safetensors الخاص بكل نقطة تحقق، وفهرس gradium/phonon-voices)، كما أن مُرمّز الصوت (audio tokenizer) يعمل كمفكّك (decoder) فقط: فلا يمكن استنساخ الأصوات من تسجيل.

نقطة التفتيشالمعاملاتاللغاترخصة
gradium/phonon-31m-en31MالإنجليزيةApache 2.0
gradium/phonon-40m-en40MالإنجليزيةCC BY-NC 4.0
gradium/phonon-40m-fr40MالفرنسيةCC BY-NC 4.0
gradium/phonon-40m-de40MالألمانيةCC BY-NC 4.0
gradium/phonon-40m-es40MالإسبانيةCC BY-NC 4.0
gradium/phonon-40m-pt40MالبرتغاليةCC BY-NC 4.0
gradium/phonon-40m-multilingual40Mالإنجليزية، الفرنسية، الألمانية، الإسبانية، البرتغاليةCC BY-NC 4.0

تُحمَّل جميعها بالطريقة نفسها: فالتبديل بين نقاط التفتيش يعني تغيير معرّف المستودع.

تمت مساهمة هذا النموذج من قِبل Eustache Le Bihan. الكود الأصلي هو gradium-ai/xn-ptts.

نصائح للاستخدام

  • جهّز المدخلات باستخدام apply_chat_template(): رسالة user واحدة لكل نص، وعنصر {"type": "audio"} فارغ في موضع الصوت، ومتجهات الصوت الكامنة في processor_kwargs={"audio_prompt_latents": [...]}، مع add_generation_prompt=True.
  • لا يقوم مُجزِّئ النص بكتابة الأرقام أو الكميات أو الرموز أو العناوين بشكل مفصّل، راجع تطبيع النص.
  • يعيد generate القيم audio_latents وaudio_latents_mask؛ قم بفك ترميزها باستخدام PocketTTSProcessor.decode().
  • عينة التوليد كما يفعل وقت تشغيل Gradium: temperature 0.3 (تباين الضوضاء الابتدائية للتدفق)، ويتوقف بعد تجاوز eos_threshold لقيمة logit نهاية الكلام بقليل. do_sample=False يبدأ التدفق من ضوضاء صفرية.
  • يُحمَّل النموذج في bf16، وهو نوع البيانات الذي تُخزَّن فيه أوزانه؛ مرِّر dtype=torch.float32 على وحدة المعالجة المركزية (CPU) لتطابق بيئة تشغيل Gradium هناك.
  • قسّم النص الطويل باستخدام PocketTTSProcessor.split_text()، بحيث يحتوي كل جزء على محادثة واحدة.

الاستخدام

الصوت

الصوت هو متجه من الكمونيات (num_frames, 512). كل نقطة تحقق تتضمن صوتًا واحدًا (default-voice.safetensors)، ويحتوي gradium/phonon-voices على نحو مئة صوت إضافي، بجميع اللغات، ولكل منها معرّف صوت خاص به (تُدرج voices.jsonl أسماءها ولغاتها ووصفاتها). يعمل أي صوت مع أي نقطة تحقق.

import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from transformers import AutoProcessor, GradiumPhononTTSForConditionalGeneration

model_id = "gradium/phonon-31m-en"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = GradiumPhononTTSForConditionalGeneration.from_pretrained(model_id, device_map="auto")


def load_voice(voice_id):
    """A voice of gradium/phonon-voices, as latents of shape (num_frames, 512)."""
    path = hf_hub_download("gradium/phonon-voices", f"voices/{voice_id}.safetensors")
    return load_file(path)["speaker_wavs"][0].T.float()


# Easton (en-us); the checkpoint's own voice: hf_hub_download(model_id, "default-voice.safetensors")
voice = load_voice("LMDIYE0Oa377Qh6Z")
# an empty `audio` item marks the voice
conversation = [
    {"role": "user", "content": [{"type": "audio"}, {"type": "text", "text": "Hello from Phonon."}]}
]
inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    return_dict=True,
    add_generation_prompt=True,
    processor_kwargs={"audio_prompt_latents": [voice]},
).to(model.device)

outputs = model.generate(**inputs)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio(audio, "phonon.wav")

الدفعات والنص الطويل

معالجة عدة نصوص دفعة واحدة، حيث يمتلك كل نص صوته الخاص، مع تقسيم النص الطويل إلى مقاطع:

text = (
    "Phonon is a small text-to-speech model that runs on your device. "
    "Long texts are split into sentences, and each chunk is one conversation of the batch."
)
chunks = processor.split_text(text)
texts = chunks + ["And this one is said by another voice."]
voices = [load_voice("LMDIYE0Oa377Qh6Z")] * len(chunks) + [load_voice("NbpkqMVS3CJeq2j8")]
conversations = [
    [{"role": "user", "content": [{"type": "audio"}, {"type": "text", "text": text}]}] for text in texts
]
inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    return_dict=True,
    add_generation_prompt=True,
    processor_kwargs={"audio_prompt_latents": voices},
).to(model.device)

outputs = model.generate(**inputs)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio([torch.cat(audio[: len(chunks)]), audio[-1]], ["long.wav", "other.wav"])

تطبيع النص

يعمل مُجزِّئ الرموز على تطبيع ما لا يعتمد على اللغة، كما تفعل بيئة التشغيل الخاصة بـ Gradium:

نصمُجزِّئ
“Hello” — it’s here…"Hello" it's here.
hello (world); see you 🚀Hello, world, see you.

لا يُملي الأرقام أو الكميات أو الرموز أو العناوين، إذ تعتمد على اللغة:

نصمُجزِّئبيئة التشغيل الخاصة بـ Gradium
It costs $1,234.56.It costs $1,234.56.It costs 1 thousand 234 dollars and 56 cents.
Write to jean@gradium.aiWrite to jean@gradium.ai.Write to jean at gradium dot A-I.
It is 21°CIt is 21°C.It is 21 degrees Celsius.

بالنسبة لأولئك، استخدم تطبيع النص في بيئة التشغيل الخاصة بـ Gradium، ptts، أو اكتبها كاملة.

GradiumPhononTTSConfig

فئة transformers.GradiumPhononTTSConfig

< >

( 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 = Noneflow_head_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocab_size: int = 4001hidden_size: int = 768num_hidden_layers: int = 6num_attention_heads: int = 12num_key_value_heads: int | None = Nonehead_dim: int | None = Noneintermediate_size: int = 3072hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_bias: bool = Falseattention_dropout: float = 0.0max_position_embeddings: int = 8192rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonelatent_dim: int = 32pad_token_id: int = 3bos_token_id: int | None = Noneeos_token_id: int | None = Noneaudio_prompt_token_id: int = 5audio_latent_token_id: int = 6audio_bos_token_id: int = 4frame_rate: float = 12.5initializer_range: float = 0.02use_cache: bool = Trueeos_loss_weight: float = 0.1flow_loss_num_samples: int = 4lsd_distill_probability: float = 0.25lsd_diagonal_weight: float = 0.75lsd_time_logit_mean: float = 0.4lsd_time_logit_std: float = 1.0latent_stats_ema_steps: int = 1000latent_stats_ema_decay: float = 0.999audio_prompt_dim: int = 512num_speakers: int = 1num_speakers_vocab_size: int = 32num_speakers_embedding_dim: int = 16duration_delta: float = 0.0duration_delta_embedding_dim: int = 128duration_delta_scale: float = 1000.0duration_delta_max_period: float = 10000.0 )

المعاملات

  • flow_head_config (Union[GradiumPhononTTSFlowHeadConfig, dict]، اختياري) — إعدادات رأس التدفق الذي يستخرج كل حالة كامنة من حالة الخلفية المخفية.
  • vocab_size (int، اختياري، القيمة الافتراضية 4001) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 768) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_key_value_heads (int, اختياري) — هذا هو عدد رؤوس 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.
  • head_dim (int، اختياري) — بعد بُعد رأس الانتباه. إذا كان None، فسيتم افتراضه على hidden_size // num_attention_heads
  • intermediate_size (int، اختياري، القيمة الافتراضية 3072) — أبعاد تمثيلات MLP.
  • hidden_act (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة إيبسلون (Epsilon) لتطبيع الطبقات (Layer Normalizations) في الهيكل الأساسي (backbone).
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • attention_dropout (float، اختياري، القيمة الافتراضية 0.0) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 8192) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.
  • latent_dim (int، اختياري، القيمة الافتراضية 32) — أبعاد الكامنات الصوتية التي يستقبلها الهيكل العظمي كمدخلات (audio_latents)؛ وهي تساوي latent_dim الخاص برأس التدفق (flow head) ومُرمِّز الصوت (audio tokenizer).
  • pad_token_id (int, اختياري، القيمة الافتراضية 3) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int, اختياري) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (int, اختياري) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • audio_prompt_token_id (int, اختياري، القيمة الافتراضية 5) — معرّف الرمز الوهمي لإطارات موجه الصوت في input_ids (<|audio_prompt|>).
  • audio_latent_token_id (int، اختياري، القيمة الافتراضية 6) — معرّف الرمز البديل لمواقع الكامن الصوتي في input_ids (<|audio_latent|>).
  • audio_bos_token_id (int, اختياري، القيمة الافتراضية 4) — معرّف الرمز (Token id) للموضع الصوتي الأول، الذي يغلق الاستدعاء (prompt): فهو يحمل كامن BOS المُتعلَّم، الذي تُولَّد منه الإطار الأول (<|audio_bos|>).
  • frame_rate (float، اختياري، القيمة الافتراضية 12.5) — عدد كامنات الصوت لكل ثانية من الصوت: يستمد generate ميزانية الإطارات الافتراضية منه.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • use_cache (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.
  • eos_loss_weight (float، اختياري، القيمة الافتراضية 0.1) — وزن خسارة نهاية الكلام في خسارة التدريب.
  • flow_loss_num_samples (int، اختياري، القيمة الافتراضية 4) — عدد مرات سحب الضوضاء لكل إطار مستهدف في خسارة التدفق.
  • lsd_distill_probability (float، اختياري، القيمة الافتراضية 0.25) — احتمال، في كل خطوة تدريب، لحساب حد التلقائي-التقطير (self-distillation) من دالة فقد LSD (مع إعادة الوزن للحفاظ على الفقد المتوقع)؛ القيمة 1 تعني حسابه في كل خطوة.
  • lsd_diagonal_weight (float, اختياري، القيمة الافتراضية 0.75) — وزن الحد القطري (التدفق اللحظي) في دالة فقد LSD؛ بينما يوزن حد التلقائي-التعليم (self-distillation) الجزء المتبقي.
  • lsd_time_logit_mean (float، اختياري، القيمة الافتراضية 0.4) — متوسط التوزيع اللوجستي الطبيعي لأزمنة التدفق التي يسحبها خسارة LSD.
  • lsd_time_logit_std (float، اختياري، القيمة الافتراضية 1.0) — الانحراف المعياري لتوزيع اللوجيت-الطبيعي لأزمنة التدفق التي يسحبها خسارة LSD.
  • latent_stats_ema_steps (int، اختياري، القيمة الافتراضية 1000) — عدد خطوات التدريب الأولى التي يتبع فيها latent_mean وlatent_std متوسطًا متحركًا أُسّيًا للاتّجاهات المستهدفة؛ القيمة 0 تُبقيهما مجمّدين.
  • latent_stats_ema_decay (float، اختياري، القيمة الافتراضية 0.999) — معدل التلاشي للمتوسط المتحرك.
  • audio_prompt_dim (int، اختياري، القيمة الافتراضية 512) — بعد كامنات موجه الصوت (audio_prompt_latents)، وهي الكامنات غير المُكمّاة لشفّار المتحدّث في Gradium (وهو مُشفِّر Mimi، وليس مُرمِّز الصوت)، التي تُسقطها البنية الأساسية إلى hidden_size.
  • num_speakers (int، اختياري، القيمة الافتراضية 1) — قيمة شرط num_speakers: صف جدول البحث الخاص به الذي يُضاف إلى كل موضع كامن للصوت.
  • num_speakers_vocab_size (int, اختياري، القيمة الافتراضية 32) — عدد صفوف جدول البحث num_speakers.
  • num_speakers_embedding_dim (int، اختياري، القيمة الافتراضية 16) — عرض جدول البحث num_speakers، المُسقط إلى hidden_size.
  • duration_delta (float، اختياري، القيمة الافتراضية 0.0) — قيمة شرط duration_delta، المُضمَّنة جيبيًا ومُضافة إلى كل موضع من مواضع الكمون الصوتي.
  • duration_delta_embedding_dim (int, اختياري، القيمة الافتراضية 128) — حجم التضمين الجيبية لـ duration_delta، المُسقط إلى hidden_size.
  • duration_delta_scale (float، اختياري، القيمة الافتراضية 1000.0) — المعامل المطبَّق على duration_delta قبل تضمينه الجيبية.
  • duration_delta_max_period (float، اختياري، القيمة الافتراضية 10000.0) — الفترة القصوى للتضمين الجيبوي لـ duration_delta.

هذه فئة الإعدادات المخزنة لإعدادات نموذج GradiumPhononTTSModel. تُستخدم لتوليد نموذج Gradium Phonon Tts وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ gradium/phonon-31m-en

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

GradiumPhononTTSFlowHeadConfig

فئة transformers.GradiumPhononTTSFlowHeadConfig

< >

( 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 = 512num_hidden_layers: int = 6latent_dim: int = 32condition_dim: int = 768frequency_embedding_size: int = 256hidden_act: str = 'silu'layer_norm_eps: float = 1e-06rms_norm_eps: float = 1e-05max_period: float = 10000.0flow_type: typing.Literal['lsd', 'drifting'] = 'lsd'loss_weighting_hidden_size: int = 32loss_weighting_num_layers: int = 3 )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 512) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • latent_dim (int، اختياري، القيمة الافتراضية 32) — أبعاد الكامنات الصوتية المستمرة التي يتنبأ بها الرأس (بعد الكامن لمُرمِّز الصوت).
  • condition_dim (int، اختياري، القيمة الافتراضية 768) — بعد حالة الخفاء الأساسية التي يُشترط عليها الرأس (الـ hidden_size الخاص بالهيكل الأساسي).
  • frequency_embedding_size (int، اختياري، القيمة الافتراضية 256) — حجم التضمين الجيبية لأزمنة التدفق.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-06) — قيمة إيبسلون (Epsilon) في عمليات تطبيع الطبقات داخل الكتل المتبقية والطبقة النهائية.
  • rms_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة إيبسلون للتطبيع الذي يغلق التضمينات الزمنية.
  • max_period (float، اختياري، القيمة الافتراضية 10000.0) — الفترة القصوى للتضمين الزمني الجيبية، والتي يخزّنها نقطة الحفظ على شكل freqs.
  • flow_type (str، اختياري، القيمة الافتراضية "lsd") — الهدف الذي تم تدريب الرأس عليه، وهو ما يحدد طريقة تكييفه وعيّنته. "lsd" (التباعد الذاتي لاغرانجي): مُكيَّف على وقتي بداية وانتهاء خطوة التدفق، ويُعَيَّن عبر خطوات أويلر من ضوضاء غاوسية. "drifting": لا يوجد تكييف زمني، حيث يُحوِّل الرأس الضوضاء إلى الكمون في استدعاء واحد.
  • loss_weighting_hidden_size (int، اختياري، القيمة الافتراضية 32) — عرض شبكة MLP التي تتعلم وزن عدم اليقين لمصطلحات خسارة LSD من أزمنة التدفق (للتدريب فقط).
  • loss_weighting_num_layers (int، اختياري، القيمة الافتراضية 3) — عدد الطبقات المخفية لذلك MLP.

هذه فئة الإعدادات المخزنة لإعدادات نموذج GradiumPhononTTSModel. تُستخدم لتوليد نموذج Gradium Phonon Tts وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ gradium/phonon-31m-en

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

GradiumPhononTTSModel

فئة transformers.GradiumPhononTTSModel

< >

( config: GradiumPhononTTSConfig )

المعاملات

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

هياكل Gradium Phonon TTS الأساسية: محوّل سببي (causal transformer) يعمل على تدفق واحد يتكوّن من موجه الصوت (متغيرات مُشفّرة المتحدّث)، ورموز النص، ومتغيرات الصوت، ويعيد الحالات المخفية المعيارية.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneaudio_prompt_latents: typing.Optional[torch.Tensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = Noneaudio_latents_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

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

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

  • audio_prompt_latents (torch.Tensor من الشكل (batch_size, num_prompt_frames, latent_dim)، اختياري) — كائنات (latents) موجهات الصوت لمُرمِّز الصوت (المُرمَّزة بواسطة المُعالِج، أو من voices/ في نقطة الحفظ)، مُكمَّلة على اليمين حتى أطول صوت في الدفعة، وموزَّعة في مواضع audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor من الشكل (batch_size, num_prompt_frames)، اختياري) — قناع لإطارات الصوت (1) مقابل الحشو (0) في audio_prompt_latents.
  • audio_latents (torch.Tensor من الشكل (batch_size, num_latents, latent_dim)، اختياري) — كعوب صوتية مُطبَّعة، موزَّعة في مواضع audio_latent_token_id. أما موضع audio_bos_token_id الواقع قبلها، والذي يُغلق الأمر (prompt) وتُولَّد منه الإطار الأول، فيحصل دائمًا على كعب BOS المُتعلَّم.
  • audio_latents_mask (torch.Tensor من الشكل (batch_size, num_latents)، اختياري) — قناع لكل صف من الكامنات (1) مقابل الحشو (0) في audio_latents، عندما تحتوي الصفوف على أعداد مختلفة من مواضع الكامنة (التدريب).
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

  • position_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

BaseModelOutputWithPast أو tuple(torch.Tensor)

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

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

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (Cache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

GradiumPhononTTSForConditionalGeneration

فئة transformers.GradiumPhononTTSForConditionalGeneration

< >

( config: GradiumPhononTTSConfig )

المعاملات

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

نموذج Gradium Phonon TTS لتحويل النص إلى كلام: الهيكل الأساسي، ورأس التدفق الذي يستخرج كامنًا صوتيًا واحدًا في كل خطوة، ورأس نهاية الكلام. يقوم بتوليد كامنات مُرمِّز الصوت، والتي يقوم المُعالج بفك ترميزها إلى صوت بتردد 24 كيلو هرتز.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneaudio_prompt_latents: typing.Optional[torch.Tensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonelabels_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GradiumPhononTTSOutputWithPast or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

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

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

  • audio_prompt_latents (torch.Tensor من الشكل (batch_size, num_prompt_frames, latent_dim)، اختياري) — قيم latents الخاصة بموجّه الصوت من مُرمّز الصوت، مع حشو يميني، وموزّعة في مواضع audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor من الشكل (batch_size, num_prompt_frames)، اختياري) — قناع لإطارات الصوت (1) مقابل الحشو (0) في audio_prompt_latents.
  • audio_latents (torch.Tensor من الشكل (batch_size, num_latents, latent_dim)، اختياري) — كائنات صوتية مُطبَّعة، موزَّعة في مواضع audio_latent_token_id.
  • labels (torch.Tensor من الشكل (batch_size, num_frames, latent_dim)، اختياري) — الكهانات المستهدفة لمُرمِّز الصوت (التدريب)، مع حشو يميني. ينتهي موجه كل صف بموضع audio_bos_token_id يليه موضع واحد من audio_latent_token_id لكل إطار: يغذّي النموذج الاستهدافات المُطبَّعة (إجبار المعلم)، ويطبّق خسارة التدفق على مخرجات BOS وجميع الإطارات باستثناء الإطار الأخير، والتي تتنبأ بالإطارات، ويطبّق خسارة نهاية الكلام على جميعها، حيث يكون الأخير هو نهاية الكلام.
  • labels_mask (torch.Tensor من الشكل (batch_size, num_frames)، اختياري) — قناع للإطارات المستهدفة في كل صف (1) مقابل الحشو (0) في labels.
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

  • position_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

GradiumPhononTTSOutputWithPast أو tuple(torch.Tensor)

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

تُعيد طريقة GradiumPhononTTSForConditionalGeneration الأمامية تعريف الطريقة الخاصة __call__.

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

  • loss (torch.Tensor of shape (), اختياري, يُعاد عند تمرير labels) — خسارة التدريب: خسارة تدفق LSD لللاتنتات المستهدفة بالإضافة إلى config.eos_loss_weight مضروبة في خسارة نهاية الكلام.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, 1)) — قيم logits لنهاية الكلام، قيمة واحدة لكل موضع.

  • past_key_values (Cache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — حالات مخفية مُعايرة للنواة، وهي التي تُشترط رأس التدفق.

مثال:

>>> from transformers import AutoProcessor, GradiumPhononTTSForConditionalGeneration

>>> model = GradiumPhononTTSForConditionalGeneration.from_pretrained("gradium/phonon-31m-en")

>>> processor = AutoProcessor.from_pretrained("gradium/phonon-31m-en")
>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")

>>> # generate speech
>>> speech = model(inputs["input_ids"])

generate

< >

( inputs: typing.Optional[torch.Tensor] = None**kwargs )

المعاملات

  • inputs (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — input_ids المُعدّة بواسطة PocketTTSProcessor. يمكن أيضًا تمريرها على شكل input_ids=.
  • kwargs (dict[str, Any], اختياري) — attention_mask، وموجّه الصوت (audio_prompt_latents وaudio_prompt_latents_mask، أو ذاكرة مؤقتة لبداية صوتية على شكل past_key_values، مع الأصوات المرفقة، وبموجّهات نصية فقط)، وframes_after_eos من المعالج، ومعاملات التوليد (do_sample، temperature، max_new_tokens، …)، ومعاملات Pocket TTS الخاصة num_flow_steps وeos_threshold و min_frames_before_eos، والتي تُعيَّن افتراضيًا من إعدادات التوليد.

يولّد الكلام. تتجاوز هذه الطريقة generate() لجعل القيمة الافتراضية لـmax_new_tokens تساوي ميزانية الإطارات الخاصة بوقت التشغيل الأصلي، وهي ceil((num_text_tokens / 3 + 2) * frame_rate) لأطول نص في الدفعة. أما كل ما عدا ذلك فيمر عبر خطافات التوليد المعتادة.

Update on GitHub