Conversational audio
Audio formats, channel layout, the transcript JSON format and metadata fields for call recordings.
Real calls from contact centres, BPOs and platforms across healthcare, finance and e-commerce / food delivery, de-identified at the source. Each call is one record: an audio file, an optional transcript, and its metadata.
Audio
| Item | Spec |
|---|---|
| Format | WAV or FLAC, lossless |
| Sample rate | The source's native rate: 8 kHz telephony or higher. Never resampled upward. |
| Channels | Agent and customer on separate channels where the source recorded them; otherwise mono, flagged in metadata |
| Redaction | Spans with personal data are replaced with a tone or silence. See audio and transcript redaction. |
| Naming | One file per call, named by record_id |
Transcript format
Transcripts are optional per listing. When present, they're time-aligned and speaker-labelled, in the original script plus a romanised copy. Here's the example call on a timeline; hover a segment to read it. Hatched spans were redacted.
Each transcript is one JSON file per call, transcripts/<record_id>.json:
{
"record_id": "qr_01HZX4T9K2M7",
"language": ["hi", "en"],
"code_mixed": true,
"segments": [
{
"speaker": "customer",
"start": 6.1,
"end": 9.0,
"text": "हाँ, बोलिए। प्रीमियम कितना होगा?",
"script": "Deva",
"text_romanised": "Haan, boliye. Premium kitna hoga?",
"redactions": []
},
{
"speaker": "customer",
"start": 17.2,
"end": 22.5,
"text": "ठीक है, आप मुझे [PHONE_NUMBER] पर डिटेल्स भेज दीजिए।",
"script": "Deva",
"text_romanised": "Theek hai, aap mujhe [PHONE_NUMBER] par details bhej dijiye.",
"redactions": [{ "type": "PHONE_NUMBER", "start": 19.6, "end": 21.3 }]
}
]
}
| Field | Type | Meaning |
|---|---|---|
segments[].speaker | enum | agent, customer, or ivr for an automated leg |
segments[].start, end | number | Seconds from the start of the audio |
segments[].text | string | The utterance in its original script, with redaction tags |
segments[].script | string | ISO 15924 script code, such as Deva, Taml, Latn |
segments[].text_romanised | string | The same utterance in Latin script |
segments[].redactions | array | Each redacted span: entity type, start and end in seconds |
Metadata
| Field | Type | Values |
|---|---|---|
language | string[] | BCP 47 codes, such as hi, ta, en-IN |
code_mixed | boolean | True when the call switches languages |
domain | enum | healthcare, finance, ecommerce_food_delivery |
call_type | string | Such as health_insurance_sales, appointment_scheduling, card_collections, order_issue |
duration_s | number | Length of the audio in seconds |
year | integer | The year the call was recorded |
channels | enum | stereo_split or mono |
sample_rate_hz | integer | Native sample rate |
outcome | enum, optional | sale, no_sale, resolved, escalated, promise_to_pay, where the source records it |
Language coverage is listed per dataset on its deal sheet, never site-wide. The full field list is in the metadata dictionary.