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 transcrever.mjs
import { readFile } from "node:fs/promises";
const form = new FormData();
form.set("file", new Blob([await readFile("atendimento.m4a")]), "atendimento.m4a");
const resposta = await fetch("https://api.trynous.com.br/v1/transcriptions?diarization=true", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.NOUS_API_KEY}` },
body: form,
});
const transcricao = await resposta.json();
console.log(transcricao.entities.cpfs[0].value);
// 123.456.789-09 terminal
curl "https://api.trynous.com.br/v1/transcriptions?diarization=true" \
-H "Authorization: Bearer $NOUS_API_KEY" \
-F "file=@atendimento.m4a" - Até 30 minutos de áudio, a resposta vem na mesma chamada.
- Mais longo? Passe
webhook_urle 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 }} 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.
-
fileIgual. -
model“aether”. Qualquer valor é aceito. -
languageVazio ou “pt”. Outro idioma responde 422. -
promptVira vocabulário, termo por termo. -
response_formatjson, text, srt, vtt e verbose_json. -
timestamp_granularities[]word e segment.
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=trueQuem 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 -
entitiesDados 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=allMascarar 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 -
keytermsVocabulá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-SignatureWebhooks assinados
transcription.completed e transcription.failed, com HMAC-SHA256 e carimbo de tempo no cabeçalho.
Ver o guia -
Idempotency-KeyIdempotê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/uploadsArquivos grandes
Até 4 horas e 1 GB por arquivo, com upload separado para o que passa de 100 MB.
Ver o guia -
formato=literalLegendas 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$ 0,030/min R$ 1,80/h
- Recarga de R$ 50 R$ 0,029/min R$ 1,71/h
- Recarga de R$ 150 R$ 0,027/min R$ 1,64/h
- Recarga de R$ 600 R$ 0,025/min 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
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.