Read this before assuming capability this repo does not have — this boundary is the entire reason this repo is safe to publish.
Determining who is speaking from raw audio is an inherently probabilistic, ML/signal-processing problem. This repo consumes transcripts that have ALREADY been diarized by an upstream ASR/diarization engine (in WebVTT, SRT, or generic JSON format) and performs purely deterministic, rule-based post-structuring on top. It does not touch audio files or waveform signals.
There are zero LLM API calls, zero semantic prompt structures, zero content-based role inferences, and zero AI summarization heuristics anywhere in this codebase. Role tags (e.g. clinician vs. patient) are assigned ONLY when the caller explicitly provides a speaker ID mapping (roleMap). If no mapping is supplied, the role property strictly remains null.
Clinical conversation transcripts sit close to proprietary AI scribe differentiation. Keeping this repository strictly deterministic, mechanical, and rule-based ensures it serves as an open, reliable, and reusable data normalization library without leaking proprietary clinical logic or clinical inference.
| Capability | Supported in transcript-parser |
Handled Upstream / Downstream |
|---|---|---|
| Audio-to-text Transcription | ❌ No | Upstream ASR |
| Speaker Diarization from Audio | ❌ No | Upstream Diarization Engine |
| WebVTT / SRT / JSON Parsing | ✅ Yes | In-Library |
| Speaker Label Standardization | ✅ Yes | In-Library |
| Utterance Merging by Time Threshold | ✅ Yes | In-Library |
| Conversation Metadata Computation | ✅ Yes | In-Library |
| Caller-Supplied Explicit Role Hints | ✅ Yes | In-Library |
| Content-Based Semantic Role Inference | ❌ Strictly No | Downstream Proprietary Pipeline |
| Clinical Note / SOAP Summarization | ❌ No | Downstream (soap-schema, etc.) |