A funcionalidade de identificação de locutores (speaker diarization) utiliza modelos avançados da biblioteca pyannote.audio do Hugging Face. Estes modelos são "gated models" que requerem autenticação e aceitação de termos de uso para garantir uso adequado e coleta de informações para melhoria da biblioteca.
-
Criar conta no Hugging Face: https://huggingface.co/join
-
Aceitar os termos dos modelos específicos:
- Acesse: https://hf.co/pyannote/speaker-diarization-3.1
- Clique em "Agree and access repository"
- Acesse: https://hf.co/pyannote/segmentation-3.0
- Clique em "Agree and access repository"
-
Criar token de acesso: https://hf.co/settings/tokens
- Clique em "New token"
- Nome:
pyannote-audio-access(ou qualquer nome) - Tipo: "Read" (suficiente para baixar modelos)
- Clique em "Generate a token"
- COPIE O TOKEN - ele só aparece uma vez!
-
Configurar o token na aplicação (escolha uma opção abaixo)
# Instalar Hugging Face CLI (se não instalado)
pip install huggingface_hub
# Fazer login (abrirá uma página para colar o token)
huggingface-cli loginVantagens: Mais seguro, token armazenado de forma criptografada
export HUGGINGFACE_HUB_TOKEN="hf_xxxxxxxxxxxxxxxxx"Para tornar permanente, adicione ao seu ~/.bashrc ou ~/.zshrc:
echo 'export HUGGINGFACE_HUB_TOKEN="hf_xxxxxxxxxxxxxxxxx"' >> ~/.bashrc
source ~/.bashrcCrie um arquivo .env na raiz do projeto:
# No diretório: /home/cfernandes/python/transcribe_audio/
echo 'HUGGINGFACE_HUB_TOKEN=hf_xxxxxxxxxxxxxxxxx' > .envEdite o arquivo config.py e adicione seu token:
HUGGINGFACE_HUB_TOKEN = "hf_xxxxxxxxxxxxxxxxx"python -c "
from services.diarization_service import load_diarization_model
try:
model = load_diarization_model()
print('✅ Diarização configurada com sucesso!')
print(f'Modelo carregado: {type(model).__name__}')
except Exception as e:
print(f'❌ Erro na configuração: {e}')
"- Inicie a aplicação:
python app.py - Acesse: http://localhost:5001
- Procure pelo toggle "Identificação de Locutores"
- Se habilitado = ✅ configurado | Se desabilitado = ❌ não configurado
curl http://localhost:5001/check_diarization_availabilityResposta esperada: {"available": true}
- Os modelos pyannote.audio são open-source (licença MIT)
- São "gated" para coletar informações do usuário
- Ajuda os desenvolvedores a entender como os modelos são usados
- Não há cobrança - é gratuito para uso acadêmico e comercial
- E-mail e organização (apenas para estatísticas)
- Ocasionalmente recebe e-mails sobre novos modelos
- Pode cancelar a qualquer momento
- pyannote/speaker-diarization-3.1: Pipeline principal
- pyannote/segmentation-3.0: Modelo de segmentação
- Versão: pyannote.audio 3.1+ (já instalada)
A aplicação funciona perfeitamente mesmo sem a diarização configurada:
- ✅ Transcrição de áudio simples
- ✅ Transcrição com timestamps
- ✅ Múltiplos formatos de arquivo
- ✅ Interface web completa
- ❌ Identificação de locutores
- ❌ Resumo de tempo por locutor
- ❌ Formato com "SPEAKER_00", "SPEAKER_01"
- Toggle de diarização aparece desabilitado/cinza
- Mensagem: "Diarização não disponível - configure o token Hugging Face"
- Todas as outras funcionalidades funcionam normalmente
Soluções:
- Verifique se copiou o token completo (inclui
hf_) - Confirme que aceitou os termos dos 2 modelos específicos
- Aguarde 5-10 minutos após aceitar os termos
- Teste com um novo token
Soluções:
- Acesse novamente os links dos modelos:
- Certifique-se de estar logado na mesma conta do token
- Clique em "Agree and access repository" em ambos
Soluções:
- RAM insuficiente: Diarização requer ~4GB livres
- GPU opcional: Funciona em CPU, mas é mais lento
- Arquivos grandes: Teste com áudios menores primeiro
Soluções:
- Primeira execução precisa de internet para baixar modelos
- Modelos são cached localmente após primeira execução
- Verifique conexão e proxy se necessário
Soluções:
- Atualize pyannote.audio:
pip install --upgrade pyannote.audio - Limpe cache:
rm -rf ~/.cache/huggingface/ - Reinstale dependências:
pip install --force-reinstall torch torchaudio
- RAM: 4GB+ livres para diarização
- CPU: Qualquer processador moderno
- GPU: Opcional (CUDA acelera o processamento)
- Disco: ~2GB para cache dos modelos
- Sem GPU: ~30-60s para cada minuto de áudio
- Com GPU: ~10-20s para cada minuto de áudio
- Primeira execução: Mais lenta (download dos modelos)
Para uso em produção com alta demanda, considere:
- pyannote.AI: Versão comercial otimizada
- Assembly AI: API paga para diarização
- Azure Speech Services: Serviço da Microsoft
- pyannote.audio: https://github.com/pyannote/pyannote-audio
- Hugging Face: https://huggingface.co/docs/hub/security-tokens
- Speaker Diarization: https://github.com/pyannote/pyannote-audio#speaker-diarization
- GitHub Issues: https://github.com/pyannote/pyannote-audio/issues
- Hugging Face Community: https://huggingface.co/pyannote/speaker-diarization-3.1/discussions
- pyannote.audio: MIT License (gratuito para uso comercial)
- Modelos: MIT License (gratuito, apenas requer registro)
- Esta aplicação: Uso livre
🎉 Após configurar o token, reinicie a aplicação e aproveite a identificação automática de locutores!