Before You Hit Submit: Language Hints, File Types and Duration Limits in Speech-to-Text Jobs

posted in: Technology | 0

Most disappointing transcription batches do not fail because the model cannot hear. They fail because a job was submitted with the wrong language pinned, a container the pipeline could not decode cleanly, or a duration that quietly tripled the invoice. Those three fields — the hint, the file, the clock — decide whether a bulk run comes back clean or comes back as a support ticket. This guide walks through how each one behaves on a Whisper large-v3 style endpoint, and what to check before you point a script at a thousand recordings.

Language Hints: Pin the Code or Let the Model Detect?

A language hint is the cheapest accuracy lever you have, and the easiest one to misconfigure. On the Whisper large-v3 endpoint the field is optional and takes an ISO language code. Fill it in and the run is pinned to that language; leave it empty and the model detects the language from the audio itself. The whisper api carries that choice with the job rather than deciding it later, so whatever your submission script sends is what the transcript is produced under.

Detection is a prediction made from a window of audio, which makes it excellent on long, clean, single-language recordings and shaky on everything else. A fifteen-second voicemail with a music bed, an IVR greeting that opens in one language before switching, a conference recording where two speakers alternate — these are exactly the cases where auto-detection flips to the wrong label and stays there. Pinning removes that variance. It also makes reruns reproducible: if you re-poll a failed batch or compare last week’s output against this week’s, a pinned hint guarantees both runs used the same assumption.

The failure mode of a wrong pin is more insidious than a detection error. The model does not throw an error; it transcribes the audio using the wrong phonology and returns fluent, plausible-looking text that is effectively garbage. A mis-detection at least tends to show up as a clearly wrong language label in the response metadata. So treat the hint as a decision you make per file, not a global setting you set once.

Practical rules of thumb that hold up in production: pin the language for anything under a minute, especially voicemail, call recordings and short clips from mobile devices; leave detection on for long, clean, single-language interviews and podcasts; pin the dominant language for IVR and scripted prompts; and when a file is genuinely bilingual, split it by language instead of forcing one hint across the whole thing. If you chunk a long recording, pin every chunk to the same code — otherwise chunk four can be classified differently from chunk one and your transcript will change dialect halfway through. Store the hint alongside each file in your batch manifest so a rerun is identical, and use the exact ISO codes the model page lists rather than guessing at regional variants.

File Types, Containers and the 500 MB Ceiling

The accepted input surface for Whisper large-v3 is broader than most teams assume: audio/mpeg, mp4 (audio), video/mp4, wav, flac, ogg and webm, with a largest file size of 500 MB. The important distinction is container versus codec. That list describes containers, and a container can hold a codec the decoder handles poorly or not at all. Legacy telephony exports and some recorder formats are the usual offenders — transcode or remux them to a listed container before submission rather than discovering the problem at scale across a two-thousand-item batch.

Video is accepted directly as video/mp4, so there is no need to demux before you upload. That said, stripping the video track cuts upload bytes and time, which matters once you are pushing dozens of files per call, and it also helps you stay under the 500 MB per-file ceiling. On compressed audio the size limit rarely binds first, since 500 MB of typical 128 kbps MP3 is several hours of speech — but uncompressed WAV is a different story, and long WAV recordings can hit the byte ceiling before they hit the duration ceiling.

Submission mechanics deserve the same attention. You can attach up to 100 files in a single call and up to 2,000 items in a batch; upload links stay valid for one hour, so build your upload and submit steps close together rather than staging links hours in advance. Outputs are retained for seven days, which means the download step belongs in your job script, not in a manual follow-up. There are no webhooks, so plan on polling, and expect a cold start of roughly 10 to 30 seconds with later items in the same batch riding on that same start — packing a batch is cheaper in wall-clock time than firing single-file jobs.

Output format is part of the job spec, not a post-processing choice: json (the default), text, srt or vtt. Pick srt or vtt when the transcript feeds a review or captioning workflow, text when you only need the words, and json when you want structure to parse. Note that Y-PAD has no free storage tier — uploads return HTTP 402 until the first payment lands — so a validation run is not a way to test file handling for free.

Duration Limits, the 30-Second Floor and How the Clock Bills

Whisper large-v3 accepts files up to 240 minutes, bills by the second, and applies a 30-second minimum per file. One detail does more damage than any other when teams first hit this endpoint: duration is measured from decoded samples, not from the file header. Variable-bitrate MP3s, truncated downloads and files with stale headers all report durations in a media player that do not match what the meter sees. If your cost estimates are derived from `ffprobe` output alone, expect drift.

The per-file minimum makes chunking a cost decision, not just an engineering one. A 45-second clip split into three 15-second pieces bills 90 seconds — double the single-file cost — and it also hurts accuracy at the boundaries, where words get cut in half and context disappears. Nine-minute recordings are perfectly fine as one job; there is no accuracy argument for splitting them. Split only when a file exceeds the 240-minute cap, and when you do, cut on silence with a small overlap and deduplicate the repeated words at each seam.

Billing mechanics are worth modelling before your first large run. At submit, Y-PAD holds the sum of max units multiplied by list price; at settlement you pay for succeeded units at the launch price if you hold a launch seat, otherwise list price, and the unused hold returns to your balance. Only successful items are charged — failed and cancelled items cost nothing — but a finished transcription bills even if the transcript comes back empty, so filtering silence-only files before submission is worth the effort.

The published worked examples, as of 7 November 2026, show the floor in action: 1,000 one-minute transcripts cost $0.44 at list or $0.40 at launch, while 1,000 ten-second transcripts cost $0.22 list or $0.20 launch, because every short file still bills the full 30 seconds. Those figures are provisional beta fares and can change before launch, so confirm current numbers on the live pricing page before you size a budget. And because prices are fixed per submitted batch, settling your hint strategy, file normalisation and chunking rules first means the batch you submit is the batch you can quote internally.