Options
Options are set for a project on the cabinet's "Settings" tab and apply to every recording. For one recording they can be changed: in the cabinet in the "Transcription options" block, in the API with the settings field of the upload. The keys are the same.
| Key | Option (and the cabinet's own label) | Tariff |
|---|---|---|
formatting | Punctuation and capitals | ×1 |
itn | Numbers, dates and amounts as digits | ×1 |
stereo_channels_as_speakers | Stereo channels are the parties | ×1 |
diarization, max_speakers | Speaker separation — "Speaker separation" | ×1 |
gender | Voice gender — "Voice gender" | ×1 |
speaker_roles, call_direction | Client and manager — "Client and agent" | ×1 |
speaker_identification | Recognise by voice — "Recognise by voice" | ×1 |
word_timestamps | Time of every word | ×1 |
webhook_url | Address notified when a job finishes | ×1 |
emotion | Emotions — "Emotion" | ×2 |
pii | Personal data — "Personal data" | ×1.2 |
A new project has everything on, the paid options included. Until Emotions and Personal data are switched off, every recording runs at ×2.2 — more than twice the price. Switch them off on the "Settings" tab of the cabinet, or pass "emotion": false, "pii": false in the project settings or in a single request.
The cabinet does not show the first three: formatting, itn and stereo_channels_as_speakers are always on, because there is almost never a reason to turn them off — they cost nothing and do not spoil the text. If you do need to, it is the API's settings field only.
Punctuation and capitals
A separate model places full stops, commas and question marks and capitalises the first letter of sentences and names. The recognised words do not change.
In the result: segments[].formatted_text and the overall text. Without the option the text is lower-case with no punctuation.
Numbers, dates and amounts as digits
"ikki ming yigirma olti" becomes "2026", "besh yuz ming so'm" becomes "500 000 so'm". Rule-based, in strict mode: when a rule is unsure the words stay words. Applied after punctuation.
Stereo channels are the parties
For two-channel recordings where the sides are already split between the channels — usually telephony: the left channel is one side, the right the other. Each channel is recognised on its own and gets speaker number 0 or 1. More accurate than any separation by voice, because telephony already separated the sides.
Changes nothing for mono recordings. The result carries stereo_parties: true.
Speaker separation
For mono recordings with several voices. The model listens to the whole recording, divides the speech between voices by timbre, and every utterance gets a speaker number: 0, 1, 2, 3. Up to four voices.
max_speakers tells the model how many voices to look for. If you know it is a conversation of two, set 2: the model will not find extra ones. Default 0, the model decides.
Two-channel recordings do not need it: the channels are the two parties already. stereo_channels_as_speakers is always on and is not shown in the cabinet; it can only be turned off through the API, for a single request.
Voice gender
By timbre, in 8-second windows of each speaker's speech. With little speech or a borderline voice the answer is "unknown", not a guess.
In the result: speaker_info[].gender = {"label": "female" | "male" | "unknown", "confidence": 0.93}.
Client and manager
From the text of the conversation: who greets first, who introduces a company, who asks and who answers. Needs exactly two speakers: stereo channels or speaker separation. With roles on and no max_speakers given, the model looks for two.
call_direction is passed per request and improves accuracy: "inbound" for an incoming call, "outbound" for an outgoing one, empty when it is not a call or unknown. In the cabinet it is the "What this recording is" choice at upload.
In the result: speaker_info[].role = "client" | "manager" | "unknown" and options_report.roles with the direction and who spoke first.
Recognise by voice
A voice print is computed from each speaker's speech and compared with the project's voices. A known voice gets its permanent number and its name, if one was given. A new voice with 10 seconds of speech or more in the recording is registered on its own and is recognised in later recordings from then on.
In the result: voices[] linking "speaker of this recording → project voice number", and speaker_info[].identity. Naming voices, merging them and marking utterances as one person: Voices and speakers.
Emotions
An audio model listens to each utterance, not the text, and assigns it one of the states: neutral, negative, distressed, positive, surprised. Per speaker it computes the share of each state and the dominant one.
Beside the class the model gives three 0-to-1 scales and a confidence. How to read them: Emotion scales.
In the result: segments[].emotion = {"mood", "label", "confidence", "probabilities", "valence", "arousal", "dominance", "windows"} and speaker_info[].emotion = {"dominant_mood", "mood_share", "valence", "arousal", "dominance"}.
Price: seconds of audio count twice.
Personal data
The model marks names, phone numbers, addresses, document and card numbers and dates in the text. Each utterance gets a list of what was found with positions in the text, and a version of the text where the data is replaced by [NAME], [PHONE] and so on. The cabinet has a "hide personal data" switch.
In the result: segments[].pii = {"entities": [{"label": "PHONE", "start": 12, "end": 24}], "redacted_text": "…"}.
Price: seconds of audio are multiplied by 1.2.
How the price is computed
The tariff is a multiplier on the length of the recording: 1 without paid options, 2 with Emotions, 1.2 with Personal data, 2.2 with both. Only the length counts, not the number of options: three free options cost the same as none. The cabinet shows the tariff beside the options, and GET /v1/usage gives what is left. The unit is g: Balance and payment.