Diffusers documentation
AutoencoderKLKVAEAudio
AutoencoderKLKVAEAudio
一种由 Kandinsky Lab 团队在 KVAE-Audio 中提出的一维卷积变分自编码器(VAE),采用 KL 散度损失用于音频处理。它能够将原始的全频段(48 kHz)波形压缩为紧凑的连续潜在表示,并在语音、音乐和通用音频上实现高保真重建。
可以使用以下代码片段加载该模型。
import torch
from diffusers import AutoencoderKLKVAEAudio
vae = AutoencoderKLKVAEAudio.from_pretrained("kandinskylab/KVAE-Audio", subfolder="diffusers", dtype=torch.float32)AutoencoderKLKVAEAudio
class diffusers.AutoencoderKLKVAEAudio
< source >( encoder_dim: int = 64encoder_rates: list[int] = [2, 3, 4, 5, 8]latent_dim: int = 2048codebook_dim: int = 64decoder_dim: int = 1536decoder_rates: list[int] = [8, 5, 4, 3, 2]sample_rate: int = 48000num_channels: int = 1attn_num_heads: int = 8 )
参数
- encoder_dim (
int,可选,默认为 64) — 编码器的基础通道维度;在每个下采样阶段翻倍。 - encoder_rates (
list[int],可选,默认为[2, 3, 4, 5, 8]) — 编码器中用于下采样的步长。 - latent_dim (
int,可选,默认为 2048) — 编码器输出的通道维度(在in_proj瓶颈层之前)。 - codebook_dim (
int, 可选,默认为 64) — 后验分布潜在空间的通道维度(在in_proj瓶颈之后)。 - decoder_dim (
int,可选,默认值为 1536) — 解码器的基础通道维度;在每个上采样阶段减半。 - decoder_rates (
list[int],可选,默认为[8, 5, 4, 3, 2]) — 解码器中上采样的步长。 - sample_rate (
int,可选,默认值为 48000) — 模型训练时使用的采样率,单位为 Hz。 - num_channels (
int,可选,默认为 1) — 音频数据的通道数(单声道为 1)。 - attn_num_heads (
int,可选,默认为 8) — 应用于编码器输出的自注意力块中的注意力头数量。
用于将原始音频波形编码为连续潜在表示并解码回波形的一维卷积自编码器。在 KVAE-Audio 中提出。
该模型继承自 ModelMixin。请查阅其父类文档,了解为所有模型实现的通用方法(例如下载或保存)。
decode
< source >( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
参数
- z (
torch.Tensor) — 输入批次的潜在向量。 - return_dict (
bool,可选,默认为True) — 是否返回 DecoderOutput 而不是普通元组。
返回值
DecoderOutput 或 tuple
如果 return_dict 为 True,则返回一个 DecoderOutput,否则返回一个普通的 tuple。
将一批潜在变量解码为音频波形。
encode
< source >( audio_data: Tensorreturn_dict: bool = True )
将一批音频波形编码为潜在表示。
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple
参数
- sample(形状为
(batch_size, num_channels, num_samples)的torch.Tensor)— 原始音频波形的输入批次。 - sample_posterior (
bool,可选,默认为False) — 是否从后验分布中采样。 - return_dict (
bool,可选,默认为True) — 是否返回 DecoderOutput 而不是普通元组。 - generator (
torch.Generator,可选) — 用于使采样过程确定性的torch.Generator。
返回值
DecoderOutput 或 tuple
如果 return_dict 为 True,则返回 DecoderOutput,否则返回普通的 tuple。