¿Cómo funciona Dictata?
Me enorgullece compartir con vosotros Dictata, una aplicación que he desarrollado en Rust para realizar transcripciones de voz directamente en el ordenador.
La aplicación permite iniciar una transcripción con un atajo de teclado, hablar y, a continuación, insertar automáticamente el texto en la aplicación que estés utilizando.
El objetivo es poder utilizar la dictado por voz fácilmente, manteniendo los datos en local. Así es como funciona:
1. Captura de audio
Primero, Dictata captura el audio de la fuente seleccionada.
Es posible utilizar el micrófono, el audio del sistema o ambos al mismo tiempo. Una vez finalizada la grabación, el audio se envía al motor de transcripción.
2. Transcripción
Para gestionar la transcripción, Dictata utiliza otro de mis proyectos: DictataEngine.
Creé este motor para proporcionar una interfaz común entre varios motores de reconocimiento de voz y poder utilizarlos fácilmente desde una aplicación Rust.
Actualmente es compatible con Whisper, Parakeet, SenseVoice, Moonshine y Zipformer.
La ventaja es que Dictata puede cambiar de motor de transcripción sin tener que modificar el resto de la lógica de transcripción. Todo funciona sin conexión, directamente en el ordenador.
3. Inserción del texto
Una vez finalizada la transcripción, Dictata obtiene el texto y lo inserta automáticamente donde se encuentra el cursor. Solo tienes que iniciar Dictata con el atajo de teclado, hablar y continuar utilizando la aplicación con normalidad.
También existe un modo continuo que permite transcribir progresivamente mientras hablas.
4. Procesamiento del texto
Dictata también puede utilizar un LLM local para procesar el texto transcrito.
Esto permite, por ejemplo, limpiar una transcripción o convertirla directamente en un mensaje, correo electrónico u otro formato.
5. Gestión de modelos
Dictata también permite gestionar directamente los modelos utilizados para la transcripción.
Desde la aplicación puedes consultar los modelos disponibles, descargar los que necesites y elegir cuál quieres utilizar.
Esta gestión está directamente conectada con DictataEngine, lo que permite mantener separada la parte de descarga y gestión de modelos de la propia aplicación.
El proyecto todavía está en desarrollo, pero esta arquitectura me permite experimentar fácilmente con diferentes modelos de transcripción y mejorar Dictata sin estar limitado a un único motor.
Puedes encontrar ambos proyectos en GitHub: