    def CT_sampler(self, latents, cond, nonpadding, t_steps=1):
        """
        consistency distillation sampler

        Args:
            latents: noisy mel-spectrogram [B x n_mel x L]
            cond: output of conformer encoder [B x n_mel x L]
            nonpadding: mask of padded frames [B x n_mel x L]
            t_steps: number of steps for diffusion inference

        Returns:
            denoised mel-spectrogram [B x n_mel x L]
        """
        # one-step
        if t_steps == 1:
            t_steps = [80]
        # multi-step
        else:
            t_steps = self.get_t_steps(t_steps)

        t_steps = torch.as_tensor(t_steps).to(latents.device)
        latents = latents * t_steps[0]
        _t = torch.zeros((latents.shape[0], 1, 1), device=latents.device)
        _t[:, 0, 0] = t_steps[0]
        x = self.EDMPrecond(latents, _t, cond, self.denoise_fn_ema)

        for t in t_steps[1:-1]:
            z = torch.randn_like(x) + cond
            x_tn = x + (t**2 - self.sigma_min**2).sqrt() * z
            _t = torch.zeros((x.shape[0], 1, 1), device=x.device)
            _t[:, 0, 0] = t
            t = _t
            x = self.EDMPrecond(x_tn, t, cond, self.denoise_fn_ema)
        return x
consistency distillation sampler

Args:
latents: noisy mel-spectrogram [B x n_mel x L]
cond: output of conformer encoder [B x n_mel x L]
nonpadding: mask of padded frames [B x n_mel x L]
t_steps: number of steps for diffusion inference

Returns:
denoised mel-spectrogram [B x n_mel x L]
models/svc/comosvc/comosvc.py