Speech-to-Text
La conversión de voz a texto (STT), o reconocimiento automático del habla, transcribe el audio hablado a texto mediante modelos neuronales como Whisper; se evalúa con la tasa de error por palabra.
La conversión de voz a texto (STT), también denominada reconocimiento automático del habla (ASR) o, simplemente, reconocimiento del habla, convierte el audio hablado en texto escrito. Un modelo STT transforma una forma de onda en una representación tiempo-frecuencia, la convierte en caracteres o fragmentos de palabras mediante una red neuronal y genera una transcripción, a menudo con puntuación, marcas de tiempo e indicaciones de quién ha hablado. Es la capa de entrada de los asistentes de voz, los subtítulos en directo, las notas de reuniones y el análisis de llamadas, y sus transcripciones alimentan el procesamiento del lenguaje natural (NLP) para la búsqueda, el resumen y la detección de intenciones. El preentrenamiento autosupervisado con audio sin etiquetar y el entrenamiento débilmente supervisado a gran escala, como el de Whisper de OpenAI, entrenado con 680 000 horas de audio multilingüe de Internet, han permitido que los sistemas modernos sean precisos con distintos acentos, ruido de fondo y decenas de idiomas.
Cómo funciona la conversión de voz a texto#
Primero se remuestrea el audio —a 16 kHz en el caso de Whisper— y se convierte en un espectrograma log-mel, una cuadrícula que muestra la energía por banda de frecuencia a lo largo del tiempo. Whisper calcula 80 bandas mel en ventanas de 25 milisegundos cada 10 milisegundos, y su modelo large-v3 utiliza 128 bandas. Un codificador acústico, formado por capas convolucionales y de transformador, convierte estos fotogramas en características. El codificador Conformer intercala convoluciones, que capturan patrones de sonido locales, con autoatención, que relaciona partes distantes de un enunciado, y alcanzó tasas de error por palabra del 2,1 % y el 4,3 % en los conjuntos de prueba test-clean y test-other de LibriSpeech sin un modelo de lenguaje externo. Hay tres familias de decodificadores que convierten las características del codificador en texto:
- Clasificación temporal conexionista (CTC): Predice un carácter, un fragmento de palabra o un espacio en blanco para cada fotograma de audio; después, elimina las repeticiones y los espacios en blanco. Todos los fotogramas se decodifican en paralelo, lo que hace que CTC sea rápido.
- Transductores: RNN-T y sus sucesores emiten tokens a medida que llegan los fotogramas de audio, por lo que son adecuados para el reconocimiento en tiempo real en teléfonos y en subtítulos en directo.
- Codificadores-decodificadores con atención: Un decodificador de texto genera tokens uno a uno mientras presta atención al audio codificado. Whisper decodifica ventanas de 30 segundos de este modo y usa tokens especiales para identificar también el idioma, predecir marcas de tiempo o traducir al inglés.
Los sistemas de transmisión muestran transcripciones parciales que cambian a medida que llega más audio y finalizan un segmento cuando el hablante hace una pausa:
Tras la decodificación, la normalización inversa del texto reescribe formas habladas como «veinticinco dólares» en «25 $», y la diarización de hablantes divide la transcripción según quién habló y cuándo.
Datos de entrenamiento y modelos#
- Preentrenamiento autosupervisado: wav2vec 2.0 de Meta aprende representaciones del habla enmascarando partes de audio sin etiquetar. Preentrenado con 53 000 horas de habla sin etiquetar y ajustado con solo 10 minutos de audio transcrito, alcanzó tasas de error por palabra del 4,8 % y el 8,2 % en los conjuntos de prueba clean y other de LibriSpeech.
- Supervisión débil a gran escala: Whisper se entrena con audio emparejado con las transcripciones imperfectas que se encuentran en Internet. Sus modelos van desde los 39 millones de parámetros de tiny hasta los 1550 millones de large, y el modelo turbo —una versión optimizada de large-v3 con 809 millones de parámetros— funciona unas 8 veces más rápido que large.
- Alucinación: Los decodificadores con atención se comportan como modelos de lenguaje, por lo que el silencio o el ruido pueden llevarlos a inventar texto fluido. El estudio Careless Whisper descubrió que cerca del 1 % de las transcripciones de Whisper contenían frases o enunciados completos ausentes del audio, con más frecuencia cuando los hablantes hacían pausas largas.
Conversión de voz a texto frente a términos relacionados#
- Reconocimiento del habla y ASR: Sinónimos de conversión de voz a texto.
- Reconocimiento y diarización de hablantes: Determinan quién habla, no qué se ha dicho. La diarización etiqueta los segmentos de una grabación según el hablante, de modo que una transcripción de una reunión puede atribuir cada intervención.
- Comprensión del lenguaje natural (NLU): Interpreta el significado de la transcripción, como la intención y las entidades de «reserva una mesa para dos a las siete».
- Conversión de texto a voz (TTS): El proceso inverso: generar voz a partir de texto. Los asistentes de voz encadenan STT, un modelo de lenguaje grande y TTS.
Aplicaciones en el mundo real#
- Subtítulos y accesibilidad: Los subtítulos en directo de teléfonos, plataformas de vídeo y programas para reuniones hacen que el habla sea accesible para las personas sordas o con dificultades auditivas y permiten que cualquiera pueda buscarla.
- Documentación clínica: Los escribas ambientales transcriben conversaciones entre médicos y pacientes y redactan notas clínicas para la historia clínica electrónica.
- Centros de contacto: Las llamadas transcritas alimentan las búsquedas, las comprobaciones de cumplimiento y el análisis de sentimiento.
- Control por voz de sistemas de visión: Una orden transcrita como «busca la mochila roja» se convierte en un prompt de texto para YOLOE-26, la versión de vocabulario abierto de Ultralytics YOLO26, que detecta y segmenta categorías especificadas en el momento de la inferencia, aunque no estuvieran entre las clases de entrenamiento.
Medición de la precisión#
La tasa de error por palabra (WER) cuenta las sustituciones, eliminaciones e inserciones necesarias para convertir la transcripción en una transcripción de referencia y divide el resultado por el número de palabras de referencia. Este código la calcula mediante la distancia de edición a nivel de palabra:
import numpy as np
reference = ["turn", "on", "the", "kitchen", "lights"]
hypothesis = ["turn", "of", "the", "kitchen", "light", "please"]
# Edit distance over words: d[i, j] is the cheapest way to turn the first i reference words into the first j hypothesis words
d = np.zeros((len(reference) + 1, len(hypothesis) + 1), dtype=int)
d[:, 0] = np.arange(len(reference) + 1) # deletions
d[0, :] = np.arange(len(hypothesis) + 1) # insertions
for i in range(1, len(reference) + 1):
for j in range(1, len(hypothesis) + 1):
substitution = d[i - 1, j - 1] + (reference[i - 1] != hypothesis[j - 1])
d[i, j] = min(substitution, d[i - 1, j] + 1, d[i, j - 1] + 1)
# Word error rate: (substitutions + deletions + insertions) / words in the reference
print(f"{d[-1, -1]} errors / {len(reference)} words = WER {d[-1, -1] / len(reference):.0%}")Imprime 3 errors / 5 words = WER 60%: «of» en lugar de «on» y «light» en lugar de «lights» son sustituciones, y «please» es una inserción. Como se cuentan las inserciones, WER puede superar el 100 %, y pruebas de referencia como la clasificación Open ASR Leaderboard normalizan las mayúsculas, la puntuación y las variantes ortográficas antes de puntuar, para que «Lights.» y «lights» coincidan. Los idiomas que se escriben sin espacios entre palabras, como el chino y el japonés, se puntúan con la tasa de error por carácter.










