
Entrée de parole, sortie de parole, sur une seule prise. Interruptible en plein milieu de la réponse, avec la détection de l’activité vocale décidant quand répondre.
Entrée de parole, sortie de parole, sur une seule prise. Interruptible en plein milieu de la réponse, avec la détection de l’activité vocale décidant quand répondre.
La session est configurée avec des événements session.update sur le socket plutôt que des paramètres de requête.
Aussi connu sous le nom StepFun StepAudio 3 Realtime
stepaudio-3-realtime/v1/realtimestepaudio-3-realtime-previewstepfun/stepaudio-3-realtimeTarifs à l'usage en direct du catalogue EmpirioLabs. Vous ne payez que ce que vous utilisez, sans minimum mensuel.
StepAudio 3 Realtime tient une conversation en direct via un WebSocket sur wss://api.empiriolabs.ai/v1/realtime?model=stepaudio-3-realtime, et non via les endpoints HTTP. Connectez-vous avec l'id de modèle stepaudio-3-realtime et envoyez votre clé API EmpirioLabs dans un en-tête Authorization: Bearer lors du handshake. L'audio circule dans les deux sens en PCM 16 bits encodé en base64. Un navigateur ne peut pas définir d'en-têtes sur un WebSocket : ouvrez donc cette connexion depuis votre serveur et relayez l'audio vers le navigateur via votre propre socket. Obtenez une clé API depuis le tableau de bord EmpirioLabs.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=stepaudio-3-realtime",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Say hello."}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.audio.delta":
... # base64 audio chunk, append to your playback buffer
elif event["type"] == "response.done":
break
asyncio.run(main())Paramètres de requête pris en charge par l'API StepAudio 3 Realtime sur EmpirioLabs. Les valeurs par défaut s'appliquent quand un champ est omis.
| Paramètre | Type | Par défaut | Plage / valeurs | Description |
|---|---|---|---|---|
| voice | enum | soft-spoken-gentleman | soft-spoken-gentleman, magnetic-voiced-male, vibrant-youth, l... | Session voice, configuré avec session.update avant que le modèle ne produise de l’audio. Elle ne peut pas être modifiée une fois que le modèle a parlé, et toute... |
| instructions | string | - | - | Instructions système pour la session: persona, style de parole et limites. |
| modalities | string | ["text","audio"] | - | Modalités de réponse pour la session. |
| volume_ratio | number | 1 | 0.1 à 2 | Le volume de la réponse prononcée, par rapport au niveau par défaut. La plage acceptée est de 0,1 à 2,0. |
| input_audio_format | enum | pcm16 | pcm16 | Encodage de l’audio que vous envoyez. PCM 16 bits. |
| output_audio_format | enum | pcm16 | pcm16 | Encodage de l’audio que le modèle retourne. PCM 16 bits. |
| turn_detection | string | {"type":"server_vad"} | - | Détection d’activité vocale côté serveur. Il décide quand vous avez arrêté de parler et le modèle doit répondre. Sans cela, le modèle écoute mais ne répond jamais,... |
Voix full-duplex sur WebSocket à wss://api.empiriolabs.ai/v1/realtime ?model=stepaudio-3-realtime, authentifiée avec l’en-tête Authorization Bearer ordinaire. L’audio est pcm16 en entrée et sortie. Le modèle écoute pendant qu’il parle, il peut donc être interrompu en plein milieu de la réponse, et la détection d’activité vocale côté serveur décide quand répondre. Réglez la voix avec session.update avant le premier audio; elle ne peut pas être modifiée une fois que le modèle a parlé, et seules les sept voix listées sont acceptées. La conversation est uniquement en chinois et en anglais. Chaque tour complété est facturé séparément à partir de l’utilisation rapportée par le modèle. Ce modèle est en aperçu et ses capacités peuvent changer.
Sur EmpirioLabs, StepAudio 3 Realtime est facturé à l'usage : Entrée $1.50 par 1M de jetons d’invite; Produit $10.00 par 1M de jetons générés; Lecture implicite du cache $0.30 par 1M de jetons d’entrée mis en cache. La grille tarifaire en direct de cette page correspond toujours à ce que l'API facture.
StepAudio 3 Realtime prend en charge une fenêtre de contexte de 256K tokens avec jusqu'à 131 072 tokens de sortie par réponse.
StepAudio 3 Realtime est servi via WEBSOCKET /v1/realtime sur api.empiriolabs.ai avec une authentification standard par token Bearer.
Ouvrez le playground EmpirioLabs et appuyez sur Start session pour l'essayer dans votre navigateur. StepAudio 3 Realtime fonctionne sur un WebSocket plutôt qu'en requête et réponse, donc pour l'intégrer commencez par le guide de démarrage voix en temps réel. Connectez-vous depuis votre serveur avec votre clé API EmpirioLabs et l'id de modèle stepaudio-3-realtime, puis diffusez l'audio dans les deux sens.
Créez un compte EmpirioLabs, puis générez une clé sous API Keys dans le tableau de bord. La facturation utilise des crédits à l'usage : vous ne payez que vos requêtes.
Consultez nos tarifs ou contactez-nous si vous souhaitez que votre propre modèle soit déployé sur notre stack.