Audio to JSON · for developers

Audio to JSON, with a timing for every word.

Upload a recording and download a JSON transcript: the full text, segments with start and end times, word-level timestamps. Automating it? See the WhipScribe API. Files over 500 MB continue on the upload page. Packs from $4, credits never expire. · packs from $4 for 500 minutes, credits never expire.

Word-level timestamps Speakers named in the summary Also TXT/DOCX/SRT/VTT/MD Up to 10 hours or 5 GB per file

How it works

From a recording to structured data.

One upload, then a file any programming language can read.

1

Upload the audio

MP3, M4A, WAV, FLAC, OGG, WebM, MP4 or MOV, up to 10 hours or 5 GB per file. The box on this page takes files up to 500 MB; larger files continue on the upload page.

2

Export JSON

When the transcript is ready, open the export menu and choose JSON. The file is named after your transcript.

3

Load it anywhere

Python, JavaScript, a database or a notebook all read JSON natively, so there is no custom parser to write before you start.

Inside the file

What the JSON transcript holds.

Read the keys you need and ignore the rest; the same transcript feeds every export.

The full text

The whole transcript as one string, ready for full-text search or a quick pass through a language model.

Segments

The transcript split into passages. Each has a start time, an end time and its text.

Word-level timings

Words inside each segment carry their own start and end times, so you can highlight the word being spoken, cut on word boundaries or align text to video.

Recording details

The detected language and the length of the recording sit alongside the text, handy when you process a batch of files.

Uses

What developers build on a JSON transcript.

Timings are what make a transcript useful to software.

Search indexes

Index each segment as its own document with its start time. A search hit can then open the recording at the moment the words were said.

AI tools and retrieval

Chunk by segment instead of by character count, and keep the time as metadata so an answer can point to where it came from.

Custom captions and players

Build captions in your own format, or highlight each word as it plays, straight from the word timings.

Analytics

Measure segment lengths, count words, or measure pace and pauses across a set of recordings.

The file, key by key

What the JSON looks like.

A shortened example of the JSON download. The keys are the ones the transcription worker writes; a real file has one segment per passage and can carry a few more bookkeeping keys, which you can ignore.

{
  "language": "en",
  "duration": 1834.6,
  "text": "Welcome back to the show. Today we are talking about ...",
  "segments": [
    {
      "start": 0.0,
      "end": 3.42,
      "text": "Welcome back to the show.",
      "words": [
        {"start": 0.0,  "end": 0.48, "text": " Welcome", "score": 0.97},
        {"start": 0.48, "end": 0.81, "text": " back",    "score": 0.99},
        {"start": 0.81, "end": 0.95, "text": " to",      "score": 0.99},
        {"start": 0.95, "end": 1.12, "text": " the",     "score": 0.99},
        {"start": 1.12, "end": 1.60, "text": " show.",   "score": 0.98}
      ],
      "speaker": null
    }
  ]
}
KeyTypeWhat it holds
languagestringThe detected language code, such as en, es or tl.
durationnumberLength of the recording in seconds.
textstringThe whole transcript as one string.
segments[].start, .endnumberSeconds from the start of the recording.
segments[].textstringThe passage, trimmed.
segments[].words[]arrayEach word with start, end, text and score. Words keep their leading space, so joining them rebuilds the sentence.
words[].scorenumberThe model's confidence for that word, from 0 to 1. Low scores are the words to check first.
segments[].speakernullPresent but empty. Speakers are named in the summary, key quotes and chapters, not per segment.

Load it in Python

import json

t = json.load(open("transcript.json", encoding="utf-8"))
print(t["language"], round(t["duration"] / 60), "min")
for seg in t["segments"]:
    print(f'{seg["start"]:8.2f}  {seg["text"]}')

# words the model was least sure of
low = [w for s in t["segments"] for w in (s["words"] or []) if (w["score"] or 1) < 0.5]

Or on the command line with jq

jq -r '.segments[] | "\(.start)\t\(.text)"' transcript.json

JSON or another export?

You needExportWhy
Word timings, confidence, structure for codeJSONThe only export with per-word times and scores.
Captions for a video playerSRT or VTTCues already split for reading on screen.
A document to read or editDOCX or TXTParagraphs with timestamps, no markup.

All five come from the same transcript and every pack includes all of them.

What it costs, and the limits

JSON is priced like every export: by the minute of audio. A one-hour recording uses 60 minutes, $0.48 from the $4 pack (500 minutes), $0.36 from the $12 pack or $0.29 from the $24 pack. Files run up to 10 hours or 5 GB each. The free preview covers the opening minutes; the JSON download needs a pack. Automating it from code needs API access, which comes with the $24 pack or Workspace ($19 a month), not with the smaller packs.

Pricing

Packs from $4, credits never expire.

After that, $4 buys 500 minutes, $12 buys 2,000 minutes and $24 buys 5,000 minutes. Credits never expire and there is no subscription. JSON costs the same as every other export.

Cost example: a single 30-minute recording is $0.24 on the $4 pack. An archive of 400 hours is 24,000 minutes; five $24 packs give 25,000 minutes for $120, and the 1,000 minutes left over stay on your account. See pricing for details.

$4 for 500 min $12 for 2,000 min $24 for 5,000 min Credits never expire

FAQ

Audio to JSON, answered.

What does the JSON transcript look like?

A top-level object with language, duration in seconds and the full text, plus a segments array. Each segment has start, end, text, a words array with each word's start, end, text and confidence score, and a speaker field that is left empty.

Does the JSON say who is speaking?

No. Each segment has a speaker field, but it is empty. Speakers are identified and named in the summary, key quotes and chapters instead.

Does the JSON include a confidence score per word?

Yes. Words carry a score from 0 to 1, the speech model's confidence, or null where the model gave none. Sorting by it is a fast way to find the words worth checking.

Can I use the API to get JSON?

Yes, with API access. It comes with the $24 pack (5,000 minutes) or Workspace at $19 a month, not with the smaller packs. On the website, any pack opens the JSON download.

How do I convert audio to JSON?

Upload the recording on this page, wait for the transcript, then choose JSON from the export menu. You can preview with no signup; a pack from $4 opens the full transcript.

Does the JSON include word-level timestamps?

Yes. Each segment lists its words with start and end times, alongside the segment's own start time, end time and text.

Can I get JSON automatically, without the website?

Yes. The WhipScribe API accepts files from your code and returns the same transcript formats. See the API page to get started.

Is the JSON the same transcript as the SRT and DOCX?

Yes. All downloads come from one transcript. SRT, VTT and DOCX are formatted for people and video players; JSON keeps the structure and the word timings for software. Speakers are identified and named in the summary, key quotes and chapters.

What can I use a JSON transcript for?

Search indexes, retrieval for AI tools, custom caption formats, word highlighting in a player and pace analysis are the common ones.

Which files can I upload?

MP3, M4A, WAV, FLAC, OGG, WebM, MP4 and MOV, up to 10 hours or 5 GB per file. The box on this page takes up to 500 MB and larger files continue on the upload page.

How much does it cost?

Packs from $4, credits never expire. After that, packs are $4 for 500 minutes, $12 for 2,000 minutes or $24 for 5,000 minutes, and credits never expire.

Drop a recording. Download the JSON.

Instant preview, no signup. A free account keeps every transcript in one searchable library.

Looking for a transcription service?

For the recordings you have now: see transcription services from $4 and audio transcription services.