CoolFace
Modelpublic

lgris/wav2vec2-podcasts-tagarela-v2

sourceHugging Faceapache-2.0updated 11d agoView on Hugging Face
0likes73downloads
Model Card

Wav2Vec2 Podcasts Base - Fine-tuned no TAGARELA v2 (100% Streaming)

Este modelo é uma versão fine-tuned do [lgris/w2v_podcasts_base_400k_pt](https://huggingface.co/lgris/w2v_podcasts_base_400k_pt) (modelo pré-treinado em podcasts em Português Brasileiro) treinado em 100% dos dados do dataset [TAGARELA v2](https://huggingface.co/datasets/freds0/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 TesteAmostrasWER (%)CER (%)Notas
TAGARELA v24.20814.96%6.47%Transcrições automáticas de podcasts
TAGARELA v135623.75%10.91%Apenas conjunto de teste foi revisado por humanos
CORAA v1.112.67623.98%10.30%Domínio variado (entrevistas, aulas)

Comparativo com outros modelos:

ModeloTAGARELA 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

python
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

python
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.