def test_Shift(self): transcription = Transcription() new_tier1 = TierUtils.Select(self.tier, lambda x: overlaps(self.a, x)) new_tier2 = TierUtils.Select(self.tier, lambda x: overlaps(self.a, x)) transcription.Append(new_tier1) transcription.Append(new_tier2) TrsUtils.Shift(transcription, 0.5) self.assertEqual(transcription[0][0].BeginValue, self.a1.BeginValue - 0.5) self.assertEqual(transcription[0][1].BeginValue, self.a2.BeginValue - 0.5) self.assertEqual(transcription[0][2].BeginValue, self.a3.BeginValue - 0.5) self.assertEqual(transcription[0][3].BeginValue, self.a4.BeginValue - 0.5) self.assertEqual(transcription[0][0].EndValue, self.a1.EndValue - 0.5) self.assertEqual(transcription[0][1].EndValue, self.a2.EndValue - 0.5) self.assertEqual(transcription[0][2].EndValue, self.a3.EndValue - 0.5) self.assertEqual(transcription[0][3].EndValue, self.a4.EndValue - 0.5) self.assertEqual(transcription[1][0].BeginValue, self.a1.BeginValue - 0.5) self.assertEqual(transcription[1][1].BeginValue, self.a2.BeginValue - 0.5) self.assertEqual(transcription[1][2].BeginValue, self.a3.BeginValue - 0.5) self.assertEqual(transcription[1][3].BeginValue, self.a4.BeginValue - 0.5) self.assertEqual(transcription[1][0].EndValue, self.a1.EndValue - 0.5) self.assertEqual(transcription[1][1].EndValue, self.a2.EndValue - 0.5) self.assertEqual(transcription[1][2].EndValue, self.a3.EndValue - 0.5) self.assertEqual(transcription[1][3].EndValue, self.a4.EndValue - 0.5)
def test_overlaps(self): new_tier = TierUtils.Select(self.tier, lambda x: overlaps(self.a, x)) self.assertEqual(len(new_tier), 4) self.assertEqual(new_tier[0].Time, self.a1.Time) self.assertEqual(new_tier[1].Time, self.a2.Time) self.assertEqual(new_tier[2].Time, self.a3.Time) self.assertEqual(new_tier[3].Time, self.a4.Time)
def create_trsunits(self, trstracks): """ Create a list of transcription units from tracks. @param trstracks @return list of Transcription objects """ if trstracks is None: raise Exception("No tracks found.\n") if self.trsinput is None: raise Exception("No trsinput found.\n") trs_list = [] trsunits_size = len(self.trsunits) for i, track in enumerate(trstracks): from_pos = track[0] to_pos = track[1] if self.trsunits and i > trsunits_size: raise Exception("Error: bad number of tracks.\n") # Create a new Transcription with speech start = float(from_pos) / float(self.audiospeech.get_framerate()) end = float(to_pos) / float(self.audiospeech.get_framerate()) a = Annotation(TimeInterval(TimePoint(start, 0.001), TimePoint(end, 0.001))) new_trs = Transcription(self.trsinput.GetName()) new_trs.SetMinTime(start) new_trs.SetMaxTime(end) for tier in self.trsinput: new_tier = TierUtils.Select(tier, lambda x: trsutils.overlaps(a, x)) if new_tier is not None: if new_tier[0].GetLocation().IsInterval(): new_tier[0].GetLocation().SetBeginMidpoint(start) new_tier[-1].GetLocation().SetEndMidpoint(end) new_trs.Append(new_tier) trsutils.TrsUtils.Shift(new_trs, new_trs.GetBegin()) trs_list.append(new_trs) return trs_list