Model APIs
Whisper-1
Envie um arquivo de áudio para transcrição ou tradução para o inglês, consulte a tarefa e baixe texto, JSON ou legendas.
O Whisper-1 converte fala gravada em texto. Use /v1/audio/transcriptions para manter o idioma falado ou /v1/audio/translations para produzir inglês. Ambos aceitam multipart/form-data com um arquivo enviado. O SeedRouter retorna primeiro um ID de tarefa; baixe o resultado escolhido depois que a tarefa terminar. Isso difere de uma resposta síncrona do SDK da OpenAI.
Playground e preços atuais · Primeiro tutorial de transcrição · OpenAPI · Markdown
Enviar uma gravação
Mantenha sua chave de API no servidor. Deixe o cliente HTTP gerar o delimitador multipart; não defina manualmente apenas o cabeçalho Content-Type: multipart/form-data.
curl https://api.seedrouter.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F language=en \
-F response_format=verbose_json \
-F 'timestamp_granularities[]=word' \
-F 'timestamp_granularities[]=segment'A resposta confirma uma tarefa, não uma transcrição pronta:
{
"id": "task_example",
"model": "whisper-1",
"status": "processing",
"created_at": 1792376116
}Guarde o id realmente retornado. Envie uma só vez. Uma conexão perdida não determina se a solicitação foi aceita; confira o histórico de tarefas antes de criar outra solicitação.
Ler o resultado
curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $SEEDROUTER_API_KEY"Consulte enquanto status for processing. Uma tarefa concluída contém output.url e output.format; uma tarefa que falhou contém error.code e error.message. Um timeout na consulta não é um estado final da tarefa. Somente o proprietário da tarefa pode lê-la. Os exemplos abaixo ilustram a estrutura da resposta:
{
"id": "task_example",
"model": "whisper-1",
"status": "completed",
"output": {
"format": "verbose_json",
"url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
}
}Baixe output.url com uma solicitação GET separada. Leia um resultado JSON como JSON e os demais formatos como texto. As respostas públicas das tarefas não incluem preços nem detalhes da conta.
Parâmetros de transcrição
file e model são obrigatórios. Os nove campos abaixo compõem a interface compartilhada de solicitação, incluindo file, model e stream, que é explicitamente ignorado. chunking_strategy continua sendo uma lacuna de compatibilidade, conforme descrito abaixo.
| Campo | Tipo | Padrão | Contrato |
|---|---|---|---|
file | Upload binário | Obrigatório | Um arquivo de áudio não vazio, não uma URL ou string com nome de arquivo. Consulte os limites de arquivos. |
model | String | Obrigatório | Exatamente whisper-1. |
language | String | Detecção automática | Indicação do idioma de entrada, como en. Não há lista local de idiomas permitidos. Omita para detectar. |
prompt | String | Omitido | Contexto, grafia ou continuação no idioma do áudio. Não se inventa limite de caracteres; o Whisper considera os últimos 224 tokens do próprio tokenizador. Não é um prompt de instruções gerais. |
response_format | String | json | json, text, srt, verbose_json ou vtt. |
temperature | Número | 0 | Intervalo inclusivo de 0–1. Zero permite o ajuste automático de temperatura do modelo; não promete texto determinístico. |
timestamp_granularities[] | String repetida | Marcações por segmento quando aplicável | word, segment ou ambos. Exige response_format=verbose_json. A grafia do campo repetido sem colchetes timestamp_granularities também é aceita. |
chunking_strategy | auto, objeto VAD ou null | Omitido | Campo do esquema compartilhado de áudio cuja aplicabilidade ao Whisper não foi resolvida. Deixe omitido para o fluxo verificado. auto explícito falhou na verificação real de compatibilidade. |
stream | Booleano ou null | false | Ignorado no Whisper-1. Não produz SSE nem transcrição parcial. |
O objeto VAD contém type: "server_vad" obrigatório, o inteiro opcional prefix_padding_ms (padrão documentado: 300), o inteiro opcional silence_duration_ms (padrão documentado: 200) e o número opcional threshold de 0 a 1 (padrão documentado: 0,5). Nenhum intervalo de inteiros não documentado é imposto. Uma estratégia omitida continua omitida; esses padrões do objeto não tornam auto o padrão da solicitação.
Para compatibilidade com SDKs, o objeto VAD pode ser codificado em uma parte multipart JSON ou como chunking_strategy[type], chunking_strategy[prefix_padding_ms], chunking_strategy[silence_duration_ms] e chunking_strategy[threshold]. Não misture as duas codificações. A aceitação dessas formas de campos não comprova que a VAD funcione com este modelo.
Campos de texto opcionais devem ser omitidos, não enviados como a string multipart literal null. Campos desconhecidos e não aplicáveis ao modelo são descartados. Em especial, diarized_json, controles de referência de falantes, logprobs e eventos em tempo real não são recursos do Whisper-1. Campos escalares duplicados são inválidos.
Limites de arquivos
Os formatos de áudio documentados são FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV e WebM. O limite atual de envio é de 26.214.400 bytes (25 MiB). O FAQ da API de Áudio da OpenAI especifica um tamanho máximo de solicitação de 25 MiB para uploads legados do Whisper-1; mantenha os arquivos abaixo do limite para deixar espaço para os campos multipart. Os arquivos devem conter áudio legível e duração positiva e mensurável. Uma extensão, por si só, não comprova áudio válido.
Não existe um limite local adicional de uma hora, exigência de taxa de amostragem fixa ou restrição a mono. O tamanho do arquivo ainda pode exigir a divisão de gravações longas. Revise os limites entre partes para evitar omitir ou duplicar fala.
Tradução para o inglês
curl https://api.seedrouter.ai/v1/audio/translations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F response_format=text \
-F temperature=0A tradução tem cinco campos: file, model, prompt, response_format e temperature, com os mesmos tipos e limites acima. O prompt opcional deve estar em inglês. Não há escolha de idioma de destino. language, controles de marcações de tempo, de divisão e outros campos exclusivos da transcrição são descartados neste endpoint. Uma verificação de tradução bem-sucedida com entrada em inglês não comprova precisão para todos os idiomas de origem.
Campos do resultado baixado
| Formato | Conteúdo |
|---|---|
json | Objeto com text. A transcrição também pode incluir usage: {type: "duration", seconds: number}. |
text | Texto simples da transcrição. |
srt | Blocos de legendas numerados com códigos de tempo SRT. |
vtt | Legendas WebVTT. |
verbose_json | text, language e duration em segundos; segments opcional e, na transcrição, words e usage de duração. |
Cada palavra tem word, start e end. Cada segmento tem id, seek, start, end, text, tokens, temperature, avg_logprob, compression_ratio e no_speech_prob. start e end estão em segundos. Segmentos não identificam falantes. A constante exclusiva de transcrição task: "transcribe" pode estar presente. Resultados de tradução omitem words e usage, exclusivos de transcrição. As medidas de áudio e o texto transcrito não são reescritos para imitar uma resposta esperada.
Cobrança
As duas operações usam a duração medida da entrada. Para cada gravação, as unidades de medição de áudio equivalem a round(ceil(seconds) × 1000 / 60). Multiplique essas unidades pela tarifa unitária atual; elas não contam o texto da transcrição. Por exemplo, 15 segundos geram 250 unidades, enquanto 15,1 segundos geram 267. A página e o Playground leem a mesma tarifa atual. Solicitações que falham não são cobradas.
Status de verificação
Verificado em 19 de outubro de 2026. Testes locais de ponta a ponta concluíram os cinco formatos de saída de transcrição e uma tradução verbose_json, incluindo downloads de resultados da própria conta e débitos exatos. Uma transcrição solicitou com sucesso marcações de tempo de palavras e segmentos. Uploads FLAC, OGG, M4A, MP4 e WAV com duração inferior a um segundo ou fracionária passaram por verificações reais de compatibilidade separadas.
chunking_strategy=auto explícito foi rejeitado. Três casos enviados envolvendo WebM, MPEG com VAD e MPGA com stream=true não tiveram sucesso. Essas falhas não determinam qual das configurações combinadas causou a rejeição. Esses formatos e opções permanecem não verificados; o serviço não substitui silenciosamente uma estratégia solicitada explicitamente. O teste de tradução usou entrada em inglês, portanto a qualidade de tradução entre idiomas permanece sem medição. Não trate o esquema aceito como prova de que todas as combinações passaram por um teste real.
Erros e recuperação
Combinações inválidas de arquivo e parâmetros são recusadas antes da criação da tarefa. Os erros de API contêm um code numérico e uma message legível; consulte os códigos de erro. Após a aceitação, consulte o status final da tarefa. Se o envio for incerto, encontre a tarefa existente antes de enviar novamente. Uma tarefa que falha não é cobrada.
Fontes do contrato
- Referência de transcrição da OpenAI
- Referência de tradução da OpenAI
- Guia de fala em texto da OpenAI
- Guia de prompts do Whisper da OpenAI
A OpenAI anunciou 26 de fevereiro de 2027 como data de desativação do Whisper em sua própria API. Esse anúncio não estabelece uma data de desativação para este serviço. Consulte o aviso de descontinuação da OpenAI.
