Pular para o conteúdo

API de transcrição

API de transcrição em português, compatível com a OpenAI.

Já usa o Whisper pela OpenAI? Troque o endereço e a chave. Quer mais? A nossa rota devolve quem falou, CPF e e-mail formatados e avisa por webhook quando termina.

Preço
R$ 1,80 por hora, cobrado por segundo
Endereço
https://api.trynous.com.br/v1
Para testar
30 minutos grátis no cadastro, sem cartão. A chave sai na hora.

Mande o áudio. Receba palavra, tempo e CPF.

Um pedido, uma resposta em JSON. O CPF foi dito por extenso e volta formatado e validado, com o que a pessoa falou do lado.

transcrever.py

import os
import requests

resposta = requests.post(
    "https://api.trynous.com.br/v1/transcriptions",
    params={"diarization": "true"},
    headers={"Authorization": f"Bearer {os.environ['NOUS_API_KEY']}"},
    files={"file": open("atendimento.m4a", "rb")},
)
transcricao = resposta.json()

print(transcricao["entities"]["cpfs"][0]["value"])
# 123.456.789-09
  • Até 30 minutos de áudio, a resposta vem na mesma chamada.
  • Mais longo? Passe webhook_url e receba o aviso assinado quando terminar.
  • A chave sai na hora, no app, e já usa o crédito grátis do cadastro.

Resposta

200 OK

{  "id": "tr_3Vn8qLw2Xc7RbK1mZp4TsD",  "status": "completed",  "model": "aether",  "duration_s": 48.2,  "text": "Meu CPF é 123.456.789-09 e o e-mail é ana.lima@exemplo.com.",  "words": [    { "text": "Meu", "start_s": 0.42, "end_s": 0.61, "speaker": "spk0" },    { "text": "CPF", "start_s": 0.61, "end_s": 1.02, "speaker": "spk0" },    …  ],  "entities": {    "cpfs": [{      "value": "123.456.789-09",      "said": "um dois três quatro cinco seis sete oito nove zero nove",      "valid": true,      "start_s": 1.1    }],    "emails": [{ "value": "ana.lima@exemplo.com", "start_s": 6.3 }]  },  "speakers": [{ "speaker": "spk0", "start_s": 0, "end_s": 48.2 }],  "billing": { "seconds": 49, "cost_brl": 0.0245 }}
Resposta ilustrativa, no formato real da API. Os campos marcados são o CPF que foi dito e o que a pessoa falou.

Já usa a OpenAI? Três mudanças e pronto.

A rota /v1/audio/transcriptions fala o mesmo formato. O SDK que você já tem continua servindo; só muda para onde ele aponta.

  • file Igual.
  • model “aether”. Qualquer valor é aceito.
  • language Vazio ou “pt”. Outro idioma responde 422.
  • prompt Vira vocabulário, termo por termo.
  • response_format json, text, srt, vtt e verbose_json.
  • timestamp_granularities[] word e segment.
O guia de migração completo
transcrever.py 3 mudanças

              
              
              from openai import OpenAI
            
              
              
               
            
              
              linha removida: 
              client = OpenAI()
            
              
              linha adicionada: 
              client = OpenAI(
            
              
              linha adicionada: 
                  base_url="https://api.trynous.com.br/v1",
            
              
              linha adicionada: 
                  api_key="sua-chave-nous",
            
              
              linha adicionada: 
              )
            
              
              
               
            
              
              
              texto = client.audio.transcriptions.create(
            
              
              linha removida: 
                  model="whisper-1",
            
              
              linha adicionada: 
                  model="aether",
            
              
              
                  file=open("audiencia.mp3", "rb"),
            
              
              
                  response_format="verbose_json",
            
              
              
              )
            

O que a rota da Nous faz a mais.

POST /v1/transcriptions: um parâmetro na URL para cada coisa. O que não custa a mais está escrito.

  • diarization=true

    Quem falou e o tom

    Separa até 4 pessoas e marca cada palavra com quem disse. Com sentiment=true, o tom de cada trecho. Cada um custa R$ 0,000 a mais por minuto.

    Ver o guia
  • entities

    Dados ditados

    E-mail, CPF, telefone, CEP e valores falados por extenso voltam formatados, com o que a pessoa disse e o segundo. Grátis.

    Ver o guia
  • redact=all

    Mascarar dados pessoais

    Troca CPF, e-mail, telefone, CEP e valor por máscara no texto, nas palavras e nas entidades. Não tem volta: o original não fica guardado.

    Ver o guia
  • keyterms

    Vocabulário

    Até 200 termos de até 60 caracteres: nomes, siglas, jargão do seu setor. O prompt da OpenAI vira vocabulário.

    Ver o guia
  • Nous-Signature

    Webhooks assinados

    transcription.completed e transcription.failed, com HMAC-SHA256 e carimbo de tempo no cabeçalho.

    Ver o guia
  • Idempotency-Key

    Idempotência

    Repetiu o pedido depois de uma queda de rede? Volta a mesma transcrição, sem cobrar duas vezes.

    Ver o guia
  • audio_url

    Áudio por link

    Mande um endereço https de até 1 GB. Links de compartilhamento do Google Drive e do Dropbox são convertidos sozinhos.

    Ver o guia
  • /v1/uploads

    Arquivos grandes

    Até 4 horas e 1 GB por arquivo, com upload separado para o que passa de 100 MB.

    Ver o guia
  • formato=literal

    Legendas e degravação

    SRT e VTT prontos. O formato literal devolve a fala como saiu, com [inaudível] e [sobreposição], como pede uma degravação.

    Ver o guia

