gpt-live-1 para processar a voz, e questões complexas continuam sendo processadas pelo modelo de chat atualmente selecionado.
Conexão
Use o API Token da plataforma para conectar awss://realtime.acedata.cloud/v1/live/sessions. As credenciais do Studio ou do serviço de chat usam wss://realtime.acedata.cloud/aichat2/live. O servidor autentica por meio de Authorization: Bearer <token>; o navegador transmite as credenciais por meio do subprotocolo WebSocket, evitando escrevê-las na URL:
session.started, envie continuamente session.input_audio.append, em que audio é o Base64 de áudio bruto PCM little-endian de 16 bits, mono, a 24 kHz, sem incluir o cabeçalho do arquivo WAV. Envie o áudio na velocidade de amostragem real, e os segmentos silenciosos também devem permanecer contínuos.
Reproduza em ordem session.output_audio.delta.delta. As legendas do usuário e do assistente vêm respectivamente de session.input_transcript.delta e session.output_transcript.delta; preserve o delta, start_ms e end_ms de cada segmento; as legendas de ambas as partes podem crescer simultaneamente. O Live não tem um evento de término para cada resposta de voz, devendo-se atualizar o estado de “respondendo” com base na fila de reprodução local.
Tarefas em segundo plano
Atualmente, o modo de delegaçãoclient é compatível. Após receber session.delegation.created, o aplicativo chama seu próprio back-end com base nas legendas de voz e no contexto salvo, e retorna o resultado por meio de session.thinking.append ou session.commentary.append, incluindo o delegation_id correspondente e content em texto simples de no máximo 500 tokens. Os resultados devem vir de operações de back-end concluídas; a interrupção da voz não significa que a tarefa em segundo plano foi cancelada.
A delegação Responses hospedada, o armazenamento de gravações, session.update, a recuperação de sessão ou a reconexão automática ainda não são compatíveis. O modelo é fixo em gpt-live-1, o áudio é fixo em PCM16 a 24 kHz, e a voz é selecionada ao iniciar a chamada. A antiga API Realtime ainda pode ser usada.
Cobrança e encerramento da chamada
A voz é cobrada pela duração da sessão ativa: 0,01 Credits/segundo, ou seja, 0,6 Credits/minuto, sem arredondamento para cima por minutos completos. O tempo em que o usuário fala, o assistente fala, há silêncio, ambas as partes permanecem em silêncio e se aguarda por tarefas em segundo plano é cobrado. As chamadas de modelos ou ferramentas em segundo plano são cobradas separadamente conforme a API correspondente. O preço em dólares correspondente aos Credits depende do pacote de recarga, prevalecendo o preço atual no console.session.usage.updated.usage.seconds é o uso acumulado. Por exemplo, se primeiro forem recebidos 12 segundos e depois 15 segundos, o total será 15 segundos. A plataforma liquida apenas a duração adicional, sem acumular repetidamente os snapshots.
Ao encerrar, envie session.close, continue recebendo até receber session.closed, depois feche a conexão e libere o microfone. Uma desconexão forçada pode fazer com que o uso final não seja confirmado, devendo a interface informá-lo claramente. A conexão será encerrada quando o saldo for insuficiente, a cobrança falhar ou o limite da sessão for atingido. Por padrão, uma única chamada dura no máximo 30 minutos.
Erros de parâmetros são retornados por meio do evento error; error.client_event_id corresponde ao comando que falhou. Uma falha na inicialização deve interromper a gravação e exibir o erro, sem alternar automaticamente o modelo ou tentar novamente gerando novos custos.
