Transformers documentation

VibeVoice

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

Bu model 2025-08-26 tarihinde HF papers'ta yayımlandı ve 2026-08-27 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

VibeVoice

FlashAttention SDPA

Genel Bakış

VibeVoice, Büyük Dil Modeli (LLM) yapısı içinde bir sonraki token difüzyonu yaklaşımını kullanarak birden fazla konuşmacılı, yüksek sadakatli ve uzun formatlı ses sentezlemek için geliştirilmiş yeni bir çerçevedir. Gerçekçi konuşma “vibes”ini yakalamak üzere tasarlanmıştır ve podcastler ile çok katılımcılı sesli kitaplar gibi sesli içeriklerin üretilmesi için özellikle uygundur.

İki model kontrol noktası şu adreste kullanılabilir:

Bu model Eric Bezzam tarafından katkıda bulunmuştur.

Mimari

VibeVoice çerçevesi üç temel bileşeni bir araya getirir:

  1. Sürekli Konuşma Sınıflandırıcıları: Akustik sınıflandırıcı, ölçeklenebilirlik ve sadakat için ultra düşük sıkıştırma (7,5 token/sn, 3200x) elde etmek üzere $\sigma$-VAE kullanan; semantik sınıflandırıcı ise içerik odaklı özellik çıkarımı için ASR vekil görevi kullanan, özel akustik ve semantik sınıflandırıcılar.
  2. Büyük Dil Modeli (LLM): Çekirdek dizgi modeli olarak Qwen2.5'i (1.5B ve 7B sürümleriyle) kullanır.
  3. Token Seviyeli Difüzyon Başı: LLM'in gizli durumuna koşullu olarak çalışır ve sürekli VAE özelliklerini akışkan bir şekilde tahmin etmekten sorumludur.

Orijinal VibeVoice-1.5B checkpoint dosyası, Hugging Face'te Microsoft kuruluşu altında mevcuttur.

Öne Çıkan Özellikler

  • Uzun Biçimli Sentez: 90 dakikaya kadar çok konuşmacılı konuşma sesleri sentezleyebilir.
  • Çok Konuşmacılı Diyalog: En fazla 4 konuşmacıyla ses sentezleyebilir.
  • En İyi Kalite: Hem öznel hem de nesnel metriklerde baz çizgilerden daha iyi performans gösterir.
  • Yüksek Sıkıştırma: 7,5 Hz gibi ultra düşük bir kare hızında çalışan yeni bir akustik belirleyici (tokenizer) ile sağlanır.
  • Ölçeklenebilir LLM: Temel LLM'in 1,5B'den 7B'ye ölçeklendirilmesi algısal kaliteyi önemli ölçüde iyileştirir.

Kullanım

Kurulum

Ses üretimi bir difüzyon sürecine dayandığı için bir gürültü zamanlayıcıya (noise scheduler) ihtiyaç vardır. En kolay yaklaşım (ve model geliştiricilerinin yaptığı yöntem), diffusers kütüphanesinden bir gürültü zamanlayıcı kullanmaktır. Varsayılan olarak model, diffusers ile bir gürültü zamanlayıcıyı içsel olarak oluşturur.

pip install diffusers
pip install soundfile   # for saving audio

Modelin yüklenmesi

from transformers import AutoProcessor, AutoModelForTextToWaveform

model_id = "vibevoice/VibeVoice-1.5B-hf"  # "vibevoice/VibeVoice-7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id)

Metinden seslendirme (TTS)

import os
from transformers import AutoProcessor, AutoModelForTextToWaveform

model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
text = "Hello, nice to meet you. How are you?"

# Load model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

# Prepare input
conversation = [{"role": "0", "content": [{"type": "text", "text": text}]}]
inputs = processor.apply_chat_template(
    conversation, return_dict=True, tokenize=True, add_generation_prompt=True,
).to(model.device, model.dtype)

# Generate!
audio = model.generate(**inputs)

# Save to file
file_name = f"{os.path.basename(model_id)}_tts.wav"
processor.save_audio(audio, file_name)
print(f"Saved output to {file_name}")

TTS ses klonlama

Bir ses, sohbet şablonu sözlüğündeki metnin yanı sıra bir referans ses dosyası sağlanarak klonlanabilir.

import os
from transformers import AutoProcessor, AutoModelForTextToWaveform, set_seed

model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
text = "Hello, nice to meet you. How are you?"
set_seed(42)  # for deterministic results

# Load model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")
sampling_rate = processor.feature_extractor.sampling_rate

