Guias de mídia
Áudio e tempo real
Escolha voz, transcrição, tradução ou WebSocket em tempo real para aplicações de áudio.
Workloads de áudio têm duas formas. Use os endpoints de áudio para requisições parecidas com arquivos, como texto para fala, transcrição e tradução de áudio. Use o endpoint WebSocket em tempo real quando a experiência precisar de áudio interativo de baixa latência ou eventos multimodais.
Escolher O Fluxo
| Fluxo | Endpoint | Use quando |
|---|---|---|
| Texto para fala | POST /v1/audio/speech | Você precisa de um arquivo de áudio a partir de texto. |
| Transcrição | POST /v1/audio/transcriptions | Você precisa de texto a partir de um arquivo de áudio. |
| Tradução de áudio | POST /v1/audio/translations | Você precisa de texto traduzido a partir de um arquivo de áudio. |
| Sessão em tempo real | GET /v1/realtime | Você precisa de áudio bidirecional em streaming ou eventos multimodais em tempo real. |
Descobrir Modelos
Consulte o catálogo de modelos antes de fixar um modelo. Use listas recomendadas para fala e transcrição, e confirme suporte realtime nos detalhes do modelo antes de abrir um socket.
curl "https://api.tokenlab.sh/v1/models?recommended_for=tts" \
-H "Authorization: Bearer sk-your-api-key"
curl "https://api.tokenlab.sh/v1/models?recommended_for=stt" \
-H "Authorization: Bearer sk-your-api-key"Requisições De Áudio Síncronas
A síntese retorna áudio na resposta HTTP. Transcrição e tradução podem retornar texto final ou uma tarefa aceita. Se a resposta contiver ID e status de tarefa, salve o ID e consulte poll_url até concluir ou falhar. Reserve tempo suficiente para arquivos grandes e mantenha o Request ID.
curl -X POST "https://api.tokenlab.sh/v1/audio/speech" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1-hd",
"voice": "nova",
"input": "Welcome to TokenLab."
}' \
--output speech.mp3Sessões Em Tempo Real
Abra um WebSocket com o modelo na query string e a API key no header Authorization. Use o formato de eventos documentado para o modelo realtime escolhido e feche o socket quando a sessão terminar.
Este guia cobre apenas o WebSocket subset. No momento, o TokenLab não fornece endpoints REST do OpenAI Realtime para client secret, translation client secret, Calls ou gerenciamento legacy beta session.
No exemplo de servidor, instale ws e defina TOKENLAB_REALTIME_MODEL com um modelo atual cujos detalhes declarem /v1/realtime. Forneça TOKENLAB_API_KEY no ambiente do servidor; o nome não comprova suporte realtime.
npm install wsimport WebSocket from 'ws';
const model = process.env.TOKENLAB_REALTIME_MODEL;
const apiKey = process.env.TOKENLAB_API_KEY;
if (!model || !apiKey) throw new Error('Set TOKENLAB_REALTIME_MODEL and TOKENLAB_API_KEY');
const url = new URL('wss://api.tokenlab.sh/v1/realtime');
url.searchParams.set('model', model);
const socket = new WebSocket(url, {
headers: { Authorization: `Bearer ${apiKey}` },
});
socket.on('message', (event) => console.log(event.toString()));
socket.on('error', (error) => console.error(error.message));
process.once('SIGINT', () => socket.close(1000, 'Client stopped'));Tratamento De Estado
- Salve arquivos de áudio gerados em vez de repetir a mesma requisição ao atualizar.
- Para transcrição e tradução, mostre estados de upload e processamento mesmo quando a chamada for síncrona.
- Para realtime, trate eventos de fechamento e reconecte apenas quando o usuário iniciar uma nova sessão.
- Não coloque API keys, URLs privadas ou segredos de conta no texto de áudio.
Referência Da API
| Tópico | Referência |
|---|---|
| Criar Voz | Criar Voz |
| Criar Transcrição | Criar Transcrição |
| Criar Tradução | Criar Tradução |
| WebSocket Em Tempo Real | WebSocket Em Tempo Real |
| Listar Modelos | Listar Modelos |
| Faturamento e preços | Faturamento e preços |