Transcrever entrevistas, reuniões e debates com múltiplos participantes sempre foi uma das tarefas mais demoradas e exaustivas para criadores de conteúdo, jornalistas e pesquisadores. O Whisper da OpenAI revolucionou a precisão do reconhecimento de fala, mas possui uma grande limitação nativa: ele não identifica quem está falando.
É aqui que entra o WhisperX. Esta versão aprimorada adiciona alinhamento temporal preciso ao nível de fonema e diarização de locutores (separação automática de vozes), permitindo que você identifique cada interlocutor com precisão cirúrgica. Neste tutorial prático, você aprenderá a rodar o WhisperX gratuitamente usando a GPU do Google Colab, sem precisar instalar nada pesado no seu computador.
Neste Artigo:
Por que o WhisperX é Superior ao Whisper Padrão?
O Whisper original transcreve áudios longos em grandes blocos de texto. Quando duas ou mais pessoas conversam, as falas se misturam, tornando a leitura confusa. O WhisperX resolve esse problema integrando o modelo PyAnnote.audio para realizar a diarização.
Principais diferenciais do WhisperX:
- Diarização de Locutores: Atribui automaticamente rótulos como [SPEAKER_00], [SPEAKER_01] a cada trecho de fala.
- Alinhamento Temporal Preciso: Reduz drasticamente alucinações e timestamps imprecisos comuns em cortes rápidos.
- Velocidade Superior: Processa lotes de áudio (batched inference) até 70x mais rápido que o tempo real em GPUs dedicadas.
Comparativo: WhisperX vs. Alternativas de Mercado
| Ferramenta | Custo | Separação de Vozes | Privacidade dos Dados |
|---|---|---|---|
| WhisperX (Colab) | 100% Gratuito | Excelente (PyAnnote) | Alta (instância isolada) |
| Whisper Tradicional | Gratuito / Pago (API) | Não possui nativamente | Alta |
| Descript / Otter.ai | Planos Pagos (Mensal) | Muito Boa | Média (Nuvem de terceiros) |
Passo a Passo: WhisperX no Google Colab Gratuito
Passo 1: Preparar o Ambiente com GPU
Acesse o Google Colab e crie um novo notebook. Vá em Ambiente de Execução > Alterar tipo de ambiente de execução e selecione T4 GPU.
Passo 2: Obter o Token do Hugging Face
A diarização depende dos modelos do PyAnnote, que exigem aceitar os termos de uso:
- Crie uma conta gratuita no Hugging Face.
- Acesse as páginas dos modelos
pyannote/speaker-diarization-3.1epyannote/segmentation-3.0e clique em Accept Conditions. - Gere um token de acesso em Settings > Access Tokens com permissão de leitura (read).
Passo 3: Instalar as Dependências
Cole o código abaixo na primeira célula do Colab e execute:
!pip install git+https://github.com/m-bain/whisperx.git --upgrade
!pip install pyannote.audioPasso 4: Executar a Transcrição com Separação de Locutores
Faça o upload do seu arquivo de áudio (ex: debate.mp3) no menu lateral esquerdo do Colab e execute o script:
import whisperx
import gc
device = "cuda"
audio_file = "debate.mp3"
batch_size = 16 # Ajuste conforme a memória da GPU
compute_type = "float16"
hf_token = "SEU_TOKEN_HUGGINGFACE_AQUI"
# 1. Transcrever com modelo Whisper
model = whisperx.load_model("large-v2", device, compute_type=compute_type, language="pt")
audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
# 2. Alinhamento temporal
model_a, metadata = whisperx.load_align_model(language_code=result["language"], device=device)
result = whisperx.align(result["segments"], model_a, metadata, audio, device, return_char_alignments=False)
# 3. Diarização (separação de vozes)
diarize_model = whisperx.DiarizationPipeline(use_auth_token=hf_token, device=device)
diarize_segments = diarize_model(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)
# 4. Exibir resultado formatado
for segment in result["segments"]:
speaker = segment.get("speaker", "DESCONHECIDO")
text = segment["text"]
print(f"[{speaker}] {text}")Prompt Bônus para Limpar e Formatar a Transcrição
Após gerar o arquivo de texto bruto, utilize o prompt abaixo no ChatGPT ou Claude para substituir os identificadores genéricos pelos nomes reais dos participantes e pontuar o diálogo:
“Atue como um editor profissional de transcrições. Abaixo está a transcrição bruta de um debate entre duas pessoas. O [SPEAKER_00] é o entrevistador (Carlos) e o [SPEAKER_01] é o convidado (Dr. Marcos). Corrija pontuações, remova vícios de linguagem excessivos (como ‘né’, ‘tipo assim’) mantendo o sentido original, e formate o diálogo de forma legível e profissional: [COLE SUA TRANSCRIÇÃO AQUI]”
Erros Comuns e Como Evitá-los
- CUDA Out of Memory (GPU cheia): Reduza o
batch_sizede 16 para 8 ou 4, ou utilize o modelomediumem vez delarge-v2. - Erro 403 / Model Restricted no PyAnnote: Certifique-se de que você acessou os links dos modelos no Hugging Face e clicou no botão para aceitar as condições de uso antes de gerar o token.
- Áudios com muito ruído de fundo: Utilize uma ferramenta de pré-processamento como o Adobe Podcast Enhance para isolar a voz antes da transcrição.
Perguntas Frequentes (FAQ)
O WhisperX funciona com qualquer idioma?
Sim. O WhisperX suporta dezenas de idiomas com alta precisão, incluindo português, inglês, espanhol e francês. Para português, o modelo large-v2 oferece resultados superiores para sotaques e termos técnicos.
Posso limitar o número exato de debatedores?
Sim. Você pode passar os parâmetros min_speakers e max_speakers na chamada do DiarizationPipeline caso já saiba com exatidão quantos convidados participaram da gravação.
Conclusão
A automação de transcrições com identificação de locutores deixou de ser um recurso restrito a softwares caros por assinatura. Com o WhisperX operando sobre a infraestrutura gratuita do Google Colab, você obtém uma solução robusta, privada e com padrão profissional para converter debates, podcasts e entrevistas em textos perfeitamente estruturados.
Ao incorporar essa ferramenta no seu fluxo de trabalho diário aliada a modelos de linguagem para pós-edição, você economiza horas de digitação manual e acelera drasticamente a produção de artigos, resumos e atas de reuniões. Experimente o tutorial com seu próprio arquivo de áudio e comprove a precisão da diarização moderna.






