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/transcriptionsParâmetros
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
file | file | Sim | — | Arquivo de áudio para transcrever |
model | string | Sim | — | Modelo de transcrição (ex: urso-whisper) |
language | string | Não | auto | Código do idioma ISO-639-1 (ex: pt) |
response_format | string | Não | json | Formato da resposta (json, text, srt, verbose_json, vtt) |
temperature | number | Não | 0.0 | Controla aleatoriedade (0.0 a 1.0) |
prompt | string | Não | null | Texto de contexto para guiar a transcrição |
timestamp_granularities | array | Não | ["segment"] | Granularidade dos timestamps (word, segment) |
Formatos de Áudio Suportados
| Formato | Extensão | Suporte |
|---|---|---|
| MP3 | .mp3 | Sim |
| WAV | .wav | Sim |
| M4A | .m4a | Sim |
| FLAC | .flac | Sim |
| OGG | .ogg | Sim |
| WebM | .webm | Sim |
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
promptcom 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
- Text to Speech — converta texto em áudio
- Chat Completions — processe a transcrição com IA
- Structured Output — extraia dados estruturados da transcrição