Metodología

Transparente y reproducible.

Cualquiera puede volver a correr este benchmark y obtener los mismos datos de partida. Esto es exactamente lo que hacemos.

01

Datos de audio

  • Rioplatense: OpenSLR SLR61 (es_AR), Google, CC BY-SA 4.0.
  • Colombiano: OpenSLR SLR72 (es_CO), Google, CC BY-SA 4.0.
  • Neutro (LatAm): FLEURS es_419, Google, CC BY 4.0.
  • Portugués (BR): FLEURS pt_br, Google, CC BY 4.0.
  • Mexicano (STT): Próximamente. No encontramos todavía un dataset abierto descargable sin registro.

Selección determinística: archivos ordenados alfabéticamente, un audio por hablante, 20 por acento (10 mujeres + 10 hombres en OpenSLR).

02

Voz a texto (STT)

  • Cada modelo transcribe cada audio con el idioma forzado (es/pt), beam_size=1, sin filtro de silencio (no_speech_threshold=None) y sin condicionar en texto previo, igual para todos.
  • Normalizamos texto: minúsculas, sin puntuación, espacios colapsados. Conservamos tildes y ñ.
  • WER y CER agregados por acento con jiwer.
  • Latencia p50 = mediana del tiempo total de transcripción por frase en CPU (8 hilos, sin GPU), tras una corrida de calentamiento.
03

Texto a voz (TTS)

  • Cada voz sintetiza las frases de referencia del acento.
  • Inteligibilidad: el audio sintetizado se transcribe con whisper-large-v3-turbo y se calcula WER/CER contra el texto. Mide claridad, no naturalidad.
  • Latencia p50 = mediana del tiempo hasta obtener el audio completo de la frase en CPU.
  • Para mexicano y neutro usamos las frases de FLEURS es_419.
04

Proveedores comerciales

  • Se muestran como “Próximamente” con su precio oficial y fuente.
  • Solo publicaremos métricas cuando los midamos con cuentas propias, respetando sus términos de uso.
05

Limitaciones

  • 20 audios por acento: suficiente para un piloto, no para diferencias finas. Ampliaremos la muestra.
  • Los datasets públicos pueden haber sido usados en el entrenamiento de algunos modelos.
  • Latencias medidas en CPU local: comparables entre sí, no con APIs en la nube.
06

Reproducir

  • python bench/fetch_data.py → descarga el subconjunto exacto
  • python bench/run_bench.py → corre todo y regenera web/data/results.json
  • VB_LIGHT=1 python bench/run_bench.py → corrida diaria liviana (5 frases por acento)
  • Cada corrida guarda un histórico en web/data/history/AAAA-MM-DD.json