class_docstr: Embeds the diffusion step into an input vector of DiffWave
  
  Arguments
  ---------
  max_steps: int
      total difussion steps
  
  Example
  -------
  >>> from speechbrain.lobes.models.DiffWave import DiffusionEmbedding
  >>> diffusion_embedding = DiffusionEmbedding(max_steps=50)
  >>> time_step = torch.randint(50, (1,))
  >>> step_embedding = diffusion_embedding(time_step)
  >>> step_embedding.shape
  torch.Size([1, 512])
class_docstr_tok: ["Embeds","the","diffusion","step","into","an","input","vector","of","DiffWave","Arguments","--","--","--","--","-","max_steps",":","int","total","difussion","steps","Example","--","--","--","-",">",">",">","from","speechbrain.lobes.models.DiffWave","import","DiffusionEmbedding",">",">",">","diffusion_embedding","=","DiffusionEmbedding","(","max_steps=50",")",">",">",">","time_step","=","torch.randint","(","50",",","(","1",",",")",")",">",">",">","step_embedding","=","diffusion_embedding","(","time_step",")",">",">",">","step_embedding.shape","torch.Size","(","[","1",",","512","]",")"]
docstr: forward function of diffusion step embedding
  
  Arguments
  ---------
  diffusion_step: torch.Tensor
      which step of diffusion to execute
  Returns
  -------
  diffusion step embedding: tensor [bs, 512]
docstr_tok: ["forward","function","of","diffusion","step","embedding","Arguments","--","--","--","--","-","diffusion_step",":","torch.Tensor","which","step","of","diffusion","to","execute","Returns","--","--","--","-","diffusion","step","embedding",":","tensor","[","bs",",","512","]"]
code: def forward(self, diffusion_step):
      """forward function of diffusion step embedding
  
      Arguments
      ---------
      diffusion_step: torch.Tensor
          which step of diffusion to execute
      Returns
      -------
      diffusion step embedding: tensor [bs, 512]
      """
      if diffusion_step.dtype in [torch.int32, torch.int64]:
          x = self.embedding[diffusion_step]
      else:
          x = self._lerp_embedding(diffusion_step)
      x = self.projection1(x)
      x = silu(x)
      x = self.projection2(x)
      x = silu(x)
      return x
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from speechbrain.nnet.CNN import Conv1d
  from speechbrain.nnet import linear
  from speechbrain.nnet.diffusion import DenoisingDiffusion
  from math import sqrt
  from torchaudio import transforms
label_desc: Use image node_id 2 for calling the DiffusionEmbedding obj's underlying member method code with example usage: obj.forward(diffusion_step) and returns: x