OpenAI Whisper & faster-whisper
- segments[].start / end / text
- words[].word / start / end
- segments[].words[]
Uses exact word timings when present and falls back to proportional word-boundary splitting on segment-only payloads.
Built specifically for OpenAI /v1/audio/transcriptions payloads captured with response_format set to verbose_json. Uses word-level floating-point timestamps when available and falls back to proportional segment splitting when only segments[] is present.
| # | Start | End | Max Chars | Speed | Cue Lines |
|---|---|---|---|---|---|
| 1 | 00:00:00,180 | 00:00:02,120 | 40 | 20.6 CPS | Welcome back to the engineering podcast, |
| 2 | 00:00:02,940 | 00:00:05,120 | 42 | 28.4 CPS | today we convert raw Whisper JSON directly inside your browser. |
| 3 | 00:00:05,840 | 00:00:09,420 | 36 | 17.9 CPS | Word timestamps keep fast short-form captions crisp and readable. |
Browser-Local Pipeline
Pre-tuned for verbose_json to SRT with instant client-side conversion and zero file size caps.
Drop a .json file onto the highlighted upload box, paste raw API output, or pick one of five built-in ASR dialect samples. Multi-megabyte multi-hour files parse in local browser RAM with zero server upload.
Tap a one-click mode pill (Broadcast 42c x 2, TikTok/Shorts 16c x 1, Podcast Speaker Tags, or WebVTT Player) and watch the live Cue Health Summary flag >20 CPS fast cues and line-fit compliance.
Inspect exact timestamps and per-cue character counts in the preview table, apply a positive or negative millisecond sync offset if needed, then copy or download .srt, .vtt, .txt, or .csv immediately.
Preset Specification & Field Mapping
Detailed parser behavior for this workflow alongside field references for all five supported speech-to-text JSON dialects.
Uses exact word timings when present and falls back to proportional word-boundary splitting on segment-only payloads.
Splits cues on speaker turn changes and interpolates missing timestamps on unaligned digits or currency symbols.
Prioritizes integer millisecond offsets for drift-free timing and falls back to HH:MM:SS,mmm string parsing.
Prefers punctuated_word capitalization and maps integer speaker indices into clean Speaker N prefixes.
Auto-scales integer millisecond word and utterance timings to seconds without colliding with float Whisper schemas.
Clamps negative sync offsets safely at 00:00:00,000 and guarantees minimum 50 ms cue duration for NLE timelines.
Internal Subtitle Tool Matrix
Switch between all six specialized Whisper and ASR subtitle converters with pre-tuned line widths, speaker diarization labels, and export formats.
Universal local workbench that auto-detects OpenAI Whisper, WhisperX, whisper.cpp, Deepgram, and AssemblyAI JSON.
.srt | 42 chars x 2 lines
Open tool ->
Tuned for /v1/audio/transcriptions verbose_json responses and faster-whisper CLI exports with nested words arrays.
.srt | word + segment timings
Open tool ->
Generates compliant WebVTT subtitle tracks with period-millisecond timestamps for HTML5 <video>, Video.js, and HLS.
.vtt | WEBVTT dot-ms header
Open tool ->
Preserves SPEAKER_00 tags, interpolates unaligned numeric tokens, and breaks cues cleanly on every speaker change.
.srt | [SPEAKER_XX] prefixes on
Open tool ->
Reads local whisper.cpp transcription[] integer millisecond offsets and rewraps long decoder segments cleanly.
.srt | ms offsets[] parser
Open tool ->
Splits word-level Whisper JSON into punchy single-line captions for TikTok, Instagram Reels, and YouTube Shorts.
.srt | 16 chars x 1 line
Open tool ->
An hour-long Whisper transcript with word-level timestamps routinely reaches 3 MB to 8 MB of JSON. Cloud upload tools meter that file size behind subscriptions while exposing private audio transcripts to remote storage.
| Capability | JSON to SRT Local Engine | Paywalled Cloud Converters |
|---|---|---|
| JSON file size limit | No artificial cap; parses >5 MB multi-hour transcripts in milliseconds | Blocks uploads over 1 MB or 2 MB without a paid plan |
| Data privacy & NDA compliance | Zero bytes leave your browser tab; safe for client, legal, and medical audio | Uploads raw transcript JSON to remote servers and third-party buckets |
| ASR dialect coverage | Auto-detects OpenAI verbose_json, WhisperX, whisper.cpp, Deepgram, AssemblyAI | Breaks when segments[] is missing or timestamps use integer milliseconds |
| Cue line-width wrapping | Live 8 to 84 char wrapping, 1 or 2 lines per cue, word-level timing split | Exports raw 100-character decoder blocks that overflow video frames |
| Speaker labels & sync offset | Instant [SPEAKER_XX] prefixes, turn-boundary breaks, and millisecond offset | Drops pyannote speaker fields or requires manual desktop retiming |