PolarPOLAR

Transcrição de Áudio

Transcreva áudio para texto com o endpoint de transcrição da Polar, compatível com Whisper.

Visão Geral

O endpoint POST /v1/audio/transcriptions converte áudio em texto. A API é compatível com o formato Whisper da OpenAI e otimizada para português brasileiro, incluindo sotaques regionais, gírias e termos técnicos.

Endpoint

POST https://api.polarai.com.br/v1/audio/transcriptions

Parâmetros

ParâmetroTipoObrigatórioPadrãoDescrição
filefileSimArquivo de áudio para transcrever
modelstringSimModelo de transcrição (ex: urso-whisper)
languagestringNãoautoCódigo do idioma ISO-639-1 (ex: pt)
response_formatstringNãojsonFormato da resposta (json, text, srt, verbose_json, vtt)
temperaturenumberNão0.0Controla aleatoriedade (0.0 a 1.0)
promptstringNãonullTexto de contexto para guiar a transcrição
timestamp_granularitiesarrayNão["segment"]Granularidade dos timestamps (word, segment)

Formatos de Áudio Suportados

FormatoExtensãoSuporte
MP3.mp3Sim
WAV.wavSim
M4A.m4aSim
FLAC.flacSim
OGG.oggSim
WebM.webmSim

Tamanho máximo do arquivo: 25 MB.

Exemplos

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://api.polarai.com.br/v1",
    api_key="pk-your-key-here"
)

# Transcrição básica
with open("reuniao.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="urso-whisper",
        file=audio_file,
        language="pt"
    )

print(transcript.text)
# Com timestamps detalhados
with open("audiencia.wav", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="urso-whisper",
        file=audio_file,
        language="pt",
        response_format="verbose_json",
        timestamp_granularities=["word", "segment"]
    )

for segment in transcript.segments:
    print(f"[{segment.start:.1f}s - {segment.end:.1f}s] {segment.text}")
# Com prompt de contexto para melhorar precisão
with open("palestra_juridica.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="urso-whisper",
        file=audio_file,
        language="pt",
        prompt="Palestra sobre direito constitucional, STF, LGPD, marco civil da internet"
    )

print(transcript.text)

TypeScript

import OpenAI from "openai";
import * as fs from "fs";

const client = new OpenAI({
  baseURL: "https://api.polarai.com.br/v1",
  apiKey: "pk-your-key-here",
});

const audioFile = fs.createReadStream("reuniao.mp3");

const transcript = await client.audio.transcriptions.create({
  model: "urso-whisper",
  file: audioFile,
  language: "pt",
});

console.log(transcript.text);

curl

curl -X POST https://api.polarai.com.br/v1/audio/transcriptions \
  -H "Authorization: Bearer pk-your-key-here" \
  -F file=@reuniao.mp3 \
  -F model="urso-whisper" \
  -F language="pt"
# Com formato SRT para legendas
curl -X POST https://api.polarai.com.br/v1/audio/transcriptions \
  -H "Authorization: Bearer pk-your-key-here" \
  -F file=@video.mp3 \
  -F model="urso-whisper" \
  -F language="pt" \
  -F response_format="srt"

Formato da Resposta

JSON (padrão)

{
  "text": "Bom dia a todos. Vamos iniciar a reunião de hoje discutindo os resultados do trimestre."
}

Verbose JSON

{
  "task": "transcribe",
  "language": "pt",
  "duration": 185.5,
  "text": "Bom dia a todos...",
  "segments": [
    {
      "id": 0,
      "start": 0.0,
      "end": 3.2,
      "text": "Bom dia a todos.",
      "tokens": [1234, 5678],
      "temperature": 0.0,
      "avg_logprob": -0.15,
      "no_speech_prob": 0.01
    }
  ]
}

Otimização para Português

Para melhores resultados com áudio em português brasileiro:

  • Defina language="pt" explicitamente para evitar detecção automática
  • Use o parâmetro prompt com termos técnicos, nomes próprios ou siglas que aparecem no áudio
  • Para áudios longos, considere dividir em segmentos menores para melhor precisão
  • O modelo reconhece sotaques regionais brasileiros (paulista, carioca, nordestino, gaúcho, mineiro)

Próximos Passos

On this page