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

Lancer une session WebRTC de synthèse vocale

Établissez une connexion WebRTC pour des conversations parole-parole en temps réel à l’aide de l’API OpenAI Realtime.

Point de terminaison

Description

Établit une connexion WebRTC pour les conversations parole-parole en temps réel à l’aide de l’API OpenAI Realtime. Ce point de terminaison accepte une offre WebRTC SDP et renvoie une réponse SDP qui peut être utilisée pour établir une connexion homologue avec l’API en temps réel d’OpenAI.

Flux d’utilisation

  1. Le client crée une offre WebRTC (RTCPeerConnection.createOffer)
  2. Le client envoie l’offre SDP à ce point de terminaison
  3. Ce point de terminaison transmet l’offre à l’API OpenAI Realtime
  4. Le client reçoit la réponse SDP et établit une connexion WebRTC
  5. Le client peut alors avoir des conversations vocales en temps réel avec l’IA

Suivi du temps S2S

  • Chaque utilisateur dispose d’un quota de temps S2S mensuel basé sur sa licence
  • Le temps est suivi en minutes et déduit lorsque les sessions sont enregistrées
  • Utilisez /speech/s2s/status pour vérifier le temps restant
  • Utilisez /speech/s2s/log-session pour enregistrer la durée de la session et déduire le temps

Intégration SMLTP

  • Toutes les demandes sont traitées via SMLTP pour des raisons de sécurité et de conformité
  • La validation du modèle est appliquée en fonction de la politique SMLTP spécifiée
  • Les demandes sont auditées et enregistrées pour le suivi de la conformité

Authentification

Obligatoire : clé API

Corps de la demande

Modèles disponibles

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

Voix disponibles

  • alloy (par défaut)
  • echo
  • fable
  • onyx
  • nova
  • shimmer
  • ash
  • ballad
  • coral

Politiques SMLTP disponibles

  • public
  • internal (par défaut)
  • internal-strict
  • confidential
  • hipaa
  • gdpr
  • pci-dss

Exemple de demande

JavaScript/Node.js

###Python

Réponse

Réponse réussie (200)

Type de contenu : application/sdp La réponse est une chaîne de réponse SDP qui peut être utilisée avec RTCPeerConnection.setRemoteDescription().

Réponses d’erreur

400 Requête incorrecte

403 Interdit

Délai S2S atteint

Échec de la validation du modèle

500 Erreur de serveur interne

Remarques

  • L’offre SDP doit être une chaîne d’offre WebRTC SDP valide
  • Après avoir reçu la réponse SDP, utilisez-la pour définir la description distante sur votre RTCPeerConnection
  • Vérifiez l’état de l’heure S2S avant de lancer des sessions à l’aide de /speech/s2s/status
  • Durée de la session de journalisation une fois terminée à l’aide de /speech/s2s/log-session
  • Toutes les demandes sont traitées via SMLTP pour des raisons de sécurité et de conformité
  • Le paramètre user_id permet la facturation sur un autre compte utilisateur

Autorisations

Authorization
string
header
requis

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

Corps

application/json
sdp
string
requis

WebRTC SDP offer from the client's RTCPeerConnection

Exemple:

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

model
enum<string>
défaut:gpt-4o-mini-realtime-preview

OpenAI Realtime model to use

Options disponibles:
gpt-4o-mini-realtime-preview,
gpt-4o-realtime-preview
voice
enum<string>
défaut:alloy

Voice to use for the AI response

Options disponibles:
alloy,
echo,
fable,
onyx,
nova,
shimmer,
ash,
ballad,
coral
smltp_policy
enum<string>
défaut:internal

SMLTP policy to apply for this session

Options disponibles:
public,
internal,
internal-strict,
confidential,
hipaa,
gdpr,
pci-dss
output_audio
boolean
défaut:true

Whether to enable audio output (default: true)

user_id
string

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

Exemple:

"60a7c8f5e8b4f5001f7a8c23"

instructions
string

Optional system instructions for the AI assistant

Exemple:

"You are a helpful customer service agent."

Réponse

SDP answer from OpenAI Realtime API

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