Перейти к основному содержанию
Адрес: wss://api.erlcrussia.com/v1/realtime?model=emmy-voice-1. Параметр model можно не передавать. Авторизация, как в OpenAI:
  • на сервере — заголовок Authorization: Bearer sk-voice-…;
  • в браузере — подпротоколы WebSocket realtime и openai-insecure-api-key.sk-voice-….
Работает OpenAI Realtime SDK: вы отправляете текст или голос, модель отвечает голосом и текстовой расшифровкой. Поля событий, которые API не использует (например, instructions или tools), игнорируются.

Сессия

После подключения сервер присылает session.created. Настройки меняются событием session.update:
Языки: ru, en, uk, be, es, it, fr, zh, ja, ko. Голоса: F1, F2. Звук на входе и на выходе — PCM16, моно, 24 кГц. Ход определяется вручную: turn_detection должен быть null, конец реплики отмечает событие input_audio_buffer.commit. Автоматическое определение речи (server_vad) не поддерживается.

Текстовый запрос

id элемента необязателен. Роль может быть user или system.

Голосовой запрос

После commit сервер присылает input_audio_buffer.committed и conversation.item.added. Когда речь распознана, приходят conversation.item.input_audio_transcription.completed с текстом и conversation.item.done. Если распознать не удалось — conversation.item.input_audio_transcription.failed. response.create можно отправить сразу после commit: ответ начнётся, когда распознавание закончится. input_audio_buffer.clear очищает буфер. Голос можно передать и одним элементом с частью input_audio в conversation.item.create.

Ответ

Сервер присылает response.created, затем response.output_audio_transcript.delta (текст) и response.output_audio.delta (PCM в base64), и в конце response.done с расходом в usage.
  • Распознавание голоса оплачивается по той же цене, что и распознавание речи.
  • event_id необязателен (до 128 символов). Если он передан, повтор события с тем же event_id игнорируется.
  • Одновременно возможен один ответ. Текст запроса — от 1 до 12 000 символов, голос — от 100 мс до 120 секунд.
  • После 100 обменов или 4096 событий откройте новое соединение.