File size: 886 Bytes
6187707
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""Frozen VoxCPM2 AudioVAE loader.

FreyaTTS generates 64-dim latents at 25 Hz and relies on the pretrained
VoxCPM2 AudioVAE (openbmb/VoxCPM2) to decode them to 48 kHz waveforms.
Requires the `voxcpm` pip package.
"""

import os

import torch
from huggingface_hub import hf_hub_download
from voxcpm.modules.audiovae import AudioVAEV2, AudioVAEConfigV2


def load_audio_vae(device="cuda", token=None):
    """Download and return the frozen VoxCPM2 AudioVAE in eval mode on `device`."""
    path = hf_hub_download("openbmb/VoxCPM2", "audiovae.pth", token=token or os.environ.get("HF_TOKEN"))
    vae = AudioVAEV2(AudioVAEConfigV2())

    ckpt = torch.load(path, map_location="cpu", weights_only=True)
    vae.load_state_dict(ckpt.get("state_dict", ckpt), strict=False)

    vae = vae.to(device).float().eval()
    for p in vae.parameters():
        p.requires_grad = False
    return vae