InícioBlog → Como migrar da API Whisper da OpenAI para outro serviço

Como migrar da API Whisper da OpenAI para outro serviço

Publicado em 2026-08-18 · 5 min de leitura

Times saem da API pública do Whisper por motivos variados: custo em volume alto, exigências sobre o tratamento dos dados, indisponibilidade na região. A boa notícia é que, se a API é compatível no protocolo, a migração se resume a trocar duas linhas e cabe em uma noite.

O que muda exatamente no código

Duas coisas: o endereço e a chave. Todo o resto — nomes de campos, formatos de resposta, tratamento de erros — continua igual.

# antes
client = OpenAI(api_key="sk-…")

# depois
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="vs_live_…")

A chamada de reconhecimento não é tocada:

result = client.audio.transcriptions.create(model="whisper-1", file=f)

O parâmetro model permanece por compatibilidade: o serviço aceita o valor de sempre e usa o próprio modelo.

Compatibilidade nos detalhes

O quêIgual
Endpoint POST /v1/audio/transcriptionssim
Campo file, requisição multipartsim
Parâmetros language, prompt, temperature, response_formatsim
Formatos de resposta: json, text, verbose_json, srt, vttsim
Estrutura de erro {"error": {"message", "type", …}}sim

O último item importa mais do que parece: os SDKs oficiais convertem erros em exceções tipadas. Se o servidor responde num formato próprio, o código do cliente quebra em lugares inesperados — compatibilidade nos erros evita reescrever handlers.

Como comparar a qualidade antes de virar a chave

Não troque a produção às cegas. Uma ordem sensata:

  1. Monte uma amostra. De 20 a 50 gravações reais: limpas, ruidosas, curtas, em idiomas diferentes — como no dia a dia.
  2. Rode nos dois serviços com um único script, salvando os resultados lado a lado.
  3. Compare pelos seus critérios. O que importa não são porcentagens abstratas, e sim os seus casos: códigos de produto, nomes e valores saem certos?
  4. Vire por partes. Mande 10% do tráfego para o serviço novo e, depois de alguns dias, o restante.
for path in amostras:
    with open(path, "rb") as f:
        a = old_client.audio.transcriptions.create(model="whisper-1", file=f).text
    with open(path, "rb") as f:
        b = new_client.audio.transcriptions.create(model="whisper-1", file=f).text
    print(path, "\n  antes:", a, "\n  depois:", b)

O que conferir à parte

Quando a migração se justifica

Trocar de fornecedor faz sentido se pelo menos uma destas condições vale:

Se nada disso se aplica, não há motivo para mexer numa integração que funciona — a compatibilidade garante que a mudança continuará cabendo em uma noite quando você quiser.

Teste com as suas próprias gravações. O cadastro leva um minuto e os minutos gratuitos bastam para avaliar a qualidade.

Obter uma chave de API grátis

Perguntas frequentes

Vou precisar reescrever o código na migração?

Não, se você usa o SDK oficial da OpenAI: mudam apenas a URL base e a chave. As chamadas, os parâmetros e a leitura da resposta continuam iguais.

Os formatos srt e vtt funcionam?

Sim, todos os valores habituais de response_format são aceitos: json, text, verbose_json, srt e vtt.

E o tratamento de erros no SDK?

Os erros voltam no mesmo formato da OpenAI, então o SDK os transforma em exceções tipadas — os handlers que você já tem continuam funcionando.

Dá para usar os dois serviços ao mesmo tempo?

Dá. Crie dois clientes com base_url diferentes e mande parte do tráfego para o novo — é uma forma prática de comparar qualidade com dados reais.

Preciso mudar o valor de model?

Não. O valor de sempre é aceito por compatibilidade e o serviço usa o próprio modelo de reconhecimento.

Leitura relacionada