Jangada AIJangada AI

Transcrição de áudio (speech-to-text)

LLM.transcribe() converte áudio em texto. Não é suportado por todos os providers — depende de a API do provider aceitar áudio:

ProviderSuporta?ComoModelos típicos
OpenAI✅endpoint dedicadogpt-4o-transcribe, gpt-4o-mini-transcribe, whisper-1
Groq✅endpoint dedicadowhisper-large-v3, whisper-large-v3-turbo
Gemini✅multimodal (generateContent)gemini-2.5-flash, gemini-2.5-pro
Anthropic❌—a API do Claude não aceita áudio

Tentar transcrever no Anthropic levanta UnsupportedError. O "voice" do Claude é recurso de produto (app/Claude Code), não da API do modelo.

Uso

from jangada_ai import LLM, Audio

# OpenAI
llm = LLM("openai", "gpt-4o-transcribe")
print(llm.transcribe("entrevista.mp3").text)

# Groq (mais rápido/barato)
llm = LLM("groq", "whisper-large-v3-turbo")
print(llm.transcribe("entrevista.mp3").text)

# Gemini (multimodal)
llm = LLM("gemini", "gemini-2.5-flash")
print(llm.transcribe("entrevista.mp3").text)

Entradas aceitas: caminho, AudioPart ou bytes via Audio.from_bytes:

audio = Audio.from_bytes(blob, "audio/wav", name="fala.wav")
llm.transcribe(audio)

Async: await llm.atranscribe(audio).

Opções por provider

Os kwargs extras vão direto ao provider quando ele os aceita:

# OpenAI/Groq aceitam language, prompt, response_format, temperature, ...
llm.transcribe("audio.mp3", language="pt", response_format="text")

# Gemini aceita prompt= como instrução (ex.: incluir timestamps)
llm.transcribe("audio.mp3", prompt="Transcreva com marcações de tempo.")

Fallback entre providers de áudio

Como qualquer chamada da jangada, transcribe() honra retry e fallback:

from jangada_ai import LLM

primario = LLM("groq", "whisper-large-v3-turbo")
reserva  = LLM("openai", "gpt-4o-transcribe")
stt = primario.with_fallback(reserva)

stt.transcribe("audio.mp3")   # tenta Groq; se falhar (5xx/timeout), vai pro OpenAI

UnsupportedError não entra no failover padrão — é erro de configuração (provider sem áudio), não falha transitória. Veja Erros e Retry e fallback.

Formatos e limites

  • OpenAI/Groq: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm — até ~25 MB.
  • Gemini: áudio inline até ~20 MB no total do request (use a Files API do SDK para arquivos maiores).

Exemplo

examples/transcribe_example.py — script executável.

On this page