Перейти до основного вмісту
Адреса: 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 подій відкрийте нове з’єднання.