def make_uem_segments(uem_path: Pathlike, recording: Recording) -> List[SupervisionSegment]: lines = uem_path.read_text().splitlines() return [ SupervisionSegment( id= f"{recording.id}-{int(100*float(start)):06d}-{int(100*float(end)):06d}", recording_id=recording.id, start=float(start), duration=round(float(end) - float(start), ndigits=8), ) for _, _, start, end in map(str.split, lines) ]
def make_rttm_segments(rttm_path: Pathlike, recording: Recording, metadata: Dict) -> List[SupervisionSegment]: lines = rttm_path.read_text().splitlines() return [ SupervisionSegment( id= f"{recording.id}-{speaker}-{int(100*float(start)):06d}-{int(100*(float(start)+float(duration))):06d}", recording_id=recording.id, start=float(start), duration=float(duration), speaker=speaker, language=metadata["lang"], custom=metadata, ) for _, _, channel, start, duration, _, _, speaker, _, _ in map( str.split, lines) ]