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.
Convert local whisper.cpp CLI JSON files (-oj and -ojf) into formatted SRT or WebVTT subtitles. Parses integer millisecond offsets, timestamp strings, and segment timings locally with zero cloud uploads.
| # | Start | End | Max Chars | Speed | Cue Lines |
|---|---|---|---|---|---|
| 1 | 00:00:00,160 | 00:00:03,840 | 42 | 21.5 CPS | Local whisper.cpp builds write millisecond offsets inside a transcription array. |
| 2 | 00:00:04,220 | 00:00:07,190 | 39 | 23.9 CPS | Even when word timestamps are disabled, long segments wrap on clean word |
| 3 | 00:00:07,190 | 00:00:10,620 | 42 | 23.9 CPS | boundaries with proportional cue timing so captions never overflow the video frame. |
| 4 | 00:00:11,040 | 00:00:14,480 | 40 | 22.1 CPS | Apply a positive or negative millisecond offset if your intro bumper shifted. |
Browser-Local Pipeline
Pre-tuned for whisper.cpp JSON 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 |