21 def __init__(self, num, start, end, speakers=[], utters=[], db_id=None, user_adj_start=None, user_adj_end=None):
40 while not result
and i < len(self.
speakers):
51 lambda speaker: speaker.is_type(DBConstants.SPEAKER_TYPES.SILENCE))
58 lambda speaker: speaker.is_distance(DBConstants.SPEAKER_DISTANCES.FAR))
65 speaker.has_property(DBConstants.SPEAKER_PROPS.OVERLAPPING))
72 lambda speaker: speaker.has_property(DBConstants.SPEAKER_PROPS.MEDIA))
79 lambda speaker: speaker.has_property(DBConstants.SPEAKER_PROPS.NON_VERBAL_NOISE))
85 last_ids = db.insert(
'segments',
86 'start_time end_time user_adj_start user_adj_end'.split(),
90 self.
db_id = last_ids[0]
94 db.insert(
'segs_to_speaker_codes',
95 'seg_id speaker_code_id'.split(),
96 map(
lambda person: [self.
db_id, person.speaker_codeinfo.db_id], self.
speakers),
102 if self.
db_id !=
None:
104 db.delete(
'segments',
113 DBObject.db_select(db, ids)
115 rows = db.select(
'segments',
116 'id start_time end_time user_adj_start user_adj_end'.split(),
117 DBObject._build_where_cond_from_ids(ids),
122 speaker_rows = db.select(
'segs_to_speaker_codes rel join speaker_codes sc on rel.speaker_code_id=sc.id',
130 for cur_speaker
in speaker_rows:
131 codeinfo = DBConstants.SPEAKER_CODES.get_option(cur_speaker[0])
132 speaker =
Speaker(
None, codeinfo)
133 speaker_list.append(speaker)
135 seg =
Segment(
None, float(cur_row[1]), float(cur_row[2]), speaker_list, [], cur_row[0], cur_row[3], cur_row[4])