    def forward(self, x_mask, x, n_timesteps, temperature=1.0):
        """
        Generates mel-spectrogram from pitch, content vector, energy. Returns:
            1. encoder outputs (from conformer)
            2. decoder outputs (from diffusion-based decoder)

        Args:
            x_mask : mask of padded frames in mel-spectrogram. [B x L x n_mel]
            x : output of encoder framework. [B x L x d_condition]
            n_timesteps : number of steps to use for reverse diffusion in decoder.
            temperature : controls variance of terminal distribution.
        """

        # Get encoder_outputs `mu_x`
        mu_x = self.encoder(x, x_mask)
        encoder_outputs = mu_x

        mu_x = mu_x.transpose(1, 2)
        x_mask = x_mask.transpose(1, 2)

        # Generate sample by performing reverse dynamics
        decoder_outputs = self.decoder(
            mu_x, x_mask, mu_x, t_steps=n_timesteps, infer=True
        )
        decoder_outputs = decoder_outputs.transpose(1, 2)
        return encoder_outputs, decoder_outputs
Generates mel-spectrogram from pitch, content vector, energy. Returns:
1. encoder outputs (from conformer)
2. decoder outputs (from diffusion-based decoder)

Args:
x_mask : mask of padded frames in mel-spectrogram. [B x L x n_mel]
x : output of encoder framework. [B x L x d_condition]
n_timesteps : number of steps to use for reverse diffusion in decoder.
temperature : controls variance of terminal distribution.
models/svc/comosvc/comosvc.py