Advanced Usage

Custom Validation

Learn how to implement custom validation rules:

from stjlib import StandardTranscriptionJSON, ValidationIssue

class CustomSTJ(StandardTranscriptionJSON):
    def validate(self, raise_exception: bool = True):
        issues = super().validate(raise_exception=False)

        # Add custom validation
        for segment in self.transcript.segments:
            if len(segment.text) > 1000:
                issues.append(ValidationIssue(
                    message="Segment text too long",
                    location=f"Segment starting at {segment.start}"
                ))

        if issues and raise_exception:
            raise ValidationError(issues)
        return issues

Working with Additional Info

Examples of using the additional_info fields:

segment = Segment(
    start=0.0,
    end=1.0,
    text="Hello",
    additional_info={
        "confidence_scores": [0.9, 0.8, 0.95],
        "speaker_gender": "female"
    }
)