# Prepare input
conversation = [
    {
        "role": "0",
        "content": [
            {"type": "text", "text": text},
            {
                "type": "audio",
                "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
            },
        ],
    }
]
inputs = processor.apply_chat_template(
    conversation, return_dict=True, tokenize=True, add_generation_prompt=True,
).to(model.device, model.dtype)

# Generate!
audio = model.generate(**inputs)

# Save to file
fn = f"{os.path.basename(model_id)}_tts_clone.wav"
processor.save_audio(audio, fn)
print(f"Saved output to {fn}")

Bir senaryodan podcast üretme

Aşağıda, sohbet şablonundaki her benzersiz rol kimliği için bir referans ses sağlayarak sesleri klonlanmış iki konuşmacı arasında bir sohbet üretmek için bir örnek bulunmaktadır.

Aşağıdaki örnek, üretim ilerlemesini izlemek için monitor_progress seçeneğini de kullandı.

import os
import time
from transformers import AutoProcessor, AutoModelForTextToWaveform

model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
max_new_tokens = 400  # `None` to ensure full generation

# create conversation with an audio for the first time a speaker appears to clone that particular voice
conversation = [
    {
        "role": "0",
        "content": [
            {
                "type": "text", "text": "Hello everyone, and welcome to the VibeVoice podcast. I'm your host, Linda, and today we're getting into one of the biggest debates in all of sports: who's the greatest basketball player of all time? I'm so excited to have Thomas here to talk about it with me.",
            },
            {
                "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
            },
        ],
    },
    {
        "role": "1",
        "content": [
            {
                "type": "text", "text": "Thanks so much for having me, Linda. You're absolutely right—this question always brings out some seriously strong feelings.",
            },
            {
                "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Frank_man.wav",
            },
        ],
    },
    {
        "role": "0",
        "content": [
            {
                "type": "text", "text": "Okay, so let's get right into it. For me, it has to be Michael Jordan. Six trips to the Finals, six championships. That kind of perfection is just incredible.",
            },
        ],
    },
    {
        "role": "1",
        "content": [
            {
                "type": "text", "text": "Oh man, the first thing that always pops into my head is that shot against the Cleveland Cavaliers back in '89. Jordan just rises, hangs in the air forever, and just sinks it",
            },
        ],
    },
]

# Load model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

# prepare inputs
inputs = processor.apply_chat_template(
    conversation, return_dict=True, tokenize=True, add_generation_prompt=True,
).to(model.device, model.dtype)

# Generate audio with a progress bar to track generation
model.generation_config.max_new_tokens = max_new_tokens
start_time = time.time()
audio = model.generate(**inputs, monitor_progress=True)
generation_time = time.time() - start_time
print(f"Generation time: {generation_time:.2f} seconds")

# Save audio
fn = f"{os.path.basename(model_id)}_script.wav"
processor.save_audio(audio, fn)
print(f"Saved output to {fn}")

Toplu çıkarım

Toplu işleme için, bir sohbet listesi processor.apply_chat_template fonksiyonuna iletilebilir:

import os
import time
from transformers import AutoProcessor, AutoModelForTextToWaveform

model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
max_new_tokens = 400  # `None` to ensure full generation

conversation = [
    [
        {
            "role": "0",
            "content": [
                {
                    "type": "text", "text": "Hello everyone, and welcome to the VibeVoice podcast. I'm your host, Linda, and today we're getting into one of the biggest debates in all of sports: who's the greatest basketball player of all time? I'm so excited to have Thomas here to talk about it with me.",
                },
                {
                    "type": "audio",
                    "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
                },
            ],
        },
        {
            "role": "1",
            "content": [
                {
                    "type": "text", "text": "Thanks so much for having me, Linda.",
                },
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Frank_man.wav",
                },
            ],
        },
    ],
    [
        {
            "role": "0",
            "content": [
                {
                    "type": "text", "text": "Hello and welcome to Planet in Peril. I'm your host, Alice. We're here today to discuss a really sobering new report that looks back at the last ten years of climate change. I'm joined by our expert panel. Welcome Carter, Frank, and Maya.",
                },
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
                },
            ],
        },
        {
            "role": "1",
            "content": [
                {"type": "text", "text": "Hi Alice, it's great to be here. I'm Carter."},
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Carter_man.wav",
                },
            ],
        },
        {
            "role": "2",
            "content": [
                {"type": "text", "text": "Hello, uh, I'm Frank. Good to be on."},
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Frank_man.wav",
                },
            ],
        },
        {
            "role": "3",
            "content": [
                {"type": "text", "text": "And I'm Maya. Thanks for having me."},
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Maya_woman.wav",
                },
            ],
        },
    ],
]

