code: def generate_long_utterances(
      utts: List[
          Utterance
      ],  # list of short utterances in the same long talk/speech
  ) -> List[LongUtterance]:
      """Generate a list of long utterances from a list of short utterances."""
  
      utts.sort(key=lambda x: x.start_time)
  
      long_utts = [None]
      left, right = 0, 0
      while left < len(utts):
          if right < len(utts) and (
              utts[right].end_time - utts[left].start_time
              <= SPEECH_MAX_LEN
          ):
              right += 1
          elif right > left:
              long_utts.append(
                  merge_short_utterances(
                      utts[left:right], long_utts[-1]
                  )
              )
              left = right
          else:  # skip the current utt if its length already exceeds the limit
              long_utts.append(None)
              left = right + 1
              right = left
  
      long_utts = [u for u in long_utts if u is not None]
      return long_utts
  
file_path: espnet/egs2/owsm_v2/s2t1/local/utils.py
imports: from dataclasses import dataclass
  from pathlib import Path
  from typing import Dict, List, Optional, Tuple, Union
label_desc: Use image node_id 3 for calling a global function with example usage: generate_long_utterances(utts) and returns: long_utts