Skip to main content
POST
Initiate Speech-to-Speech WebRTC Session

Iniciar sesión WebRTC de voz a voz

Establezca una conexión WebRTC para conversaciones de voz a voz en tiempo real utilizando OpenAI Realtime API.

Endpoint

Descripción

Establece una conexión WebRTC para conversaciones de voz a voz en tiempo real utilizando OpenAI Realtime API. Este endpoint acepta una oferta SDP WebRTC y devuelve una respuesta SDP que se puede utilizar para establecer una conexión entre pares con la API en tiempo real de OpenAI.

Flujo de uso

  1. El cliente crea una oferta WebRTC (RTCPeerConnection.createOffer)
  2. El cliente envía la oferta SDP a este endpoint.
  3. Este endpoint representa la oferta para OpenAI Realtime API
  4. El cliente recibe la respuesta SDP y establece una conexión WebRTC.
  5. Luego, el cliente puede tener conversaciones de voz en tiempo real con la IA.

Seguimiento del tiempo S2S

  • Cada usuario tiene una cuota de tiempo S2S mensual según su licencia
  • El tiempo se registra en minutos y se deduce cuando se registran las sesiones.
  • Utilice /speech/s2s/status para comprobar el tiempo restante
  • Utilice /speech/s2s/log-session para registrar la duración de la sesión y deducir el tiempo

Integración SMLTP

  • Todas las solicitudes se procesan a través de SMLTP por motivos de seguridad y cumplimiento.
  • La validación del modelo se aplica según la política SMLTP especificada.
  • Las solicitudes se auditan y registran para realizar un seguimiento del cumplimiento.

Autenticación

Requerido: Clave API

Cuerpo de solicitud

Modelos disponibles

  • gpt-4o-mini-realtime-preview
  • gpt-4o-realtime-preview

Voces disponibles

  • alloy (predeterminado)
  • echo
  • fable
  • onyx
  • nova
  • shimmer
  • ash
  • ballad
  • coral

Políticas SMLTP disponibles

  • public
  • internal (predeterminado)
  • internal-strict
  • confidential
  • hipaa
  • gdpr
  • pci-dss

Ejemplo de solicitud

JavaScript/Node.js

Pitón

Respuesta

Respuesta exitosa (200)

Tipo de contenido: application/sdp La respuesta es una cadena de respuesta SDP que se puede utilizar con RTCPeerConnection.setRemoteDescription().

Respuestas de error

400 Solicitud incorrecta

403 Prohibido

Límite de tiempo S2S alcanzado

Error en la validación del modelo

500 Error interno del servidor

Notas

  • La oferta SDP debe ser una cadena de oferta WebRTC SDP válida
  • Después de recibir la respuesta SDP, úsela para configurar la descripción remota en su RTCPeerConnection
  • Verifique el estado del tiempo S2S antes de iniciar sesiones usando /speech/s2s/status
  • Registrar la duración de la sesión después de completarla usando /speech/s2s/log-session
  • Todas las solicitudes se procesan a través de SMLTP por motivos de seguridad y cumplimiento.
  • El parámetro user_id permite facturar a una cuenta de usuario diferente

Autorizaciones

Authorization
string
header
requerido

API key authentication using Bearer token format. Example: Authorization: Bearer sk-your-api-key-here

Cuerpo

application/json
sdp
string
requerido

WebRTC SDP offer from the client's RTCPeerConnection

Ejemplo:

"v=0\r\no=- 4611731400430051336 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n..."

model
enum<string>
predeterminado:gpt-4o-mini-realtime-preview

OpenAI Realtime model to use

Opciones disponibles:
gpt-4o-mini-realtime-preview,
gpt-4o-realtime-preview
voice
enum<string>
predeterminado:alloy

Voice to use for the AI response

Opciones disponibles:
alloy,
echo,
fable,
onyx,
nova,
shimmer,
ash,
ballad,
coral
smltp_policy
enum<string>
predeterminado:internal

SMLTP policy to apply for this session

Opciones disponibles:
public,
internal,
internal-strict,
confidential,
hipaa,
gdpr,
pci-dss
output_audio
boolean
predeterminado:true

Whether to enable audio output (default: true)

user_id
string

Optional user ID to bill this session to (defaults to API key owner)

Ejemplo:

"60a7c8f5e8b4f5001f7a8c23"

instructions
string

Optional system instructions for the AI assistant

Ejemplo:

"You are a helpful customer service agent."

Respuesta

SDP answer from OpenAI Realtime API

SDP answer that can be used with RTCPeerConnection.setRemoteDescription()