> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT-Live: голосовой диалог в реальном времени

> OpenAI generation API guide - Ace Data Cloud

GPT-Live поддерживает одновременное слушание и речь, двусторонние субтитры и фоновые задачи. Голосовые вызовы ChatGPT в Studio используют `gpt-live-1` для обработки речи, а сложные вопросы по-прежнему обрабатываются текущей выбранной моделью чата.

## Подключение

Используйте API Token платформы для подключения к `wss://realtime.acedata.cloud/v1/live/sessions`. Учетные данные Studio или сервиса чата используют `wss://realtime.acedata.cloud/aichat2/live`. Сервер выполняет аутентификацию через `Authorization: Bearer <token>`; браузер передает учетные данные через подпротокол WebSocket, чтобы не записывать их в URL:

```javascript theme={null}
const socket = new WebSocket('wss://realtime.acedata.cloud/aichat2/live', [
  'live', `acedata-token.${token}`
]);
socket.onopen = () => socket.send(JSON.stringify({
  type: 'session.start',
  session: {
    model: 'gpt-live-1',
    instructions: '简洁友好地回答，使用用户的语言。复杂问题交给后台处理。',
    audio: { format: { type: 'audio/pcm', rate: 24000 }, output: { voice: 'marin' } },
    delegation: { type: 'client' },
    store: false
  }
}));
```

После ожидания `session.started` непрерывно отправляйте `session.input_audio.append`, где `audio` — это Base64 необработанного аудио PCM с частотой 24 кГц, моно, 16-битного little-endian, без заголовка WAV-файла. Отправляйте аудио с фактической скоростью дискретизации, фрагменты тишины также должны оставаться непрерывными.

Воспроизводите `session.output_audio.delta.delta` по порядку. Субтитры пользователя и ассистента поступают соответственно из `session.input_transcript.delta` и `session.output_transcript.delta`, сохраняйте для каждого фрагмента `delta`, `start_ms`, `end_ms`; субтитры обеих сторон могут увеличиваться одновременно. У Live нет события завершения каждого отдельного голосового ответа, следует обновлять состояние «отвечает» на основе локальной очереди воспроизведения.

## Фоновые задачи

В настоящее время поддерживается режим делегирования `client`. После получения `session.delegation.created` приложение вызывает собственный бэкенд на основе голосовых субтитров и сохраненного контекста и возвращает результат через `session.thinking.append` или `session.commentary.append`, передавая соответствующий `delegation_id` и чисто текстовый `content` объемом до 500 токенов. Результат должен поступать из завершенной фоновой операции; прерывание речи не означает, что фоновая задача отменена.

Делегирование управляемых Responses, хранение записей, `session.update`, восстановление сессии или автоматическое переподключение пока не поддерживаются. Модель фиксирована как `gpt-live-1`, аудио фиксировано как PCM16 24 кГц, голос выбирается при начале вызова. Старый Realtime API по-прежнему можно использовать.

## Тарификация и завершение вызова

Голос тарифицируется по длительности активной сессии: **0.01 Credits/секунду, то есть 0.6 Credits/минуту**, без округления до полных минут. Время, когда говорит пользователь, говорит ассистент, присутствует тишина, обе стороны молчат и ожидают фоновые задачи, — все это тарифицируется. Вызовы фоновой модели или инструментов тарифицируются отдельно в соответствии с соответствующим API. Цена Credits в долларах зависит от пакета пополнения, ориентируйтесь на текущую цену в консоли.

`session.usage.updated.usage.seconds` — это накопленное использование. Например, если сначала получено 12 секунд, а затем 15 секунд, итог составляет 15 секунд. Платформа списывает только добавленную длительность, не суммируя снимки повторно.

При завершении отправьте `session.close`, продолжайте получать данные, пока не будет получено `session.closed`, затем закройте соединение и освободите микрофон. Принудительное отключение может привести к тому, что итоговое использование не будет подтверждено, интерфейс должен явно сообщить об этом. При недостаточном балансе, сбое тарификации или достижении лимита сессии соединение завершится. По умолчанию один вызов длится не более 30 минут.

Ошибки параметров возвращаются через событие `error`; `error.client_event_id` соответствует неудачной команде. При сбое запуска следует остановить запись и показать ошибку, не переключая автоматически модель и не повторяя попытку, создающую новые расходы.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.