ArtificialGuyBR

Home / Blog / Fixing things

Whisper Small Portuguese Fine-tune (Voz común 13)

Whisper Small ajustado para ASR portugués con 10.3 WER en Common Voice 13.0. Detalles de capacitación, uso y evaluación.

1 sources cited Fixing things

Whisper Small Portuguese Fine-tune (Voz común 13)

TL;DR

  • Whisper Small ajustado para portugués logrando 10,3 WER en el equipo de prueba CV13.0
  • Capacitado en Mozilla Common Voice 13.0 Portugués (8 horas en 1×A100 80GB)
  • Listo para usar con 🤗 transformadores pipeline("automatic-speech-recognition")

Qué hace este modelo

Esta es una versión especializada en portugués de Whisper Small de OpenAI (244M de parámetros). La base Whisper Small se entrenó con 680.000 horas de datos multilingües con una supervisión débil. Este ajuste reduce el enfoque del modelo al portugués utilizando el conjunto de datos Mozilla Common Voice 13.0, lo que produce una mejora mensurable en la tasa de error de palabras para la transcripción en portugués.

El modelo acepta audio de 16 kHz y emite texto en portugués. Se empaqueta como modelo estándar 🤗 de transformadores con pesas tensoras de seguridad, compatibles con el automatic-speech-recognition tubería.

Detalles del entrenamiento

Parámetro | Valor

|---|---

Modelo básico | openai/whisper-pequeño Conjunto de datos | mozilla-foundation/common_voice_13_0 (configuración pt) División del tren | tren División de evaluación | prueba Tasa de aprendizaje | 1e-05 Tamaño del lote del tren | 64 Tamaño del lote evaluado | 32 Optimizador | Adán (β=(0,9,0,999), ε=1e-08) Horario LR | Lineal con 500 pasos de calentamiento. Pasos de entrenamiento | 5.000 Ferretería | 1×NVIDIA A100 80GB Tiempo de entrenamiento | ~8 horas WER (prueba) | 10.30 El entrenamiento siguió la receta del evento de ajuste fino de Hugging Face Whisper.

Cómo utilizar

from transformers import pipeline

asr = pipeline(
    "automatic-speech-recognition",
    model="artificialguybr/whisper-small-pt-cv13",
    device=0  # or "cuda"
)

result = asr("path/to/portuguese_audio.wav")
print(result["text"])

Para audio más largo, use inferencia fragmentada:

result = asr("long_audio.wav", chunk_length_s=30, stride_length_s=5)

El modelo espera audio mono de 16 kHz. Vuelva a muestrear si su fuente difiere.

Configuraciones recomendadas

  • Idioma: Portugués (forzado vía generate_kwargs={"language": "portuguese"})
  • Tarea: transcribir (no traducir)
  • Audio: 16 kHz, voz clara, ruido de fondo mínimo
  • Longitud del segmento: 30 s para forma larga con zancada de 5 s

Limitaciones

  • Optimizado sólo para portugués; otros idiomas se degradarán
  • El rendimiento disminuye con audio de baja calidad, acentos fuertes o fondos ruidosos
  • No apto para transmisión en tiempo real sin optimización adicional
  • WER de 10,3 significa ~1 error por cada 10 palabras: revise las transcripciones críticas

Licencia

Hereda de la base Whisper Small (MIT) y Common Voice 13.0 (CC0). Consulte la tarjeta del modelo para conocer restricciones adicionales.

Errores y soluciones comunes

Error | Causa | Arreglar

|---|---|---

Model not found | ID de repositorio incorrecto | Utilice artificialguybr/artificialguybr/whisper-small-pt-cv13 Poca precisión en audio que no es PT | El modelo está especializado en PT | Utilice la base Whisper para multilingüe OOM en GPU | Tamaño de lote demasiado grande | Reducir batch_size o usar la descarga de CPU Inferencia lenta | Sin fragmentación en audio largo | Añadir chunk_length_s=30` a la llamada de canalización

Preguntas frecuentes

P: ¿Cómo se compara esto con Whisper Large-v3 para portugués? R: Whisper Large-v3 generalmente será más preciso pero 3 veces más grande y más lento. Este ajuste apunta a un punto óptimo de tamaño/precisión para cargas de trabajo solo en portugués.

P: ¿Puedo ajustar esto más en los datos de mi dominio? R: Sí. Utilice esto como punto de control inicial con una tasa de aprendizaje más baja (por ejemplo, 5e-06) y el audio de su dominio.

P: ¿Admite marcas de tiempo? R: Sí, la canalización de transformadores devuelve marcas de tiempo a nivel de fragmentos cuando return_timestamps=True.

Fuentes

  • Tarjeta modelo: https://huggingface.co/artificialguybr/whisper-small-pt-cv13
  • Modelo básico: https://huggingface.co/openai/whisper-small
  • Conjunto de datos: https://huggingface.co/datasets/mozilla-foundation/common_voice_13_0
  • Receta de entrenamiento: evento de ajuste de Hugging Face Whisper