docstr: Given a sequence emission over labels, get the best path
  Args:
    emission (Tensor): Logit tensors. Shape `[num_seq, num_label]`.
  
  Returns:
    List[str]: The resulting transcript
docstr_tok: ["Given","a","sequence","emission","over","labels",",","get","the","best","path","Args",":","emission","(","Tensor",")",":","Logit","tensors",".","Shape","`","[","num_seq",",","num_label","]","`",".","Returns",":","List","[","str","]",":","The","resulting","transcript"]
code: def forward(self, emission):
      """Given a sequence emission over labels, get the best path
      Args:
        emission (Tensor): Logit tensors. Shape `[num_seq, num_label]`.
  
      Returns:
        List[str]: The resulting transcript
      """
      indices = torch.argmax(emission, dim=-1)  # [num_seq,]
      indices = torch.unique_consecutive(indices, dim=-1)
      indices = [i for i in indices if i != self.blank]
      joined = "".join([self.labels[i] for i in indices])
      return indices, joined
  
imports: import torch
label_desc: Use image node_id 2 for calling the GreedyCTCDecoder obj's underlying member method code with example usage: obj.forward(emission) and returns: indices,  joined