Пригласите друзей и получите бесплатные токены!Узнать больше

Документация API GPT-4o-audio

1. Обзор API

Данный API используется для вызова модели GPT-4o с возможностью генерации аудио. Он поддерживает одновременное взаимодействие и генерацию текста и аудио в рамках одного запроса.

  • Статус: Опубликовано (Released)
  • Официальная документация: OpenAI API Reference

2. Описание запроса

  • Протокол: HTTP / HTTPS
  • Метод запроса: POST
  • URL-адрес (Endpoint):
POST https://api.codingplanx.ai/v1/chat/completions

3. Заголовки запроса (Request Headers)

ПараметрТипОбязательноПример значенияОписание
Content-TypestringДаapplication/jsonОпределяет формат данных тела запроса.
AuthorizationstringДаBearer $OPENAI_API_KEYУчетные данные для аутентификации. Пожалуйста, замените на ваш актуальный API Key.

4. Параметры тела запроса (Request Body)

Тело запроса должно быть передано в формате application/json.

ПараметрТипОбязательноОписание
modelstringДаID используемой модели. Например: gpt-4o-audio-preview.
modalitiesarray[string]НетТип генерируемого вывода модели. По умолчанию: ["text"].<br>Если необходимо, чтобы модель сгенерировала как текстовый, так и аудио ответ, используйте: ["text", "audio"].
audioobjectНетПараметры вывода аудио. Настройка обязательна, если modalities включает "audio".
? audio.voicestringДа (условно)Голос, используемый моделью для ответа. Доступные значения: alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer.
? audio.formatstringДа (условно)Определяет формат выходного аудио. Должен быть: wav, mp3, flac, opus или pcm16.
messagesarray[object]ДаСписок сообщений, составляющих текущий диалог.
? messages[].rolestringДаРоль автора сообщения (например, system, user, assistant).
? messages[].contentstringДаКонкретное содержимое сообщения.

5. Пример запроса (cURL)

curl -X POST "https://api.codingplanx.ai/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
      "model": "gpt-4o-audio-preview",
      "modalities": ["text", "audio"],
      "audio": { "voice": "alloy", "format": "wav" },
      "messages": [
        {
          "role": "user",
          "content": "Is a golden retriever a good family dog?"
        }
      ]
    }'

6. Описание ответа (Response)

  • HTTP Статус-код: 200 OK (Успешно)
  • Content-Type: application/json

(Примечание: Структура ответа соответствует стандартной спецификации OpenAI Chat Completions. Если запрос содержит конфигурацию audio, возвращаемый JSON в choices[0].message будет содержать объект audio, включающий аудиоданные в кодировке Base64 и связанные ID.)


7. Часто задаваемые вопросы (FAQ)

Q1: Почему мой запрос возвращает только текст без аудио? A1: Убедитесь, что параметр modalities в теле запроса явно включает "audio" (т.е. ["text", "audio"]). Если этот параметр не задан, система по умолчанию выведет только "text". Также проверьте правильность настройки полей voice и format в объекте audio.

Q2: Как выбрать формат аудио (format)? A2:

  • mp3: Наиболее универсальный формат, отлично подходит для веб-сайтов и стандартных приложений, имеет небольшой размер файла.
  • wav: Формат без потерь и сжатия, лучшее качество звука, но самый большой размер файла. Подходит для профессиональной обработки звука, требующей высочайшего качества.
  • flac: Формат сжатия без потерь, размер файла меньше, чем у wav, при сохранении того же качества звука.
  • opus: Разработан специально для потоковой передачи в сети (стриминг). Обеспечивает сверхнизкую задержку и высокую степень сжатия, идеален для голосовых звонков в реальном времени или при низкой пропускной способности сети.
  • pcm16: Исходный формат несжатого аудиопотока. Подходит для передачи данных на низком уровне или вторичной аппаратной разработки.

Q3: Как правильно заполнить заголовок Authorization? A3: Необходимо использовать механизм аутентификации Bearer. Ваш API Key должен быть указан после слова Bearer (обратите внимание на пробел после слова), например в таком виде: Authorization: Bearer sk-xxxxxxxxx.

Q4: Какие голоса (Voice) поддерживает этот API? A4: В настоящее время поддерживается 10 встроенных голосов: alloy, ash, ballad, coral, echo, fable, nova, onyx, sage и shimmer. Рекомендуется протестировать эти голоса в ваших рабочих сценариях, чтобы выбрать тембр, наиболее подходящий для стиля вашего приложения.

Q5: Что делать, если запрос возвращает ошибку 401 Unauthorized? A5: Обычно это связано с тем, что API Key недействителен, истек срок его действия, либо в заголовке Authorization допущена опечатка. Пожалуйста, перейдите в панель управления, чтобы убедиться в активности вашего API Key, а также проверьте ваш код на наличие лишних пробелов или отсутствие правильного префикса.