CoolFace
Modelpublic

lgris/wav2vec2-xls-r-300m-tagarela-combined

sourceHugging Faceapache-2.0updated 14d agoView on Hugging Face
0likes62downloads
Model Card

Wav2Vec2 XLS-R 300M - Fine-tuned no TAGARELA Combinado (v1 + v2, 100% Streaming)

Este modelo é uma versão fine-tuned do [facebook/wav2vec2-xls-r-300m](https://huggingface.co/facebook/wav2vec2-xls-r-300m) treinado na combinação dos datasets TAGARELA v1 e TAGARELA v2 via streaming.

O treinamento utilizou amostragem balanceada 50/50 por batch entre os dados do v1 e do v2.


Descrição do Modelo

  • —Modelo Base: facebook/wav2vec2-xls-r-300m (300M parâmetros)
  • —Datasets de Treino:
  • —TAGARELA v1 (apenas o split de teste possui revisão humana)
  • —TAGARELA v2
  • —Idioma: Português Brasileiro (pt-BR)
  • —Amostragem de Áudio: 16 kHz mono
  • —Vocabulário: 51 tokens

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 (%)Observações
TAGARELA v135620.88%9.35%Apenas conjunto de teste foi revisado por humanos
TAGARELA v24.20815.54%6.85%Transcrições de podcasts
CORAA v1.112.67622.88%9.72%Generalização fora de podcasts

Evolução do Treinamento:

StepEpochEval LossEval WER
10.0000.10.499230.20%
30.0000.30.433622.79%
50.0000.50.413421.19%
70.0000.70.446921.33%
90.0000.90.401920.36%

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%)** (este modelo)20.88%15.54%22.88%
**Podcasts PT (v1+v2, 100%)**21.64%15.92%25.44%
**Podcasts PT (v2, 100%)**23.75%14.96%23.98%
**CORAA (Edresson)** (ref. externa)32.55%27.08%22.46%

Como Usar

1. Pipeline do Hugging Face

python
import torch
from transformers import pipeline

transcriber = pipeline(
    "automatic-speech-recognition",
    model="lgris/wav2vec2-xls-r-300m-tagarela-combined",
    device=0 if torch.cuda.is_available() else -1
)

result = transcriber("audio.wav")
print("Transcrição:", result["text"])

2. Wav2Vec2ForCTC direto

python
import torch
import librosa
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor

model_id = "lgris/wav2vec2-xls-r-300m-tagarela-combined"
processor = Wav2Vec2Processor.from_pretrained(model_id)
model = Wav2Vec2ForCTC.from_pretrained(model_id)

speech_array, _ = librosa.load("audio.wav", sr=16000)
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 (checkpoint no step 90.000)
  • —Batch Size Efetivo: 128 (8 por device $\times$ 16 grad accum)
  • —Learning Rate: 3e-5
  • —Precisão: bfloat16 (bf16=True)
  • —Feature Encoder: Congelado