Quería mi propio asistente de voz, y que fuera rápido
Todo empezó por una tontería: estaba harto de soltar el ratón, buscar un icono, esperar a que abriera el programa, y repetir eso quince veces al día. Un día pensé «esto lo tendría que poder hacer hablando» y ahí se quedó la idea, dando vueltas, hasta que un fin de semana me puse a probar.
Estoy convencido además que las interfaces de voz van a ir tomando cada vez más y más protagonismo. 🙂
No tenía un plan. No sabía qué tecnología tenía que usar ni si el ordenador se iba a enterar de algo cuando le hablara. Lo único que tenía claro era la referencia: quería algo parecido a Jarvis, el asistente de Iron Man. Le hablas y las cosas pasan. Sin menús, sin clics, sin fricción.
La idea de Jarvis, con los pies en el suelo
Jarvis es una fantasía de guion, evidentemente. Pero la fantasía tiene un núcleo que sí es realista: un asistente que entienda lo que le dices y actúe ya, sin que tú tengas que esperar demasiado. Eso era lo que yo quería para el día a día delante del ordenador: abrir aplicaciones, dictar un texto, subir el volumen, sin soltar lo que estaba haciendo con las manos.
Así que me puse a la tarea con la idea de montar algo casero, funcional, sin depender de Alexa ni de Siri ni de nada que viviera en la nube de otra empresa. Quería que corriera en mi propio ordenador, con mis propias reglas, y que hiciera exactamente lo que yo necesitaba y nada más.
Le he llamado Lucía y funciona con un modelo de gramática cerrada: no me «entiende», sino que entiende comandos concretos y los traduce a atajos de teclado. La sensación es bastante «futurista», la verdad.
La obsesión: que fuera rápido
Aquí está el detalle que más me importaba desde el principio: la latencia. La latencia es el tiempo que pasa entre que tú terminas de hablar y el asistente empieza a hacer lo que le has pedido. Si ese tiempo es corto, la sensación es de fluidez, como hablar con una persona. Si es largo, la sensación es de estar esperando a que el ordenador «se entere», y ahí se rompe toda la magia.
Un asistente que tarda tres segundos en reaccionar no es un Jarvis, es un freno.
Gran parte del tiempo que le he dedicado a este proyecto no ha sido añadir cosas nuevas, sino en eficientar técnicamente cómo Lucía gestiona los comandos. Pequeños recortes aquí y allá que, sumados, marcan la diferencia entre algo que se usa a diario y algo que se prueba una vez y se abandona.
La decisión de que sea un modelo de gramática cerrada por ejemplo, es una decisión puramente de velocidad.
Un asistente de voz no se juzga por lo que sabe hacer, se juzga por lo rápido que reacciona cuando se lo pides.
Sin plan cerrado, probando sobre la marcha
No fui a por una solución concreta desde el primer día. Fui agnóstico, en el sentido de que no me casé con ninguna herramienta ni ningún enfoque. Probé cosas, unas funcionaron mejor que otras, y me quedé con lo que daba mejor resultado en la práctica.
Eso significa que el proyecto ha ido cambiando de forma bastante orgánica. Lo que empezó siendo «quiero abrir Chrome hablando» ha terminado siendo un asistente que dicta textos, gestiona el volumen, reconoce distintos modos de escucha según si estoy solo o hay ruido de fondo, y hace bastantes más cosas que iré contando en los próximos posts.
En el próximo post, por ejemplo, cuento en detalle qué es capaz de hacer el asistente en mi día a día real: abrir aplicaciones, saludar, decirme la hora, dictar textos enteros sin tocar el teclado y subir o bajar el volumen sin buscar el icono en la barra de tareas.
Pero os dejo ya aquí un vídeo de mi asistente de voz con los comandos más básicos, para que veáis a Lucía en acción.



