Problem
Nothing in the output says how much of the input was transcribed, so a short transcript is ambiguous: it reads the same whether the recording is mostly silence, the model stopped early, or the file handed in was not the one intended.
This is not hypothetical. A truncated intermediate file produced a five-cue transcript of what was believed to be a 90-second recording, and the result looked like a transcription failure rather than a four-second input. The transcript was correct; the premise was wrong, and there was nothing in the output to say so.
Note that the transcribed audio is legitimately shorter than the input today, because the cleaning step removes silence (see #35). A coverage figure has to account for that or it will report a problem on every run.
Proposal
Report what was covered, alongside what was given:
{
"success": true,
"metadata": {
"inputDurationMs": 90538,
"transcribedDurationMs": 88933,
"lastCueEndMs": 88401
}
}
Three numbers rather than a verdict. The gap between the first two is the cleaning step; the gap between the second and third is how much of the audio produced no words. A caller can decide what is suspicious for its own material, which is better than a threshold picked here.
Whether a large gap should also warn on stderr is worth deciding separately. The numbers alone would have been enough to catch the case above.
Problem
Nothing in the output says how much of the input was transcribed, so a short transcript is ambiguous: it reads the same whether the recording is mostly silence, the model stopped early, or the file handed in was not the one intended.
This is not hypothetical. A truncated intermediate file produced a five-cue transcript of what was believed to be a 90-second recording, and the result looked like a transcription failure rather than a four-second input. The transcript was correct; the premise was wrong, and there was nothing in the output to say so.
Note that the transcribed audio is legitimately shorter than the input today, because the cleaning step removes silence (see #35). A coverage figure has to account for that or it will report a problem on every run.
Proposal
Report what was covered, alongside what was given:
{ "success": true, "metadata": { "inputDurationMs": 90538, "transcribedDurationMs": 88933, "lastCueEndMs": 88401 } }Three numbers rather than a verdict. The gap between the first two is the cleaning step; the gap between the second and third is how much of the audio produced no words. A caller can decide what is suspicious for its own material, which is better than a threshold picked here.
Whether a large gap should also warn on stderr is worth deciding separately. The numbers alone would have been enough to catch the case above.