Audio

Captain indexes audio as clips of up to 80 seconds. Each clip has a time range, a native embedding of the audio, a transcript slice and a short description of the sound. This page covers how a file is cut, what each clip contains, what a result contains, and the limits.

This is useful for

  • Sales and support calls, where a sentence and its playback offset are the answer
  • Podcasts and meeting recordings, searchable by anything said in them
  • Voice notes and dictation from the field
  • Music and sound libraries, found by how they sound rather than by a file name

What one file becomes

The file is normalised to a standard MP3 (short MP3 and WAV files skip that step) and cut into contiguous clips of up to 80 seconds. Each clip gets a native embedding of the audio, a transcript slice and a short description, stored together on one record.

How audio is chunked

1

Clips with a time range

Clips are contiguous 80-second windows; the last one is shorter. The window is shorter than for video because there is no picture to locate a moment by. Every clip carries location.start_seconds and location.end_seconds on the v3 query, or metadata.startSec and metadata.endSec on v2.

2

Transcript

Speech-to-text runs once over the whole file. Word timings give each clip the words spoken inside its window. Language is detected automatically, or set with transcription_language. There are no speaker labels.

3

Description

Each clip’s description states what kind of recording it is and the character of the speech. For music it states genre, mood, instruments, tempo and vocals. The description does not contain dialogue or lyrics; spoken words are in the transcript.

4

Two signals on one record

The native embedding matches the sound (a jingle, a siren, a style of music). The transcript and description are stored as text on the same record. The result text is [Audio: file name], then the description, then Transcript: ….

Limits and billing

Audio is billed at 5 credits per minute, summed per job. Size limits depend on the route: 100 MB through the direct upload endpoint, 500 MB from the dashboard, and no upload limit from a cloud storage connector. A two-hour recording is usually under 100 MB as MP3 and over it as WAV; send WAV files from a bucket or the dashboard. Collections that contain media rerank by default; see Multimodal Search and File Size Limits.

Examples

Goal: return the clip of a sales call where pricing was discussed, with the offset to play from.

request
{
"query": "renewal price increase",
"limit": 3,
"filter": {
"account": {
"$eq": "northwind"
}
}
}
result (one item)
{
"modality": "audio",
"text": "[Audio: 2026-09-12-northwind.mp3]\nSpeech: a two-person business call, calm, one speaker doing most of the talking.\nTranscript: ...so the renewal would come in at eight percent above this year's rate, which we can hold flat if you commit to two years...",
"location": {
"start_seconds": 1520.0,
"end_seconds": 1600.0
}
}

The transcript slice contains the words. location.start_seconds is the playback offset.

Goal: search a set of episodes by what was said, with no single episode taking the whole result page.

request
{
"query": "why they moved off the monolith",
"limit": 5,
"max_chunks_per_document": 2
}

The transcript text matches the question. max_chunks_per_document limits each episode to two clips in the result. The description marks intro music as music, so it can be filtered out.

Goal: find tracks by how they sound.

request
{
"query": "upbeat acoustic guitar, no vocals",
"limit": 10
}

The native embedding matches the sound, and the description names the genre and instruments as text.

See Supported File Types for the extension table and Video for files with a picture.

© 2026 Captain