Опции
Опции задаются для проекта во вкладке «Настройки» кабинета и действуют на все записи. Для одной записи их можно изменить: в кабинете в блоке «Опции распознавания», в API полем settings при загрузке. Ключи одни и те же.
| Ключ | Опция | Тариф |
|---|---|---|
formatting | Пунктуация и заглавные буквы | ×1 |
itn | Числа, даты и суммы цифрами | ×1 |
stereo_channels_as_speakers | Стерео-каналы это собеседники | ×1 |
diarization, max_speakers | Разделение по спикерам | ×1 |
gender | Пол голоса | ×1 |
speaker_roles, call_direction | Клиент и менеджер | ×1 |
speaker_identification | Узнавать по голосу | ×1 |
word_timestamps | Время каждого слова | ×1 |
webhook_url | Адрес для уведомления о готовности | ×1 |
emotion | Эмоции | ×2 |
pii | Персональные данные | ×1.2 |
У нового проекта включено всё, включая платное. Пока вы не выключили «Эмоции» и «Персональные данные», каждая запись идёт по тарифу ×2.2, то есть больше чем вдвое дороже. Выключить можно в кабинете во вкладке «Настройки» или передать "emotion": false, "pii": false в настройках проекта либо в отдельном запросе.
Три первые опции кабинет не показывает: formatting, itn и stereo_channels_as_speakers включены всегда, потому что выключать их почти никогда не нужно — они не стоят денег и не портят текст. Если всё-таки нужно, это делается только через API, полем settings.
Пунктуация и заглавные буквы
Отдельная модель расставляет точки, запятые и вопросительные знаки и поднимает первую букву предложений и имён. Распознанные слова не меняются.
В ответе: segments[].formatted_text и общий text. Без опции текст идёт строчными буквами без знаков.
Числа, даты и суммы цифрами
«ikki ming yigirma olti» становится «2026», «besh yuz ming so'm» становится «500 000 so'm». Работает по правилам, в строгом режиме: если правило не уверено, слово остаётся словами. Применяется после пунктуации.
Стерео-каналы это собеседники
Для двухканальных записей, где стороны уже разделены по каналам — чаще всего это телефония: левый канал одна сторона, правый другая. Каждый канал распознаётся отдельно и получает номер спикера 0 или 1. Это точнее любого разделения по голосу, потому что стороны уже разделены телефонией.
Для моно-записей ничего не меняет. В ответе stereo_parties: true.
Разделение по спикерам
Для моно-записей с несколькими голосами. Модель слушает запись целиком, делит речь между голосами по тембру, и каждая реплика получает номер спикера: 0, 1, 2, 3. До четырёх голосов.
max_speakers говорит модели, сколько голосов искать. Если известно, что разговор двоих, укажите 2: модель не будет находить лишних. По умолчанию 0, модель решает сама.
Двухканальным записям это не нужно: каналы и есть собеседники. stereo_channels_as_speakers включён всегда и в кабинете не показывается; выключить его можно только через API, для одного запроса.
Пол голоса
По тембру, окнами по 8 секунд речи каждого спикера. Если речи мало или голос на границе, ответ «неизвестно», а не догадка.
В ответе: speaker_info[].gender = {"label": "female" | "male" | "unknown", "confidence": 0.93}.
Клиент и менеджер
По тексту разговора: кто здоровается первым, кто представляется компанией, кто спрашивает и кто отвечает. Нужны ровно два спикера: стерео-каналы или разделение по спикерам. Если max_speakers не задан, при включённых ролях модель ищет двоих.
call_direction передаётся на каждый запрос и повышает точность: "inbound" входящий звонок, "outbound" исходящий, пусто если это не звонок или неизвестно. В кабинете это выбор «Что это за запись» при загрузке.
В ответе: speaker_info[].role = "client" | "manager" | "unknown" и options_report.roles с направлением и тем, кто говорил первым.
Узнавать по голосу
Из речи каждого спикера считается голосовой отпечаток и сравнивается с голосами проекта. Знакомый голос получает свой постоянный номер и имя, если его дали. Новый голос, у которого в записи есть 10 секунд речи и больше, регистрируется сам и с этого момента узнаётся в следующих записях.
В ответе: voices[] со связью «спикер этой записи → номер голоса проекта» и speaker_info[].identity. Как давать имена, объединять голоса и отмечать реплики как одного человека: Голоса и спикеры.
Эмоции
Аудио-модель слушает каждую реплику, не текст, и относит её к одному из состояний: нейтрально, недовольство, напряжение, позитив, удивление. По спикеру считается доля каждого состояния и преобладающее.
Кроме класса модель даёт три шкалы от 0 до 1 и уверенность. Как их читать: Шкалы эмоций.
В ответе: segments[].emotion = {"mood", "label", "confidence", "probabilities", "valence", "arousal", "dominance", "windows"} и speaker_info[].emotion = {"dominant_mood", "mood_share", "valence", "arousal", "dominance"}.
Цена: секунды аудио считаются вдвое.
Персональные данные
Модель помечает в тексте имена, телефоны, адреса, номера документов и карт, даты. Для каждой реплики есть список найденного с позициями в тексте и вариант текста, где данные заменены на [NAME], [PHONE] и так далее. В кабинете есть переключатель «скрыть персональные данные».
В ответе: segments[].pii = {"entities": [{"label": "PHONE", "start": 12, "end": 24}], "redacted_text": "…"}.
Цена: секунды аудио умножаются на 1.2.
Как считается цена
Тариф это множитель к длительности записи: 1 без платных опций, 2 с «Эмоциями», 1.2 с «Персональными данными», 2.2 с обеими. Считается только длина записи, не число опций: три бесплатных опции стоят столько же, сколько ни одной. Кабинет показывает тариф рядом с опциями, а остаток отдаёт GET /v1/usage. Единица учёта — g: Баланс и оплата.