docstr: Shapes:
      mels: :math: `[B, C, T]`
      mel_lens: :math: `[B]`
  
  out --- [N, seq_len, E]
docstr_tok: ["Shapes",":","mels",":",":","math",":","`","[","B",",","C",",","T","]","`","mel_lens",":",":","math",":","`","[","B","]","`","out","--","-","[","N",",","seq_len",",","E","]"]
code: def forward(
      self, mels: torch.Tensor, mel_lens: torch.Tensor
  ) -> torch.Tensor:
      """
      Shapes:
          mels: :math: `[B, C, T]`
          mel_lens: :math: `[B]`
  
      out --- [N, seq_len, E]
      """
      _, embedded_prosody, _ = self.encoder(mels, mel_lens)
  
      # Bottleneck
      embedded_prosody = self.encoder_prj(embedded_prosody)
  
      # Style Token
      out = self.encoder_bottleneck(self.stl(embedded_prosody))
      out = self.dropout(out)
  
      out = out.view((-1, 1, out.shape[3]))
      return out
  
imports: from typing import List, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from TTS.tts.layers.delightful_tts.conformer import ConformerMultiHeadedSelfAttention
  from TTS.tts.layers.delightful_tts.conv_layers import CoordConv1d
  from TTS.tts.layers.delightful_tts.networks import STL
label_desc: Use image node_id 2 for calling the UtteranceLevelProsodyEncoder obj's underlying member method code with example usage: obj.forward(mels, mel_lens) and returns: out