Skip to content

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.

KeyOption (and the cabinet's own label)Tariff
formattingPunctuation and capitals×1
itnNumbers, dates and amounts as digits×1
stereo_channels_as_speakersStereo channels are the parties×1
diarization, max_speakersSpeaker separation — "Speaker separation"×1
genderVoice gender — "Voice gender"×1
speaker_roles, call_directionClient and manager — "Client and agent"×1
speaker_identificationRecognise by voice — "Recognise by voice"×1
word_timestampsTime of every word×1
webhook_urlAddress notified when a job finishes×1
emotionEmotions — "Emotion"×2
piiPersonal 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.