Segment Timestamps
Every transcript segment has a start and end time. Use segments for readable transcript blocks, coarse seeking, and chronological indexing.
Add start and end times for each word in prerecorded audio or video. Build synchronized transcripts, click-to-seek playback, search, captions, clips, and citations from structured JSON.
Three Different Timing Levels
Choose the representation that matches the interface or workflow you are building.
Every transcript segment has a start and end time. Use segments for readable transcript blocks, coarse seeking, and chronological indexing.
Set can_parse_words to add a words array with individual start, end, and text values inside each segment.
Request SRT or VTT output for timed subtitle cues. Cue boundaries group text for display and do not expose one timing object per word.
Jobs v2 API Example
Set can_parse_words to true when you submit prerecorded media. The completed JSON keeps word timing inside each transcript segment.
curl --request POST \
--url https://api.speechischeap.com/v2/jobs/ \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"input_url": "https://example.com/product-demo.mp3",
"can_parse_words": true,
"webhook_url": "https://your-domain.com/transcription-webhook"
}'{
"id": "00000000-1111-7222-b333-444444444444-sic",
"status": "COMPLETED",
"output": {
"segments": [
{
"id": 1,
"start": 0.42,
"end": 3.38,
"text": "Every word keeps its own start and end time.",
"words": [
{ "start": 0.42, "end": 0.78, "text": "Every" },
{ "start": 0.82, "end": 1.16, "text": "word" },
{ "start": 1.20, "end": 1.56, "text": "keeps" },
{ "start": 1.60, "end": 1.82, "text": "its" },
{ "start": 1.86, "end": 2.18, "text": "own" },
{ "start": 2.22, "end": 2.58, "text": "start" },
{ "start": 2.62, "end": 2.82, "text": "and" },
{ "start": 2.86, "end": 3.10, "text": "end" },
{ "start": 3.14, "end": 3.38, "text": "time." }
]
}
]
}
}One Sample, Different Representations
Switch between the transcript text, per-word JSON timing, and subtitle files generated from the same sample.
Readable Transcript
00:00.420Every word keeps its own start and end time.
00:03.720That makes synchronized playback and media search easier to build.
Every word keeps its own start and end time.
That makes synchronized playback and media search easier to build.[
{ "start": 0.42, "end": 0.78, "text": "Every" },
{ "start": 0.82, "end": 1.16, "text": "word" },
{ "start": 1.20, "end": 1.56, "text": "keeps" },
{ "start": 1.60, "end": 1.82, "text": "its" },
{ "start": 1.86, "end": 2.18, "text": "own" },
{ "start": 2.22, "end": 2.58, "text": "start" },
{ "start": 2.62, "end": 2.82, "text": "and" },
{ "start": 2.86, "end": 3.10, "text": "end" },
{ "start": 3.14, "end": 3.38, "text": "time." }
]1
00:00:00,420 --> 00:00:03,380
Every word keeps its own start and end time.
2
00:00:03,720 --> 00:00:07,460
That makes synchronized playback and media search easier to build.WEBVTT
00:00:00.420 --> 00:00:03.380
Every word keeps its own start and end time.
00:00:03.720 --> 00:00:07.460
That makes synchronized playback and media search easier to build.Per-word start and end times connect transcript text to precise places in prerecorded media.
Compare the playback position with each word start and end time to highlight the current word as the recording plays.
Attach a word or sentence to its timestamp so a reader can jump from transcript text to that point in the audio or video.
Use the first and last word timestamps around a selected passage as inputs to a separate audio or video clipping workflow.
Index transcript words with their timestamps, then return a seekable moment when a search query matches the recording.
Use SRT or WebVTT when you need timed subtitle cues. Keep per-word JSON for interfaces that need finer-grained timing.
Store a timestamp beside quoted transcript text so reviewers can open the recording near the cited passage.
Use one asynchronous request when your transcript needs word timing together with speaker or audio metadata.
Set can_parse_speakers with can_parse_words to keep anonymous speaker labels and timed words in the same result.
Set can_label_audio when you also need segment-level labels for speech, music, silence, and other audio categories.
Set a supported language or use automatic detection while Parse Words adds timing data to the transcript output.
Parse Words Pricing
Parse Words is an optional add-on. Core transcription is billed separately under your selected plan.
Pay as You Go
Enable Parse Words only on the jobs that need per-word timing.
1 hour: $0.06 add-on cost
10 hours: $0.60 add-on cost
Subscriber
The subscriber Parse Words rate is half the pay-as-you-go add-on rate.
1 hour: $0.03 add-on cost
10 hours: $0.30 add-on cost
Clear Boundaries
Word timestamps help connect transcript text to media playback, but they are not a frame-perfect alignment guarantee.
Parse Words adds timing to the API's transcription output. This page does not describe forced alignment against a transcript you supply.
Test seek points, highlights, clips, and citations against your media player and the tolerance your interface needs.
Segment boundaries, word boundaries, and subtitle cue boundaries solve related but different display and data problems.
Request parameters, output formats, pricing, combinations, and timing expectations.
Create a Jobs v2 request with can_parse_words set to true. The completed JSON output includes a words array on each transcript segment, with start, end, and text for each word.
Every transcript segment has its own start and end time. The optional Parse Words add-on adds timing for individual words inside that segment. Use segment timing for paragraph-like transcript blocks and word timing when the interface must follow speech more closely.
No. SRT and WebVTT return timed subtitle cues. Those cue boundaries are separate from the per-word timing objects in JSON. Request JSON when your application needs the start and end time for each word.
Yes. Jobs v2 accepts can_parse_words and can_parse_speakers in the same request. The result can keep speaker labels at the segment level and timing data for the words inside each segment.
No frame-perfect or sample-perfect timing guarantee is made. Treat the timestamps as transcription timing data and test them against the playback, clipping, caption, or citation experience your product needs.
The Parse Words add-on costs $0.001 per audio minute for pay-as-you-go customers and $0.0005 per audio minute for subscribers. Core transcription is billed separately.
Choose a plan, get your API key, and set can_parse_words to true.