Limites claros, erros legíveis.

Passou do limite, a resposta é 429 com Retry-After dizendo quanto esperar. Todo erro vem no mesmo formato, com um request_id para o suporte achar a chamada.

{ "error": {
    "code": "rate_limited",
    "message": "…",
    "request_id": "req_9f2k"
} }
Todos os códigos de erro
  • Grátis

    pedidos por minuto
    60
    transcrições ao mesmo tempo
    2
    chaves de API
    2
  • Com recarga ou assinatura

    pedidos por minuto
    600
    transcrições ao mesmo tempo
    10
    chaves de API
    10
  • Escritório

    pedidos por minuto
    1.200
    transcrições ao mesmo tempo
    30
    chaves de API
    50

Por arquivo: até 4 horas e 1 GB. Só português do Brasil: outro idioma responde 422.

Preço em reais, por segundo.

R$ 0,030 por minuto

Ou R$ 1,80 por hora. Um áudio de 49 segundos paga 49 segundos.

A mesma tabela do app. Pix ou cartão, nota fiscal em todo pagamento, e o crédito do cadastro para testar antes de pagar.

Contrato a partir de R$ 0,020 por minuto (R$ 1,20 por hora), para 500 horas por mês ou mais, sempre por proposta. Fale com a gente.

Quanto maior a recarga, menor a hora

  • Recarga de R$ 20 R$ 1,80/h
  • Recarga de R$ 50 R$ 1,71/h
  • Recarga de R$ 150 R$ 1,64/h
  • Recarga de R$ 600 R$ 1,50/h

Por minuto, se você pedir

  • Identificar quem falou incluído
  • Sentimento e métricas de conversa (com assinatura) +R$ 0,002/min
  • Dados ditados, legendas SRT/VTT e vocabulário incluídos
  • Cobrado por segundo sem mínimo
Ver a tabela inteira

O áudio do seu cliente continua dele.

Atendimento, consulta e audiência têm nome, CPF e segredo. Tratamos cada arquivo que passa pela API do jeito que a LGPD pede.

Segurança e LGPD
  • Não treinamos com o seu áudio

    A menos que você autorize. A opção vem desligada.

  • Você decide quanto tempo guardar

    Apague pela API na hora ou deixe a conta apagar sozinha depois de alguns dias.

  • LGPD e contrato em português

    Empresa brasileira, acordo de tratamento de dados para empresas e nota fiscal.

Perguntas de quem vai integrar.

A documentação tem a referência completa, com exemplos em Python, Node e cURL.

A API é compatível com a da OpenAI (Whisper)?

Sim. A rota POST /v1/audio/transcriptions aceita os mesmos campos da OpenAI. Troque o base_url e a api_key no SDK que você já usa e passe model="aether". Os formatos json, text, srt, vtt e verbose_json funcionam, com tempo por palavra e por segmento.

Quanto custa a API de transcrição?

R$ 0,030 por minuto (R$ 1,80 por hora), cobrado por segundo e sem mínimo. Recargas maiores dão bônus e levam a hora a R$ 1,33. Quem falou e sentimento custam R$ 0,000 a mais por minuto cada; dados ditados, legendas e vocabulário estão incluídos. Contrato a partir de R$ 0,020 por minuto (R$ 1,20 por hora), para 500 horas por mês ou mais, sempre por proposta.

Quais idiomas a API transcreve?

Só português do Brasil, e é por isso que ela acerta nome, número e sotaque daqui. Pedidos com outro idioma respondem 422.

Qual o tamanho máximo do arquivo?

Até 4 horas e 1 GB. Por multipart vão até 25 MB, com o arquivo direto no corpo até 100 MB, e acima disso você usa o upload separado ou manda um link com audio_url.

Como sei quando uma transcrição longa terminou?

Passe webhook_url e a Nous faz um POST no seu endereço com transcription.completed ou transcription.failed, assinado no cabeçalho Nous-Signature. Se preferir, consulte GET /v1/transcriptions/{id}.

Posso testar a API de graça?

Pode. A conta nova ganha 30 minutos de crédito, que vale na API e no app. A conta grátis faz até 60 pedidos por minuto e 2 transcrições ao mesmo tempo.

Emite nota fiscal? Aceita Pix?

Sim para os dois. Toda recarga e toda assinatura sai com nota fiscal, e você paga com Pix ou cartão, em reais.

Sua primeira transcrição cabe em três linhas.

Crie a conta, gere a chave e teste com 30 minutos grátis, sem cartão. Pague em reais, com Pix e nota fiscal.