# Load model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

# prepare inputs
inputs = processor.apply_chat_template(
    conversation, return_dict=True, tokenize=True, add_generation_prompt=True,
).to(model.device, model.dtype)

# Generate audio with a progress bar to track generation
model.generation_config.max_new_tokens = max_new_tokens
start_time = time.time()
audio = model.generate(**inputs, monitor_progress=True)
generation_time = time.time() - start_time
print(f"Generation time: {generation_time:.2f} seconds")

# Save audio
output_dir = f"{os.path.basename(model_id)}_batch"
processor.save_audio(audio, output_dir)
print(f"Saved output to {output_dir}")

Pipeline kullanımı

VibeVoice ayrıca bir pipeline olarak da yüklenebilir. Aşağıda, difüzyon parametrelerinin nasıl ayarlanabileceğini de gösteriyoruz.

import os
import soundfile as sf
from transformers import pipeline

model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
text = "Hello, nice to meet you. How are you?"
pipe = pipeline("text-to-speech", model=model_id)

# Generate!
conversation = [
    {
        "role": "0",
        "content": [
            {"type": "text", "text": text},
            {
                "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
            },
        ],
    }
]
# optional kwargs for generation
generate_kwargs = {"guidance_scale": 1.3, "num_diffusion_steps": 10}
output = pipe(conversation, generate_kwargs=generate_kwargs)

# Save to file
fn = f"{os.path.basename(model_id)}_pipeline.wav"
sf.write(fn, output["audio"], output["sampling_rate"])
print(f"Saved output to {fn}")

Eğitim

VibeVoice, modelin ürettiği kayıpla eğitilebilir.

from transformers import AutoProcessor, AutoModelForTextToWaveform


model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"

# Load model and processor
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(
    model_id,
    diffusion_loss_weight=0.75,  # by default, equal weighting (0.5) of language modeling loss (CE) and diffusion loss is applied
    device_map="auto"
)
model.train()

# Prepare batch of 2
conversation = [
    [
        {
            "role": "0",
            "content": [
                {
                    "type": "text", "text": "VibeVoice is this novel framework designed for generating expressive, long-form, multi-speaker, conversational audio.",
                },
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/realtime_model/vibevoice_tts_german.wav",
                },
            ],
        }
    ],
    # NOTE: multiple speakers not supported yet
    [
        {
            "role": "0",
            "content": [
                {
                    "type": "text", "text": "Hello everyone and welcome to the VibeVoice podcast. I'm your host, Alex, and today we're getting into one of the biggest debates in all of sports: who's the greatest basketball player of all time? I'm so excited to have Sam here to talk about it with me. Thanks so much for having me, Alex. And you're absolutely right. This question always brings out some seriously strong feelings. Okay, so let's get right into it. For me, it has to be Michael Jordan. Six trips to the finals, six championships. That kind of perfection is just incredible. Oh man, the first thing that always pops into my head is that shot against the Cleveland Cavaliers back in '89. Jordan just rises, hangs in the air forever, and just sinks it.",
                },
                {
                    "type": "audio",
                    "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/example_output/VibeVoice-1.5B_output.wav",
                },
            ],
        }
    ],
]

# Process with apply_chat_template and output_labels=True for training
inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    return_dict=True,
    processor_kwargs={"output_labels": True},
).to(model.device, model.dtype)

# Forward pass
outputs = model(**inputs, ddpm_batch_multiplier=2, num_diffusion_steps=2)
print(f"Total loss: {outputs.loss.item():.4f}")

# Backward pass
outputs.loss.backward()

Torch derleme

Model, daha hızlı çıkarım için torch.compile ile derlenebilir. Derlenmiş model tam hıza ulaşmadan önce birkaç ısınma çalışması gereklidir.

Batch boyutu 4 olan bir A100 üzerinde, derlenmiş ve derlenmemiş çıkarım arasında ~1,5x hızlanma gözlemledik, bkz. bu betik.

import os
import time
import torch
from transformers import AutoModelForTextToWaveform, AutoProcessor, CompileConfig


model_id = "vibevoice/VibeVoice-1.5B-hf"   # "vibevoice/VibeVoice-7B-hf"
num_warmup = 5
max_new_tokens = 128

torch.set_float32_matmul_precision("high")

# Load processor + model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTextToWaveform.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto").eval()

