Descubre: cómo funciona realmente el reconocimiento de voz sin conexión.
Modelo acústico, modelo de lenguaje, y por qué los modelos locales pequeños a menudo interpretan mal las palabras que interpretan mal.
Dos problemas distintos, una única solución
Un motor de reconocimiento automático del habla (ASR) resuelve dos problemas diferentes en secuencia, y confundir estos dos problemas es la causa más común de confusión sobre lo que estos sistemas pueden y no pueden hacer.
El primero es acústico, el segundo es lingüístico. Se entrenan con datos diferentes y fallan de maneras diferentes.
El modelo acústico
Responde a la pregunta: ¿a qué fonemas se parece más esta forma de onda? Nunca ha leído una oración en su vida.
Fue entrenado con pares de (audio, secuencia de fonemas) y aprendió un mapeo puramente acústico: el sonido “crudo” de una “t” frente a una “d”, independientemente de cualquier significado.
El modelo de lenguaje
Responde a una pregunta completamente diferente: dadas estas secuencias candidatas de fonemas o palabras, ¿cuál de ellas es una oración real del idioma?
Fue entrenado con texto, no con audio. Sabe que “two points” (dos puntos) es mucho más probable que siga a “add” (añadir) que “de points” (de puntos), en un contexto sobre puntuación, incluso si los dos suenan casi idénticos.
Vosk se basa en Kaldi, un conjunto de herramientas que combina exactamente estos dos componentes: un modelo acústico neuronal y un modelo de lenguaje estadístico.
Están conectados a través de un grafo de decodificación ponderado que busca la secuencia de palabras más probable dada tanto el sonido como la gramática.
¿Por qué el modelo pequeño interpreta mal “deux points”?
La parte acústica de un modelo pequeño no es significativamente peor para reconocer fonemas; el cuello de botella es el modelo de lenguaje incluido.
vosk-cli-dictation se distribuye con los modelos pequeños de Vosk (aproximadamente 50 MB por idioma), en lugar de los modelos grandes (que superan un gigabyte). Ese modelo de lenguaje incluido es un modelo estadístico mucho más pequeño y con menos contexto del idioma:
- Un modelo de lenguaje grande ha visto suficientes oraciones reales como para preferir fuertemente “deux points” en lugar de “de points” en una oración sobre formato, porque efectivamente ha visto ese patrón antes.
- Uno pequeño ha visto mucho menos: cuando dos secuencias de palabras candidatas suenan casi idénticas —un homófono verdadero o un cuasi-homófono con una pronunciación casual—, tiene mucha menos información para resolver la duda correctamente.
Esta es exactamente la razón por la que config.yaml de vosk-cli-dictation tiene una tabla recognition_aliases: no es una solución alternativa para un error, sino la respuesta práctica a una propiedad real y estructural de la desambiguación acústica.
Corriges los homófonos específicos que tu propia voz y vocabulario realmente activan, una sola vez, y la herramienta deja de cometer ese error particular para ti.
¿Qué beneficios concretos te ofrece un modelo más grande?
Una mejor desambiguación contextual se paga con potencia de cálculo en cada enunciado, durante todo el tiempo que se ejecuta el proceso. No hay una mejora gratuita aquí.
El modelo pequeño — por defecto
Aproximadamente 50 MB por idioma. Mantiene el mismo principio acústico y se ejecuta cómodamente en segundo plano en hardware estándar.
Un modelo grande
Cambiar el pequeño modelo francés por vosk-model-fr-0.22 supone aproximadamente 1,5 GB en lugar de ~50 MB. El modelo de lenguaje dispone de mucho más contexto, a costa directa de más potencia de CPU y RAM en tiempo de ejecución, ya que se busca un grafo más grande en cada resultado parcial.
El compromiso que este proyecto asume, explícitamente
Por defecto, vosk-cli-dictation utiliza los modelos más pequeños para que pueda ejecutarse cómodamente en segundo plano en hardware estándar.
Trata los inevitables errores de homófonos como un problema de configuración, que se resuelve una vez por cada error recurrente, en un archivo YAML que puedes leer y editar, en lugar de un problema del modelo que requiere más potencia de cálculo.
Si este compromiso es adecuado para ti depende completamente de tu máquina y tu vocabulario.