
Fala entra, fala sai, por um soquete. Interrompível no meio da resposta, com detecção de atividade vocal decidindo quando responder.
Fala entra, fala sai, por um soquete. Interrompível no meio da resposta, com detecção de atividade vocal decidindo quando responder.
A sessão é configurada com eventos session.update pelo socket, em vez de parâmetros de requisição.
Também conhecido como StepFun StepAudio 3 Realtime
stepaudio-3-realtime/v1/realtimestepaudio-3-realtime-previewstepfun/stepaudio-3-realtimeTarifas pay-as-you-go ao vivo do catálogo EmpirioLabs. Você paga só pelo que usa, sem mínimo mensal.
StepAudio 3 Realtime mantém uma conversa ao vivo por um WebSocket em wss://api.empiriolabs.ai/v1/realtime?model=stepaudio-3-realtime, e não pelos endpoints HTTP. Conecte-se com o id de modelo stepaudio-3-realtime e envie sua chave de API da EmpirioLabs como cabeçalho Authorization: Bearer no handshake. O áudio trafega nos dois sentidos como PCM de 16 bits em base64. Um navegador não consegue definir cabeçalhos em um WebSocket, então abra esta conexão a partir do seu servidor e repasse o áudio ao navegador pelo seu próprio socket. Obtenha uma chave de API no painel 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())Parâmetros de requisição suportados pela API StepAudio 3 Realtime na EmpirioLabs. Os padrões valem quando um campo é omitido.
| Parâmetro | Tipo | Padrão | Intervalo / valores | Descrição |
|---|---|---|---|---|
| voice | enum | soft-spoken-gentleman | soft-spoken-gentleman, magnetic-voiced-male, vibrant-youth, l... | Voz de sessão, definida com session.update antes que o modelo produza áudio. Não pode ser alterada depois que o modelo falou, e qualquer outro valor é rejeitado. |
| instructions | string | - | - | Instruções do sistema para a sessão: persona, estilo de fala e limites. |
| modalities | string | ["text","audio"] | - | Modalidades de resposta para a sessão. |
| volume_ratio | number | 1 | 0.1 a 2 | Volume da resposta falada, em relação ao padrão. O intervalo aceito é de 0,1 a 2,0. |
| input_audio_format | enum | pcm16 | pcm16 | Codificação do áudio que você envia. PCM de 16 bits. |
| output_audio_format | enum | pcm16 | pcm16 | Codificação do áudio que o modelo retorna. PCM de 16 bits. |
| turn_detection | string | {"type":"server_vad"} | - | Detecção de atividade de voz do lado do servidor. Decide quando você parou de falar e o modelo deve responder. Sem ele, o modelo escuta, mas nunca responde, então... |
Voz full-duplex por WebSocket em wss://api.empiriolabs.ai/v1/realtime?model=stepaudio-3-realtime, autenticada com o cabeçalho comum Authorization Bearer. O áudio é pcm16 in e out. O modelo escuta enquanto fala, então pode ser interrompido no meio da resposta, e a detecção de atividade vocal do lado do servidor decide quando responder. Defina voz com session.update antes do primeiro áudio; não pode ser alterado após o modelo falar, e apenas as sete vozes listadas são aceitas. A conversa é apenas em chinês e inglês. Cada turno concluído é faturado separadamente pelo uso reportado pelo modelo. Este modelo está em prévia e suas capacidades podem mudar.
Na EmpirioLabs, StepAudio 3 Realtime é cobrado por uso: Entrada $1.50 por 1M de tokens de prompt; Saída $10.00 por 1M de tokens gerados; Leitura implícita do cache $0.30 por 1M de tokens de entrada cacheados. A tabela de tarifas ao vivo desta página sempre corresponde ao que a API cobra.
StepAudio 3 Realtime suporta uma janela de contexto de 256K tokens com até 131.072 tokens de saída por resposta.
StepAudio 3 Realtime é servido por WEBSOCKET /v1/realtime em api.empiriolabs.ai com autenticação padrão por token Bearer.
Abra o playground da EmpirioLabs e clique em Start session para testar no navegador. StepAudio 3 Realtime funciona sobre um WebSocket em vez de requisição e resposta, então para integrar comece pelo guia rápido de voz em tempo real. Conecte-se do seu servidor com sua chave de API da EmpirioLabs e o id de modelo stepaudio-3-realtime e transmita áudio nos dois sentidos.
Crie uma conta EmpirioLabs e gere uma chave em API Keys no painel. A cobrança usa créditos pay-as-you-go, então você paga apenas pelas requisições que faz.
Confira nossos preços ou entre em contato se quiser que seu próprio modelo seja implementado em nossa pilha.