# Prepare inputs
conversation = [
    [
        {
            "role": "0",
            "content": [
                {"type": "text", "text": "VibeVoice is a novel framework for generating expressive audio."},
                {
                    "type": "audio", "url": "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/realtime_model/vibevoice_tts_german.wav",
                },
            ],
        }
    ],
] * 4  # batch size 4
inputs = processor.apply_chat_template(
    conversation, tokenize=True, return_dict=True, add_generation_prompt=True,
).to(model.device, model.dtype)

compile_config = CompileConfig(mode="default", dynamic=False)

generate_kwargs = dict(
    **inputs,
    max_new_tokens=max_new_tokens,
    cache_implementation="static",
    compile_config=compile_config,
)

# Warmup
print("Warming up...")
warmup_start = time.time()
with torch.inference_mode():
    for _ in range(num_warmup):
        torch.compiler.cudagraph_mark_step_begin()
        _ = model.generate(**generate_kwargs)
torch.cuda.synchronize()
print(f"Warmup complete in {time.time() - warmup_start:.2f}s. Ready!")

# Apply model
with torch.inference_mode():
    torch.compiler.cudagraph_mark_step_begin()
    audio = model.generate(**generate_kwargs)
output_folder = f"{os.path.basename(model_id)}_compiled_output"
processor.save_audio(audio, output_folder)
print(f"Saved output to {output_folder}")

VibeVoiceConfig

sınıf transformers.VibeVoiceConfig

< >

( 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonesemantic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonediffusion_head_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 151643eos_token_id: int = 151643audio_bos_token_id: int = 151652audio_eos_token_id: int = 151653audio_token_id: int = 151654diffusion_loss_weight: float = 0.5 )

Parametreler

  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Ses omurgasının yapılandırma nesnesi veya sözlüğü.
  • semantic_model_config (Union[AutoConfig, dict], isteğe bağlı) — Semantik tokenizer kodlayıcısının yapılandırma nesnesi veya sözlüğü. Bu tokenizer, ses verisinden semantik özellikleri çıkarır.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
  • diffusion_head_config (Union[VibeVoiceDiffusionHeadConfig, dict], isteğe bağlı) — Akustik latentleri sentezlemek için kullanılan difüzyon başlığının yapılandırma nesnesi veya sözlüğü.
  • pad_token_id (int, isteğe bağlı, varsayılan 151643) — Sözlükte dolgu için kullanılan token kimliği.
  • eos_token_id (int, isteğe bağlı, varsayılan 151643) — Sözlükte akış sonu için kullanılan token kimliği.
  • audio_bos_token_id (int, isteğe bağlı, varsayılan 151652) — Ses tokenlarının başlangıcını gösteren token kimliği.
  • audio_eos_token_id (int, isteğe bağlı, varsayılan 151653) — Ses tokenlarının sonunu gösteren token kimliği.
  • audio_token_id (int, isteğe bağlı, varsayılan 151654) — Girdi sesinin yer tutucusu olarak kullanılan ses token indeksi.
  • diffusion_loss_weight (float, isteğe bağlı, varsayılan 0.5) — Toplam kayıp hesabında difüzyon kaybının ağırlığı. Dil modelleme başlığı için çapraz entropi kaybı (1 - diffusion_loss_weight) ile ağırlıklandırılır.

Bu, bir VibeVoiceForConditionalGeneration yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Vibevoice modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, vibevoice/VibeVoice-1.5B-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

>>> from transformers import VibeVoiceForConditionalGeneration, VibeVoiceConfig

>>> # Initializing a VibeVoice configuration
>>> configuration = VibeVoiceConfig()

>>> # Initializing a 1.5B model with random weights
>>> model = VibeVoiceForConditionalGeneration(configuration)

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

VibeVoiceDiffusionHeadConfig

sınıf transformers.VibeVoiceDiffusionHeadConfig

< >

( 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 = 1536latent_size: int = 64num_hidden_layers: int = 4intermediate_size: int = 4608rms_norm_eps: float = 1e-05hidden_act: str = 'silu'frequency_embedding_size: int = 256diffusion_max_period: int = 10000mlp_bias: bool = False )

