from .form import (PointAnnotation, PointAnnotationType, IntervalAnnotation,
IntervalAnnotationType)
from .content import (OrthographyAnnotation, OrthographyAnnotationType,
TranscriptionAnnotation, TranscriptionAnnotationType,
NumericAnnotation, NumericAnnotationType,
GroupingAnnotation, GroupingAnnotationType,
MorphemeAnnotation, MorphemeAnnotationType)
class Tobi(OrthographyAnnotation, PointAnnotation):
def __init__(self, label, time):
OrthographyAnnotation.__init__(self, label)
PointAnnotation.__init__(self, time)
[docs]
class TobiTier(OrthographyAnnotationType, PointAnnotationType):
annotation_class = Tobi
class Orthography(OrthographyAnnotation, IntervalAnnotation):
def __init__(self, label, begin, end):
OrthographyAnnotation.__init__(self, label)
IntervalAnnotation.__init__(self, begin, end)
[docs]
class OrthographyTier(OrthographyAnnotationType, IntervalAnnotationType):
annotation_class = Orthography
class Morpheme(MorphemeAnnotation, IntervalAnnotation):
def __init__(self, morphemes, begin, end):
MorphemeAnnotation.__init__(self, morphemes)
IntervalAnnotation.__init__(self, begin, end)
[docs]
class MorphemeTier(MorphemeAnnotationType, IntervalAnnotationType):
annotation_class = Morpheme
class Transcription(TranscriptionAnnotation, IntervalAnnotation):
def __init__(self, segments, begin, end, morpheme_breaks=None, stress=None, tone=None):
TranscriptionAnnotation.__init__(self, segments, morpheme_breaks, stress, tone)
IntervalAnnotation.__init__(self, begin, end)
[docs]
class TranscriptionTier(TranscriptionAnnotationType, IntervalAnnotationType):
annotation_class = Transcription
class Segment(Orthography):
pass
[docs]
class SegmentTier(IntervalAnnotationType, OrthographyAnnotationType):
annotation_class = Segment
class Grouping(IntervalAnnotation, GroupingAnnotation):
def __init__(self, begin, end):
IntervalAnnotation.__init__(self, begin, end)
[docs]
class GroupingTier(GroupingAnnotationType, IntervalAnnotationType):
annotation_class = Grouping
def add(self, annotations, save=True):
for a in annotations:
if len(a) > 2:
label = a.pop(0)
if save or len(self._list) < 10:
# If save is False, only the first 10 annotations are saved
annotation = self.annotation_class(*a)
self._list.append(annotation)
class TextOrthography(OrthographyAnnotation, PointAnnotation):
def __init__(self, label, time):
OrthographyAnnotation.__init__(self, label)
PointAnnotation.__init__(self, time)
[docs]
class TextOrthographyTier(OrthographyAnnotationType, PointAnnotationType):
annotation_class = TextOrthography
class TextMorpheme(MorphemeAnnotation, PointAnnotation):
def __init__(self, morphemes, time):
MorphemeAnnotation.__init__(self, morphemes)
PointAnnotation.__init__(self, time)
[docs]
class TextMorphemeTier(MorphemeAnnotationType, PointAnnotationType):
annotation_class = TextMorpheme
class TextTranscription(TranscriptionAnnotation, PointAnnotation):
def __init__(self, segments, time, morpheme_breaks=None, stress=None, tone=None):
TranscriptionAnnotation.__init__(self, segments, morpheme_breaks, stress, tone)
PointAnnotation.__init__(self, time)
[docs]
class TextTranscriptionTier(TranscriptionAnnotationType, PointAnnotationType):
annotation_class = TextTranscription
class BreakIndex(NumericAnnotation, PointAnnotation):
def __init__(self, value, time):
NumericAnnotation.__init__(self, value)
PointAnnotation.__init__(self, time)
[docs]
class BreakIndexTier(NumericAnnotationType, PointAnnotationType):
annotation_class = BreakIndex