Wav2Vec2 Podcasts Base - Fine-tuned no TAGARELA v2 (100% Streaming)
Este modelo é uma versão fine-tuned do lgris/w2v_podcasts_base_400k_pt (modelo pré-treinado em podcasts em Português Brasileiro) treinado em 100% dos dados do dataset TAGARELA v2 via streaming.
Descrição do Modelo
- Modelo Base:
lgris/w2v_podcasts_base_400k_pt(Wav2Vec2 Base pré-treinado em podcasts brasileiros) - Dataset de Fine-Tuning: TAGARELA v2 (5.315.941 amostras de treino, ~13.127 horas de áudio, 2.224 shards Parquet)
- Idioma: Português Brasileiro (
pt-BR) - Amostragem de Áudio: 16 kHz mono
- Vocabulário: 51 tokens (alfabeto em minúsculas
a-z, caracteres acentuadosàáâãçèéêëìíîñòóôõöùúûü, delimitador de palavras|e tokens especiais[UNK],[PAD])
Resultados de Avaliação (Benchmarks)
O modelo foi avaliado nos conjuntos de teste de 3 datasets de referência em português:
| Dataset de Teste | Amostras | WER (%) | CER (%) | Notas |
|---|---|---|---|---|
| TAGARELA v2 | 4.208 | 14.96% | 6.47% | Transcrições automáticas de podcasts |
| TAGARELA v1 | 356 | 23.75% | 10.91% | Apenas conjunto de teste foi revisado por humanos |
| CORAA v1.1 | 12.676 | 23.98% | 10.30% | Domínio variado (entrevistas, aulas) |
Comparativo com outros modelos:
| Modelo | TAGARELA v1 (WER) | TAGARELA v2 (WER) | CORAA (WER) |
|---|---|---|---|
| XLS-R 300M (v2, 100%) | 21.86% | 12.13% | 19.72% |
| XLS-R 300M (v1+v2, 100%) | 20.88% | 15.54% | 22.88% |
| Podcasts PT (v2, 100%) (este modelo) | 23.75% | 14.96% | 23.98% |
| Podcasts PT (v1+v2, 100%) | 21.64% | 15.92% | 25.44% |
| CORAA (Edresson) (ref. externa) | 32.55% | 27.08% | 22.46% |
Como Usar
1. Usando a Pipeline do Hugging Face
import torch
from transformers import pipeline
transcriber = pipeline(
"automatic-speech-recognition",
model="lgris/wav2vec2-podcasts-tagarela-v2",
device=0 if torch.cuda.is_available() else -1
)
# Transcrever áudio (caminho para arquivo wav/mp3 de 16kHz)
result = transcriber("audio.wav")
print("Transcrição:", result["text"])
2. Usando Wav2Vec2ForCTC e Wav2Vec2Processor
import torch
import librosa
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
model_id = "lgris/wav2vec2-podcasts-tagarela-v2"
processor = Wav2Vec2Processor.from_pretrained(model_id)
model = Wav2Vec2ForCTC.from_pretrained(model_id)
# Carregar áudio a 16kHz
speech_array, sampling_rate = librosa.load("audio.wav", sr=16000)
# Processar entrada
inputs = processor(speech_array, sampling_rate=16000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)[0]
print("Transcrição:", transcription)
Hiperparâmetros de Treinamento
- Max Steps: 100.000
- Batch Size Efetivo: 128 (16 por device $\times$ 8 gradient accumulation steps)
- Learning Rate: 3e-5 com warm-up linear nos primeiros 5.000 steps
- Otimizador: AdamW (weight decay 0.005)
- Precisão: bfloat16 (
bf16=True) - Feature Encoder: Congelado (
freeze_feature_encoder=True) - Estratégia de Dados: Streaming sob demanda com PyArrow sem cache em disco para suportar o volume total de ~13.000h de áudio.