18 self.
logger = logging.getLogger(__name__)
28 def parse(self, progress_update_fcn=None, seg_filters=[]):
31 self.
_parse(progress_update_fcn, seg_filters)
40 def _parse(self, progress_update_fcn=None, seg_filters=[]):
45 except Exception
as e:
46 self.logger.error(
'Error opening file: %s' % e)
50 line = csv_file.next()
51 delim =
'\t' if line.find(
'\t') >= 0
else ','
57 reader = csv.reader(csv_file, delimiter=delim)
59 for cur_row
in reader:
60 if reader.line_num == 1:
66 row_dict = dict( zip(headers, rows[0]) )
67 start = float(row_dict[
'Elapsed_Time'])
68 for i
in range(len(rows)):
69 row_dict = dict( zip(headers, rows[i]) )
70 end = start + float(row_dict[
'Segment_Duration'])
74 utter.speaker =
Speaker(
'', DBConstants.SPEAKER_CODES.get_option(row_dict[
'Speaker_ID']) )
77 utter.lena_codes.append(row_dict[
'Speaker_ID'])
79 seg =
Segment(i, utter.start, utter.end, [utter.speaker], [utter])
84 if ParserTools.include_seg(seg, seg_filters):
85 self.segments.append(seg)
87 if progress_update_fcn:
88 progress_update_fcn( float(i + 1) / float(len(rows)) )