Открыть оглавление

Сообщения

После session.ready отправляйте сырой PCM. Управляющие сообщения: finalize, stop, ping.

Клиент → Сервер

СообщениеДанныеОписание
session.finalize—Принудительно закрыть текущий сегмент и отправить final.
session.stop—Аккуратно завершить поток.
session.ping—Проверка связи. Ответ — session.pong.

Аудиокадры — сырой pcm_s16le, 16 кГц, моно, до 64 КБ на кадр. Нет ни заголовка кадра, ни порядкового номера, ни учёта смещений: отправляйте байты по порядку, остальное сделает сервер.

Сервер → Клиент

Все серверные сообщения — текстовые JSON-кадры с полем type. sessionId есть только в session.ready, не в каждой расшифровке или переводе. segmentId непрозрачен, префикс разбирать не нужно.

СообщениеДанныеОписание
session.readysessionId, audio, limits, store, regionПоток начался. Можно отправлять аудио.
transcript.partialtext, language?, pending?, tail?, paragraphs?, tailTranslation?Снимок предпросмотра. В режиме sentence paragraphs содержит {speaker?, pieces: [{text, confirmed}], translation?}, а tail/tailTranslation — незавершённую фразу. pending — плоский резервный формат. Заменяйте снимок целиком, показывайте переводы абзацев вместо суммарного translation.partial. Только transcript.final — окончательный результат.
transcript.finalsegmentId, text, startMs?, endMs?, speaker?, language?Зафиксированный сегмент на часах эффективного аудио.
translation.partialtext, sourceTextНеустойчивый предпросмотр перевода.
translation.finalsegmentId, text, sourceText, sourceLanguage, targetLanguage, enhanced?Зафиксированный перевод. С aiEnhance тот же segmentId приходит ещё раз с enhanced: true.
digest.updatesections[]Живой протокол: { title, points[], confirmed }. Каждая отправка заменяет предыдущую.
usage.updateeffectiveSamples, discardedSamples, effectiveSeconds, discardedSeconds, priceCentsPerHour, accruedCents, collectedCents, uncollectedCents, balanceCentsКаждые 15 секунд и в конце.
session.errorcode, message, retryable, scopeВосстановимая или фатальная ошибка.
session.endedreason, enhancement, storage, billingСервер закрыл поток. У хранения и доработки свои статусы.
session.pong—Ответ на session.ping.