Call center and sales call transcription
Transcribe every call with the agent and the customer kept apart: send the stereo recording with channel labels and get timed text per side for quality review, coaching and search.
A stereo call request
{
"audio_url": "https://recordings.example.com/2026/10/08/call-5521.wav",
"model": "oracle",
"channel_speaker_separation": "overlap",
"channel_labels": { "0": "Agent", "1": "Customer" },
"output_format": "json",
"webhook_url": "https://qa.example.com/hooks/kolwrite"
}
Each segment and word carries its channel and label. Use standard when people take turns (billed at one model rate) and overlap when they talk over each other (billed at the model rate for the greater of the call length or the total detected speech across channels).
Mono recordings
If both sides are mixed into one channel, use include_diarization: true with num_speakers: 2 instead. Channel separation and diarization cannot be combined in one job.
At scale
- Start jobs as calls end and receive results by webhook.
- Deduplicate webhook deliveries on
X-KolWrite-Delivery-Id. basekeeps cost at US$0.48 per call hour for clear lines;oraclefor noisy or accented calls.- Recording and transcribing calls requires the consent your jurisdiction demands; that stays your responsibility.
Questions and answers
Does channel separation cost extra?
Standard channel separation is included. Overlap mode bills the model rate for the greater of the recording length or the total detected speech.
Can I label channels with names?
Yes, with channel_labels, for example {"0":"Agent","1":"Customer"}.
How many channels are supported?
Two to eight physical channels.