Servidor da API Whisper: Opções de Configuração e a Etapa de Texto
Um servidor da API Whisper é um serviço HTTP que aceita áudio e retorna uma transcrição. Ele lida apenas com fala, então qualquer processamento posterior das palavras precisa de um modelo de texto separado.
Atualizado

Pontos principais
- Whisper é um modelo de fala para texto; um servidor o envolve atrás de um endpoint HTTP.
- Você pode alugar um endpoint hospedado, hospedar um wrapper localmente ou executar um binário local.
- Esta API é apenas para texto: ela executa a etapa posterior à transcrição, não a etapa de áudio.
- As duas etapas se conectam com algumas linhas de Python usando o SDK da OpenAI duas vezes.
A resposta curta
Whisper é um modelo de reconhecimento de fala de código aberto publicado pela OpenAI. Por si só, é um arquivo de modelo e algum código de inferência. Um servidor coloca uma interface HTTP à frente dele, para que seu aplicativo possa enviar um arquivo de áudio e receber texto de volta, em vez de chamar funções Python diretamente.
A maioria dos servidores replica o formato do endpoint de transcrição da OpenAI, POST /v1/audio/transcriptions, que aceita um upload multipart com o arquivo de áudio e um nome de modelo. Esse formato é por isso que a mesma biblioteca cliente pode se comunicar com um serviço hospedado, um container na sua máquina ou um wrapper pequeno escrito por outra pessoa.
- Entrada: um arquivo de áudio, geralmente mp3, wav, m4a ou similar.
- Output: texto simples, ou JSON com segmentos e marcadores de tempo, dependendo do servidor.
- Não incluídos: resumos, tradução para prosa polida, extração de itens de ação. Isso precisa de um modelo de linguagem.
Três maneiras de obter um servidor Whisper
1. Um endpoint hospedado
A OpenAI oferece um endpoint de transcrição hospedado, e outros provedores também vendem transcrição baseada em Whisper. Você paga por uso, não gerencia hardware e envia seu áudio para a infraestrutura de outra pessoa. Os modelos de cobrança variam entre provedores, e serviços de fala comumente cobram pela duração do áudio, então verifique a precificação atual antes de se comprometer com um volume.
2. Um wrapper auto-hospedado
Vários projetos de código aberto envolvem o Whisper ou reimplementações dele em um servidor web que imita a rota de transcrição da OpenAI. Você o executa em Docker em uma máquina com GPU, ou na CPU se aceitar processamento mais lento. Isso lhe dá controle sobre para onde o áudio vai. Também torna você responsável pelos downloads do modelo, atualizações, enfileiramento e reinícios.
3. Um binário local
O projeto whisper.cpp é uma porta em C e C++ do modelo, e seu repositório inclui um servidor HTTP de exemplo. Ele roda em laptops comuns e pequenos servidores, o que o torna uma boa escolha para um protótipo ou para um único usuário que transcreve algumas gravações por dia. Para lotes de centenas de horas, um serviço com GPU é geralmente mais prático.
Escolha com base em três perguntas: para onde o áudio pode viajar, quantas horas você processa por mês e quem manterá o serviço em execução. A etapa de texto descrita abaixo funciona da mesma forma com qualquer uma das três.
Onde uma API de LLM de texto se encaixa após a transcrição
Uma transcrição bruta do Whisper é um bloco de texto. Tem poucas quebras de parágrafo, os nomes dos falantes estão ausentes a menos que você adicione a diarização separadamente, e as muletinhas permanecem. O Whisper também comete erros com nomes de produtos, jargões e nomes próprios. Quase todo projeto real adiciona uma segunda etapa que atua sobre o texto.
Tarefas típicas de segunda etapa:
- Corrigir pontuação, dividir em parágrafos, remover inícios falsos.
- Resumir uma chamada ou palestra em alguns tópicos.
- Extrair dados estruturados como decisões, nomes e datas em JSON.
- Reescrever material falado em um artigo, um roteiro ou notas de apresentação.
- Traduzir ou localizar o texto limpo.
É aqui que este serviço se encaixa. É uma API de texto compatível com OpenAI com um único modelo, uncensored, janela de contexto de 100.000 tokens e streaming. Uma transcrição de entrevista de duas horas geralmente cabe em uma única requisição, então você pode pular a lógica de fragmentação que janelas de contexto menores impõem a você. Para materiais mais longos, consulte a documentação quickstart para detalhes da requisição.
O modelo é ajustado para responder sem recusas de conteúdo para uso adulto legal. Isso é importante para pipelines de transcrição porque o áudio de origem é imprevisível: entrevistas, podcasts, leituras de ficção e chamadas de suporte contêm linguagem forte e assuntos difíceis. Um modelo que se recusa a limpar uma transcrição porque o locutor usou palavrões desperdiça uma execução de transcrição paga. A única restrição rígida é que nada envolvendo conteúdo sexual com menores de idade é aceito.
Um pipeline de duas etapas funcional
O SDK Python da OpenAI permite criar dois clientes com URLs base diferentes. Um aponta para seu servidor Whisper, o outro para esta API. Defina as variáveis de ambiente para o seu serviço de transcrição; o segundo cliente usa a URL base deste site.
import os
from openai import OpenAI
# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])
# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])
with open("call.mp3", "rb") as f:
transcript = stt.audio.transcriptions.create(
model=os.environ["STT_MODEL"], # the model name your server expects
file=f,
)
resp = llm.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
{"role": "user", "content": transcript.text},
],
temperature=0.2,
)
print(resp.choices[0].message.content)Dois detalhes são fáceis de errar. Primeiro, o nome do modelo de transcrição é o que seu servidor espera, é por isso que ele vem de uma variável de ambiente aqui. Segundo, a chave para a API de texto é separada de qualquer chave que você tenha para o serviço de fala; cada uma autentica apenas seu próprio host.
Se você prefere um shell, a etapa de texto é uma solicitação simples de conclusão de chat:
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
]
}'A autenticação usa uma chave Bearer no cabeçalho Authorization, e os endpoints são POST /v1/chat/completions e GET /v1/models. Você obtém a chave na página da chave de API; contas novas podem resgatar crédito de teste de $0,50 com um clique, válido por 7 dias e sem cartão.
Coisas que quebram na prática
Arquivos de áudio grandes
Muitos servidores do Whisper limitam o tamanho do upload, e gravações longas podem expirar no meio de uma requisição. Divida o áudio em pedaços de dez a trinta minutos com uma ferramenta como ffmpeg, transcreva cada pedaço e depois junte o texto. Como a API de texto aceita até 100.000 tokens, você pode concatenar os pedaços e enviá-los como um único prompt. O limite do corpo da requisição nesta API é de 8 MB, o que é muito mais do que qualquer transcrição precisa.
Limites de taxa e concorrência
Uma chave completa permite 8 requisições simultâneas e 300 requisições por minuto; a chave de teste permite 2 e 60. Se você executar uma fila com muitos workers, limite-a à concorrência da sua chave. Ultrapassar retorna HTTP 429, com o código rate_limited para requisições por minuto ou concurrency para muitos ao mesmo tempo. Uma solicitação em streaming mantém seu slot até o stream terminar, então um cliente travado pode bloquear um slot por mais tempo do que você espera. Recue e tente novamente; se a resposta contiver o cabeçalho Retry-After: 5, aguarde esse tempo.
Erros de transcrição que o LLM não pode ver
Se o Whisper ouviu a palavra errada, o modelo de texto só vê a palavra errada. Ele pode até suavizar o erro e fazê-lo parecer intencional. Coloque um glossário de nomes e termos no prompt do sistema e instrua o modelo a marcar trechos incertos em vez de adivinhar. Para materiais críticos, mantenha a transcrição original ao lado da versão limpa.
Preenchimento alucinado
O Whisper às vezes produz texto inventado durante silêncio ou música. Remova o silêncio antes de enviar e peça à segunda etapa para marcar frases que pareçam fora de lugar. Um temperature baixo, como 0,2, mantém a limpeza próxima à fonte.
O que esta API não faz
Ele não transcreve áudio. Não há entrada de áudio, nem saída de fala, nem geração de imagem ou vídeo, nem embeddings e nem completions de chat. É um modelo de texto hospedado atrás de um endpoint de chat completions, operado por um provedor independente, e não é a API oficial da OpenAI ou de qualquer outro fornecedor de modelos. Se o seu projeto precisa de ambas as partes, você precisa de um servidor de fala para a primeira e deste serviço para a segunda.
Prompts não são usados para treinamento. Isso é separado do que seu provedor de fala faz com o áudio, então leia os termos desse provedor separadamente.
Para planejamento de custos, o lado de texto é cobrado por token a $0,15 por milhão de tokens de entrada e $0,50 por milhão de tokens de saída, a partir de crédito pré-pago que nunca expira. A página de preços lista tamanhos de recarga e bônus. Requisições falhas ou recusadas não são cobradas, o que evita que loops de retry custem dinheiro.
Uma maneira sensata de começar
- Obtenha um servidor compatível com Whisper em execução, hospedado ou local, e confirme que ele retorna texto para um arquivo de um minuto.
- Crie uma conta, reivindique o crédito de teste e execute o comando curl acima com uma transcrição curta.
- Conecte os dois clientes juntos com o script Python, usando seu próprio prompt do sistema para o estilo de limpeza desejado.
- Adicione uma fila apenas depois que o fluxo de arquivo único funcionar, e dimensione-a para a concorrência da sua chave.
A maior parte do esforço vai para o prompt e o manuseio de áudio, não para o código de cola. Comece com uma gravação que você conhece bem, compare a saída com o que você ouviu e ajuste as instruções antes de escalar.
Mais guias
Perguntas e respostas
Um servidor de API Whisper é o mesmo que a API OpenAI?
Não. Whisper é um modelo, e um servidor é qualquer programa que o expõe via HTTP. A OpenAI oferece uma versão hospedada, e muitas pessoas executam a sua própria com ferramentas de código aberto que replicam a mesma rota de transcrição.
Esta API pode transcrever arquivos de áudio?
Não. Ela aceita apenas texto. Use um serviço de fala ou o seu próprio servidor Whisper para a etapa de áudio e envie a transcrição aqui.
Qual nome de modelo devo usar para a etapa de texto?
Use uncensored como o ID do modelo, com a URL base https://api.whisperapis.com/v1 e sua chave como token Bearer.
Qual o tamanho máximo de uma transcrição que posso enviar?
A janela de contexto é de 100.000 tokens, abrangendo prompt e conclusão juntos. Isso é suficiente para muitas gravações de várias horas em uma única requisição.
Preciso de um cartão para testar?
Não. Usuários novos podem resgatar um crédito de teste de $0,50 com um clique na página da chave de API após o login, sem precisar de cartão.
Sua chave está a um formulário de distância
Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.