Claude Opus 5.5 já está disponível no SeedRouter

Model APIs

Whisper-1

View Markdown

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.

CampoTipoPadrãoContrato
fileUpload binárioObrigatórioUm arquivo de áudio não vazio, não uma URL ou string com nome de arquivo. Consulte os limites de arquivos.
modelStringObrigatórioExatamente whisper-1.
languageStringDetecção automáticaIndicação do idioma de entrada, como en. Não há lista local de idiomas permitidos. Omita para detectar.
promptStringOmitidoContexto, 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_formatStringjsonjson, text, srt, verbose_json ou vtt.
temperatureNúmero0Intervalo inclusivo de 0–1. Zero permite o ajuste automático de temperatura do modelo; não promete texto determinístico.
timestamp_granularities[]String repetidaMarcações por segmento quando aplicávelword, segment ou ambos. Exige response_format=verbose_json. A grafia do campo repetido sem colchetes timestamp_granularities também é aceita.
chunking_strategyauto, objeto VAD ou nullOmitidoCampo 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.
streamBooleano ou nullfalseIgnorado 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=0

A 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

FormatoConteúdo
jsonObjeto com text. A transcrição também pode incluir usage: {type: "duration", seconds: number}.
textTexto simples da transcrição.
srtBlocos de legendas numerados com códigos de tempo SRT.
vttLegendas WebVTT.
verbose_jsontext, 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

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.