Parametreler

  • hidden_size (int, isteğe bağlı, varsayılan 1536) — Gizli temsillerin boyutu.
  • latent_size (int, isteğe bağlı, varsayılan 64) — Başın gürültüsünü azalttığı akustik latentlerin boyutluluğu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 4) — Transformer çözücüdeki gizli katman sayısı.
  • intermediate_size (int, isteğe bağlı, varsayılan 4608) — MLP temsillerinin boyutu.
  • rms_norm_eps (float, isteğe bağlı, varsayılan 1e-05) — rms normalizasyon katmanları tarafından kullanılan epsilon.
  • hidden_act (str, isteğe bağlı, varsayılan silu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • frequency_embedding_size (int, isteğe bağlı, varsayılan 256) — Diffusion başlığında zaman adımı kodlaması için sinüzoidal frekans gömme boyutu.
  • diffusion_max_period (int, isteğe bağlı, varsayılan 10000) — Diffusion başlığında sinüzoidal frekans gömme için maksimum periyot.
  • mlp_bias (bool, isteğe bağlı, varsayılan False) — MLP katmanlarındaki up_proj, down_proj ve gate_proj katmanlarında bias kullanılıp kullanılmayacağı.

Bu, bir VibeVoiceForConditionalGeneration yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Vibevoice modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, vibevoice/VibeVoice-1.5B-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

VibeVoiceProcessor

sınıf transformers.VibeVoiceProcessor

< >

( feature_extractortokenizerchat_template = Noneaudio_bos_token = '<|vision_start|>'audio_eos_token = '<|vision_end|>'audio_token = '<|vision_pad|>' )

Parametreler

  • feature_extractor (VibeVoiceAcousticTokenizerFeatureExtractor) — Özellik çıkarıcı zorunlu bir girdidir.
  • tokenizer (Qwen2TokenizerFast) — Tokenizer zorunlu bir girdidir.
  • chat_template (str) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir dizeye dönüştürmek için kullanılan bir Jinja şablonu.
  • audio_bos_token (str, opsiyonel, varsayılan "<|vision_start|>") — Ses üretiminin başlangıcını belirtmek için kullanılan jeton.
  • audio_eos_token (str, isteğe bağlı, varsayılan "<|vision_end|>") — Ses üretiminin sonunu belirtmek için kullanılan jeton.
  • audio_token (str, isteğe bağlı, varsayılan "<|vision_pad|>") — Ses üretiminin devam etmesini belirtmek için kullanılan jeton.

Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir VibeVoiceProcessor oluşturur.

VibeVoiceProcessor, VibeVoiceAcousticTokenizerFeatureExtractor ve Qwen2TokenizerFast sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~VibeVoiceAcousticTokenizerFeatureExtractor ve ~Qwen2TokenizerFast sınıflarına bakın.

__call__

< >

( text: str | list[str] | list[list[str]]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.vibevoice.processing_vibevoice.VibeVoiceProcessorKwargs'> ) → BatchFeature

Parametreler

  • text (str, List[str]) — İşlenecek girdi metni/metinleri, genellikle ses tokeni yer tutucuları ile apply_chat_template tarafından hazırlanır.
  • audio (List[Union[str, np.ndarray]], opsiyonel) — Konuşmacı ses klonlama için ses örnekleri. Metindeki ses token yer tutucularının sayısıyla eşleşmelidir.
  • output_labels (bool, isteğe bağlı, varsayılan=False) — Eğitim için etiketlerin döndürülüp döndürülmeyeceğini belirtir.
  • **kwargs — Tokenizöre ve özellik çıkarıcıya iletilen ek anahtar kelime argümanları.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Dönüş değeri

BatchFeature

Aşağıdaki alanlara sahip bir BatchFeature:

  • input_ids — Modelin girdisi olarak kullanılacak token kimlikleri listesi.
  • attention_mask — Modelin hangi token'lara dikkat etmesi gerektiğini belirleyen indeks listesi (return_attention_mask=True olduğunda).
  • input_values — Modelin girdi olarak alacağı ses değerlerinin listesi. audio değeri None olmadığında döndürülür.
  • padding_mask — Modelin hangi ses karelerine dikkat etmesi gerektiğini belirleyen indekslerin listesi. audio None olmadığında döndürülür.
  • labels — Dil modeli eğitimi için etiketler. Dolgu ve ses difüzyon jetonları -100 ile maskelenir (ses difüzyon jetonu gömmelemeleri ses özellikleriyle değiştirildiği için, jeton kimlikleri anlamlı bir hedef değildir). Ses bos/eos ve metin eos jetonları, LM'nin ses üretmeye ne zaman başlayıp ne zaman duracağını öğrenmesi için hedefler olarak korunur. output_labels=True olduğunda döndürülür.
  • acoustic_loss_mask — Difüzyon kaybının hesaplandığı konumlar için Boolean maskesi. Ses difüzyon token konumlarında True değerine sahiptir. output_labels=True olduğunda döndürülür.

VibeVoiceForConditionalGeneration

sınıf transformers.VibeVoiceForConditionalGeneration

< >

( config: VibeVoiceConfig )

Parametreler

  • config (VibeVoiceConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Bir dil modeli, ses tokenleştiricileri, bağlayıcılar ve bir difüzyon başlığından oluşan VibeVoice modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: LongTensor = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Nonelogits_to_keep: int | slice = 0input_values: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.BoolTensor] = Noneacoustic_loss_mask: typing.Optional[torch.BoolTensor] = Nonenoise_scheduler: object | None = Noneddpm_batch_multiplier: int = 4num_diffusion_steps: int = 10sample: bool = True**kwargs ) → VibeVoiceCausalLMOutputWithPast or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • logits_to_keep (Union[int, slice], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token'ın logits'ine ihtiyaç duyulur ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutunda tutulacak indekslere karşılık gelen 1B olmalıdır. Bu, paketli tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.
  • input_values (torch.Tensor, isteğe bağlı) — Ses klonlama için ön işlenmiş ses dalgası.
  • padding_mask (torch.BoolTensor, opsiyonel) — Geçerli giriş karelerini gösteren maskeler.
  • acoustic_loss_mask (torch.BoolTensor, isteğe bağlı) — Diffusion kaybının yalnızca belirli akustik token'lar üzerinde hesaplanması için maske.
  • noise_scheduler (object, isteğe bağlı) — Eğitim sırasında difüzyon kaybı için gürültü hedeflerini hesaplamak gereklidir. Varsayılan olarak, modelin generation_config'inde belirtilen gürültü zamanlayıcı yapılandırmasını kullanır.
  • ddpm_batch_multiplier (int, isteğe bağlı, varsayılan 4) — Eğitim için, difüzyon kaybı hesabında her ses tokeni başına üretilen gürültü örneklerinin sayısıdır; bu, eğitimin kararlılığını artırmaya yardımcı olabilir.
  • num_diffusion_steps (int, isteğe bağlı, varsayılan 10) — Eğitim için kullanılacak difüzyon adım sayısı. Verilmezse varsayılan olarak 10'dur.
  • sample (bool, isteğe bağlı, varsayılan True) — Orijinal modelde olduğu gibi akustik latentlere Gauss gürültüsü eklenip eklenmeyeceğini belirler (σ-VAE: gürültü ölçeği, parti başına öğe için N(0, vae_std) dağılımından çekilir). False ise, kodlayıcı çıktısı olduğu gibi kullanılır ve çıktı deterministik olur.

Dönüş değeri

VibeVoiceCausalLMOutputWithPast veya tuple(torch.Tensor)

VibeVoiceCausalLMOutputWithPast veya torch.Tensor bir demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (VibeVoiceConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

VibeVoiceForConditionalGeneration forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • audio_features (torch.Tensor, şekli (batch_size, sequence_length, feature_size), isteğe bağlı) — Dil modelinin koşullandırılmasında kullanılabilecek çıkarılmış ses özellikleri.

Örnek:

>>> from transformers import AutoProcessor, VibeVoiceForConditionalGeneration

>>> model = VibeVoiceForConditionalGeneration.from_pretrained("vibevoice/VibeVoice-1.5B-hf")

>>> processor = AutoProcessor.from_pretrained("vibevoice/VibeVoice-1.5B-hf")
>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")

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

generate

< >

( inputs: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonelogits_processor: transformers.generation.logits_process.LogitsProcessorList | None = Nonestopping_criteria: transformers.generation.stopping_criteria.StoppingCriteriaList | None = Noneprefix_allowed_tokens_fn: collections.abc.Callable[[int, torch.Tensor], list[int]] | None = Nonesynced_gpus: bool | None = Noneassistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = Nonestreamer: typing.Optional[ForwardRef('BaseStreamer')] = Nonenegative_prompt_ids: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonecustom_generate: str | collections.abc.Callable | None = None**kwargs ) → ModelOutput or torch.LongTensor

Parametreler

  • inputs (torch.Tensor, modağa göre değişen şekle sahip, isteğe bağlı) — Üretim için istem olarak veya kodlayıcıya model girdisi olarak kullanılan dizi. None ise yöntem bunu bos_token_id ve 1 parti boyutu ile başlatır. Sadece çözücü modeller için inputs input_ids biçiminde olmalıdır. Kodlayıcı-çözücü modeller için inputs, input_ids, input_values, input_features veya pixel_values'den herhangi birini temsil edebilir.
  • generation_config (GenerationConfig, isteğe bağlı) — Üretim çağrısı için temel parametrelendirme olarak kullanılacak üretim yapılandırması. **kwargs generate'e aktarılan ve generation_config öznitelikleriyle eşleşenler bunları geçersiz kılar. generation_config sağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şöyledir: 1) varsa generation_config.json model dosyasından; 2) model yapılandırmasından. Belirtilmeyen parametrelerin GenerationConfig'in varsayılan değerlerini devralacağını ve üretimi parametrelendirmek için bunların belgelerinin kontrol edilmesi gerektiğini lütfen unutmayın.
  • logits_processor (LogitsProcessorList, isteğe bağlı) — Argümanlardan ve üretim yapılandırmasından oluşturulan varsayılan logits işleyicilerini tamamlayan özel logits işleyicileri. Argümanlarla veya bir üretim yapılandırmasıyla zaten oluşturulmuş bir logits işleyicisi geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • stopping_criteria (StoppingCriteriaList, isteğe bağlı) — Argümanlardan ve bir generation config'ten oluşturulan varsayılan durdurma kriterlerini tamamlayan özel durdurma kriterleri. Argümanlarla veya bir generation config ile zaten oluşturulmuş bir durdurma kriteri geçirilirse bir hata fırlatılır. Durdurma kriteriniz scores girdisine bağlıysa, generate fonksiyonuna return_dict_in_generate=True, output_scores=True parametrelerini geçirdiğinizden emin olun. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], isteğe bağlı) — Sağlanırsa, bu fonksiyon her adımda beam search'i yalnızca izin verilen tokenlara kısıtlar. Sağlanmazsa hiçbir kısıtlama uygulanmaz. Bu fonksiyon 2 argüman alır: batch kimliği batch_id ve input_ids. Batch kimliği batch_id ve daha önce üretilen tokenlar inputs_ids koşullarına bağlı olarak, bir sonraki üretim adımı için izin verilen tokenların listesini döndürmelidir. Bu argüman, Autoregressive Entity Retrieval makalesinde anlatıldığı gibi, önekle (prefix) koşullu kısıtlı üretim için faydalıdır.
  • synced_gpus (bool, isteğe bağlı) — max_length değerine ulaşılana kadar while döngüsünün çalışmaya devam edip etmeyeceğini belirler. Aksi belirtilmedikçe, birden fazla GPU ile FullyShardedDataParallel veya DeepSpeed ZeRO Stage 3 kullanılıyorsa, bir GPU diğer GPU'lar bitirmeden önce üretimi tamamlarsa ölü kilitlenmeyi (deadlock) önlemek için bu bayrak True olarak ayarlanır. Aksi halde varsayılan değer False'tir.
  • assistant_model (PreTrainedModel, isteğe bağlı) — Üretimi hızlandırmak için kullanılabilen bir asistan modeli. Asistan modelin, tam olarak aynı tokenizer'a sahip olması gerekir. Hızlandırma, asistan model ile aday token'ları tahmin etmenin, generate çağrısını yaptığınız modelle üretim çalıştırmaktan çok daha hızlı olması durumunda elde edilir. Bu nedenle asistan modelin çok daha küçük olması gerekir.
  • streamer (BaseStreamer, isteğe bağlı) — Üretilen dizilerin akışını sağlamak için kullanılacak Streamer nesnesi. Üretilen jetonlar streamer.put(token_ids) üzerinden geçirilir ve akışın herhangi bir sonraki işlenmesinden streamer sorumludur.
  • negative_prompt_ids (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — CFG gibi bazı işlemciler için gereken negatif prompt. Batch boyutu, girdi batch boyutuyla eşleşmelidir. Bu deneysel bir özelliktir ve gelecekteki sürümlerde kırıcı API değişikliklerine tabi olabilir.
  • negative_prompt_attention_mask (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — negative_prompt_ids için attention_mask.
  • custom_generate (str veya Callable, isteğe bağlı) — Aşağıdakilerden biri:
    • str (Hugging Face Hub deposu adı): standart generate yöntemi yerine, o depodaki custom_generate/generate.py dosyasında tanımlanan özel generate işlevini çalıştırır. Depo, üretim mantığını tamamen değiştirir ve dönüş tipi farklı olabilir.
    • str (yerel depo yolu): yukarıdakiyle aynı ancak yerel bir yoldan. Yerel dizinler de yerel custom_generate/generate.py çalıştırıldığı için trust_remote_code=True gerektirir.
    • Callable: generate, standart girdi hazırlama adımlarını gerçekleştirdikten sonra, çözümleme döngüsünü çalıştırmak için sağlanan çağrılabiliri (callable) çağırır. Daha fazla bilgi için belgelere bakın.
  • kwargs (dict[str, Any], isteğe bağlı) — generation_config için ad hoc parametrelendirme ve/veya modelin forward fonksiyonuna iletilecek ek model-özel kwargs'lar. Model bir encoder-decoder modeli ise, encoder'a özgü kwargs'lar öneklenmemeli ve decoder'a özgü kwargs'lar decoder_ önekiyle başlamalıdır.

Dönüş değeri

ModelOutput veya torch.LongTensor

Bir ModelOutput (return_dict_in_generate=True ise veya config.return_dict_in_generate=True olduğunda) ya da bir torch.LongTensor.

Model bir encoder-decoder modeli değilse (model.config.is_encoder_decoder=False), olası ModelOutput türleri şunlardır:

Model bir kodlayıcı-çözücü modeli (model.config.is_encoder_decoder=True) ise olası ModelOutput türleri şunlardır:

Dil modelleme başlığına sahip modeller için token kimliği dizileri üretir.

Çoğu üretim kontrol parametresi, generation_config içinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır. generation_config içindeki herhangi bir değeri, generate() fonksiyonuna ilgili parametreleri geçirerek geçersiz kılabilirsiniz, örneğin .generate(inputs, num_beams=4, do_sample=True).

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

VibeVoiceModel

sınıf transformers.VibeVoiceModel

< >

( config: VibeVoiceConfig )

Parametreler

  • config (VibeVoiceConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Dil modelleme kafası olmadan, ses tokenleştiricilerden ve bir LLM omurgasından oluşan VibeVoice modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: LongTensor = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneinput_values: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.BoolTensor] = Nonesample: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • input_values (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Giriş ham ses dalgasının kayan değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde bir diziye, numpy.ndarray veya torch.Tensor içine yükleyerek elde edilebilir; örneğin örneğin torchcodec kütüphanesi (pip install torchcodec) veya soundfile kütüphanesi (pip install soundfile) ile. Diziyi input_values için hazırlamak için, torch.Tensor türünde bir tensöre dolgu ve dönüştürme amacıyla AutoProcessor kullanılmalıdır. Ayrıntılar için VibeVoiceProcessor.call() bölümüne bakın.
  • padding_mask (torch.Tensor, şekli (batch_size, padded_audio_length)) — Sesin dolgu (padding) yapılmış kısımlarını kaldırmak için dolgu maskesi.
  • sample (bool, isteğe bağlı, varsayılan True) — Orijinal modelde olduğu gibi akustik latentlere Gauss gürültüsü eklenip eklenmeyeceğini belirler (σ-VAE: gürültü ölçeği, parti başına öğe için N(0, vae_std) dağılımından çekilir). False ise, kodlayıcı çıktısı olduğu gibi kullanılır ve çıktı deterministik olur.

Dönüş değeri

BaseModelOutputWithPast veya tuple(torch.Tensor)

Bir BaseModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (VibeVoiceConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

VibeVoiceModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

get_audio_features

< >

( input_values: Tensorpadding_mask: Tensorsample: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor) — (Normalize edilmiş) ses dalgasının ondalık sayı değerleri.
  • padding_mask (torch.Tensor, şekli (batch_size, padded_audio_length)) — Sesin dolgu (padding) yapılmış kısımlarını kaldırmak için dolgu maskesi.
  • sample (bool, isteğe bağlı, varsayılan True) — Orijinal modelde olduğu gibi akustik latentlere Gauss gürültüsü eklenip eklenmeyeceğini belirler (σ-VAE: gürültü ölçeği, parti başına öğe için N(0, vae_std) dağılımından çekilir). False ise, kodlayıcı çıktısı olduğu gibi kullanılır ve çıktı deterministik olur.

Dönüş değeri

BaseModelOutputWithPooling veya tuple(torch.Tensor)

A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (VibeVoiceConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Bu yöntem, girdi ses dalgasından ses gömütlerini (girdi dizisindeki yer tutucu ses tokenlarını değiştiren) ve akustik özellikleri (difüzyon hedefi olarak kullanılan) almak için kullanılır.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.Tensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

get_placeholder_mask

< >

( input_ids: LongTensorinputs_embeds: Tensoraudio_features: Tensor )

input_ids veya inputs_embeds içinden çok modlu yer tutucu maskesini alır ve yer tutucu belirteç sayısının çok modlu özelliklerin uzunluğuna eşit olduğunu kontrol eder. Uzunluklar farklıysa bir hata oluşturulur.

Update on GitHub