pub mod alignment;
pub mod autopunct;
pub mod burn_in;
pub mod caption_diff;
pub mod caption_format_adapter;
pub mod caption_style_guide;
pub mod caption_timing_adjuster;
pub mod diarization;
pub mod forced_narrative;
pub mod language_detect;
pub mod line_breaking;
#[cfg(feature = "onnx")]
pub mod ml;
pub mod multi_language;
pub mod multi_language_sync;
pub mod multilang;
pub mod phoneme_timing;
pub mod profanity;
pub mod punctuation_restoration;
pub mod reading_speed;
pub mod style_generator;
pub mod style_presets;
pub mod translate;
pub mod wcag;
pub use alignment::{
align_to_frames, build_caption_blocks, merge_short_segments, split_long_segments,
AlignmentError, CaptionBlock, CaptionPosition, TranscriptSegment, WordTimestamp,
};
pub use diarization::{
assign_speakers_to_blocks, dominant_speaker, format_speaker_label, merge_consecutive_turns,
speaker_stats, voice_activity_ratio, CrosstalkDetector, DiarizationResult, Speaker,
SpeakerGender, SpeakerStats, SpeakerTurn,
};
pub use line_breaking::{
compute_cps, greedy_break, optimal_break, reading_speed_ok, rebalance_lines, LineBalance,
LineBreakAlgorithm, LineBreakConfig,
};
pub use wcag::{
check_caption_coverage, check_cps, check_live_latency, check_min_duration, check_sign_language,
compliance_score, run_all_checks, WcagChecker, WcagLevel, WcagViolation,
};
#[derive(Debug, thiserror::Error)]
pub enum CaptionGenError {
#[error("alignment error: {0}")]
Alignment(#[from] AlignmentError),
#[error("invalid parameter: {0}")]
InvalidParameter(String),
#[error("invalid timestamp")]
InvalidTimestamp,
#[error("empty transcript")]
EmptyTranscript,
#[error("parse error: {0}")]
ParseError(String),
#[cfg(feature = "onnx")]
#[error("ml error: {0}")]
Ml(#[from] oximedia_ml::MlError),
}
pub type CaptionGenResult<T> = std::result::Result<T, CaptionGenError>;
pub use burn_in::{BurnInConfig, SubtitleBurnIn, SubtitlePosition};
#[cfg(feature = "onnx")]
pub use ml::{greedy_decode, top_k_sample, CaptionEncoder, EncoderOutput};
pub use multilang::{CaptionEntry, LanguageCode, MultiLangCaption, MultiLangCaptionBuilder};