Hacer una aplicación de transcripción de tres clics para usar pero altamente precisa suena difícil, pero no lo es. Presentemos Whisper a AutoHotkey.

Whisper de OpenAI es una de las soluciones más poderosas para convertir su voz en texto. Sin embargo, Whisper también puede ser molesto de usar, ya que debe escribir comandos para transcribir un archivo de audio a texto. Pero, ¿por qué hacer eso cuando tenemos AutoHotkey?

Con AutoHotkey, podemos crear sin esfuerzo una GUI básica para aplicaciones de línea de comandos como Whisper. Entonces, hagamos eso y veamos cómo puede crear su propia aplicación de transcripción combinando los superpoderes de creación de GUI de AutoHotkey con Whisper de OpenAI como el "cerebro" detrás de los botones.

Sentando las bases para Whisper y AutoHotkey

Puedes hacer guiones geniales con AutoHotkey, pero eso no es todo lo que puede hacer. Para este proyecto, usaremos AutoHotkey para crear una GUI para Whisper. Esto nos permitirá usar la herramienta de inteligencia artificial de reconocimiento de voz de OpenAI haciendo clic en los botones y personalizando su funcionalidad usando menús en lugar de escribir comandos.

instagram viewer

Sin embargo, esto significa que deberá tener instalados AutoHotkey y Whisper para seguir.

Para la primera parte de la ecuación, puedes descargar AutoHotkey desde su sitio oficial, luego ejecute su instalador y siga los pasos presentados.

Tenga en cuenta que usaremos la versión anterior "v1" del lenguaje de secuencias de comandos, no la nueva v2. Eso es importante porque las dos versiones usan una sintaxis algo diferente. Lo que veremos aquí podría no funcionar si se usa la nueva v2.

La segunda parte es más complicada, pero puedes aprender cómo hacerlo consultando nuestro artículo sobre cómo convertir tu voz en texto con Whisper de OpenAI para Windows.

Con ambos instalados, nuestro plan de acción es el siguiente:

  1. Cree una GUI con elementos para las variables y valores de Whisper.
  2. Cree funciones para tomar valores de la interfaz, seleccionar archivos y carpetas, y ensamblar todo en un comando Whisper utilizable.
  3. Ejecute el comando Susurro para producir resultados.

Por supuesto, siempre puede utilizar la compatibilidad integrada de Windows para el dictado por voz, como vimos en nuestro artículo sobre Cómo iniciar el dictado por voz en Windows 11. Aún así, como verá mientras lo usa, Whisper es mucho más preciso (pero también más lento).

En una nota más personal, debo explicar que no soy programador, y este proyecto es un "remix" de una solución hecha para uso personal.

Cómo hacer un nuevo script de AutoHotkey

El primer paso es crear un nuevo archivo de script en blanco. Guárdelo en su propia carpeta, en caso de que decida modificarlo o construir sobre él, creando más archivos.

  1. Ejecute su administrador de archivos favorito (o presione Clave de Windows + mi para iniciar el Explorador de Windows) y cree una carpeta para su aplicación de transcripción en cualquier lugar que desee.
  2. Haga clic con el botón derecho en un lugar en blanco de la ventana y seleccione Nuevo > Guión de teclas de acceso rápido automático para crear un archivo de script vacío.
  3. Mayús + clic derecho en el archivo para acceder al menú contextual completo y seleccionar para abrirlo con su código o editor de texto favorito. propias de Windows Bloc servirá.
  4. A pesar de ser "un script vacío", su archivo AHK ya estará precargado con algunas "cosas". Esas son variables y banderas útiles de AutoHotkey que definen cómo debería funcionar en su escritorio. Ignórelos, déjelos como están y haga todo su futuro escribiendo debajo de ellos.

Conociendo las banderas de Whisper

Dado que estamos creando una GUI para una aplicación de línea de comandos, es útil tener una referencia a sus principales variables y banderas que usaremos en nuestro proyecto. Puede consultarlos leyendo la documentación de Whisper, visitando su página oficial de Githuby ejecutarlo en su terminal.

Enumeraremos los que usaremos en este proyecto por conveniencia. Le sugerimos que los agregue a su secuencia de comandos como comentarios (en líneas separadas, cada una comenzando con un carácter ";" seguido de un espacio).

; Banderas susurrantes:; --initial_prompt PROMPT_TEXT; --texto de formato de salida; -o CARPETA_SALIDA; --model MODEL_TO_USE; --tarea TRANSCRIBIR/TRADUCIR; --idioma EN/EL

Creando la GUI con AutoHotkey

Le sugerimos que divida su script en secciones usando comentarios como lo hicimos nosotros para mantenerlo organizado. Comenzaremos definiendo algunas variables, continuaremos con la GUI real y terminaremos definiendo sus funciones.

Comenzamos con una sección en la que definiremos variables que tal vez queramos cambiar en el futuro, pero no con tanta frecuencia como para exponerlas a través de la GUI, complicándolo demasiado. Puede escribir "Variable_Name = Contenido o valor de la variable" con un par de variable y valor por línea.

Para este proyecto, hemos definido un Formato de salida variable que establecemos en el "TXT"valor y WhisperExecutable declaración variable Nombre del archivo ejecutable de Whisper. De esta forma, si queremos usar la misma solución en el futuro para crear archivos de subtítulos SRT en lugar de documentos TXT o actualizar Susurrar/cambiar a una aplicación alternativa, podemos ajustar los valores de esas variables en ese único lugar en lugar de en todo el guion.

OutputFormat = txtWhisperExecutable = susurro

Configuración de las opciones de usuario

Al usar Whisper en la línea de comando, tres de sus banderas le permiten definir:

  • si estas haciendo traducción o transcripción
  • El archivo de audio idioma
  • El idioma modelo que desea usar (hay varios tamaños disponibles, cada uno de los cuales afecta el rendimiento VS la calidad de los resultados).

La forma más fácil de ofrecer la misma funcionalidad a través de una GUI es a través de listas desplegables probadas y probadas. La sintaxis para agregar una lista desplegable a una GUI de AutoHotkey es la siguiente:

Gui, Add, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|

En base a eso, agreguemos tres listas desplegables a nuestro script para seleccionar el idioma de Whisper (entre inglés/en y griego/el), modelo (pequeño, base, pequeño, mediano, grande) y tipo de tarea (transcribir o traducir).

Gui, Añadir, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, tiny|base|pequeño||mediano|grande|
Gui, Agregar, DropDownList, x345 y5 w165 h100 vTaskType, transcribir||traducir|

Para establecer una opción como selección predeterminada, use un símbolo de barra doble ("|") después de ella. Puede ver que, en nuestro ejemplo, hemos establecido nuestro idioma en es, Modelo seleccionado para pequeñoy TaskType para transcribir.

Cómo guiar el susurro

Dado que Whisper se basa en IA, no hay forma de tener un control absoluto sobre cómo Whisper transcribe el audio. Es libre de elegir lo que considere óptimo.

Sin embargo, al igual que otras soluciones de IA, Whisper puede aceptar indicaciones del usuario. Al crear un aviso, puede "guiar" cómo transcribe su audio.

¿La solución que estamos creando no pudo transcribir algo correctamente? Puede intentar "explicar" a Whisper "de qué se trata el archivo de voz", incluida la sintaxis de las palabras, los acrónimos y las frases en su indicación tal como desea que aparezcan en la transcripción. Para eso, agregaremos un campo de edición de texto de AutoHotkey.

La sintaxis no es muy diferente a la que usamos para agregar listas desplegables arriba:

Interfaz gráfica de usuario, Agregar, Editar, x5 w505 h400 vPromptText, %PromptText%

El "%PromptText%" al final "le dice" a AHK que muestre el contenido de la variable PromptText (si ya tiene asignado un valor) dentro del campo de texto. No mostrará nada en la secuencia de comandos que estamos creando, pero considérelo como un marcador de posición para cuando finalmente modifique la secuencia de comandos en el futuro, ¡también para guardar y cargar indicaciones!

¿Preferiría asignar un valor predefinido a la Mensaje de texto ¿variable? Agregue algo como lo siguiente a la Variables sección del guión. Recuerda reemplazar "Tu nombre" con tu nombre real.

PromptText = Transcripción de las notas de su nombre

Configuración de los botones de acción

Para elegir archivos, carpetas y ejecutar Whisper después de haber configurado todo, es mejor usar botones. Puede agregar botones a una interfaz hecha por AHK usando lo siguiente:

Interfaz gráfica de usuario, Agregar, Botón, Posición x y Posición wAncho alto Altura gFunción_a_realizar, Texto del botón

Tenga en cuenta que, a diferencia de las variables en los elementos de la GUI, que comienzan con la letra "v", los nombres de las funciones comienzan con "g", para "Ir (a este punto del script)".

Un solo botón de una interfaz AHK también puede considerarse "el predeterminado", que se activará si no hace clic en ningún lugar de la GUI y presiona Ingresar. Esto se define agregando "por defecto" en la sección de coordenadas y función, como notará en nuestro botón "Aceptar":

GUI, Agregar, Botón, x5 w505 h50 gSelectFile, Carga FileGui, Agregar, Botón, x5 w505 h50 gSeleccionar carpeta, ElegirProducción Carpeta
GUI, Añadir, Botón, Por defecto x5 w505 h50 gBotónEnviar, Aceptar

Con lo anterior, estamos definiendo tres botones:

  • Uno etiquetado como "Cargar archivo" que, al hacer clic, ejecutará el Seleccione Archivo función.
  • Uno etiquetado como "Elija la carpeta de salida", que ejecutará el Seleccione la carpeta función.
  • Uno etiquetado como "DE ACUERDO", seleccionado por defecto, "llamando" al BotónEnviar función.

Cómo mostrar su GUI

Nuestra GUI está lista pero no aparecerá en nuestra pantalla porque no le hemos "dicho" a AutoHotkey que la muestre o qué debe hacer cada botón.

Para eso, agregue las siguientes dos líneas debajo de las que definen su GUI:

Gui, MostrarRetorno

La primera línea "le dice" a AHK que muestre la ventana de la GUI, mientras que la segunda marca el final de la sección.

Las funciones y la funcionalidad de nuestra aplicación

Aunque hemos completado la sección de GUI, si intenta ejecutar el script, se bloqueará. Eso es porque estamos haciendo referencia a funciones que no existen en él. Entonces, nuestro próximo paso es crear esas funciones.

Las tres funciones que queremos son:

  • Seleccione un archivo de entrada.
  • Seleccione la carpeta de salida donde se almacenará el archivo transcrito.
  • Elabore un comando que "ensamblará" todas las variables en un comando Whisper utilizable, similar a lo que escribiríamos nosotros mismos en una terminal, y luego lo ejecutará.

Selección de archivos de entrada

La primera función, que ya hemos llamado "Seleccione Archivo" cuando agregamos su botón a la GUI, es:

Seleccione Archivo:ArchivoSeleccionarArchivo, SelectedFileReturn

ArchivoSeleccionarArchivo es una función de AutoHotkey que muestra un solicitante de archivos típico, lo que permite al usuario seleccionar un archivo. Archivo seleccionado es la variable en nuestro script que "retendrá" la ruta al archivo que seleccionó el usuario.

Sin embargo, como verá en nuestras capturas de pantalla, también hemos agregado la siguiente línea justo encima del "retorno" que finaliza la función:

MsgBox, %ArchivoSeleccionado%

Esto hará que AHK muestre un Buzon de mensaje con el archivo seleccionado después de que lo elegimos, lo cual es útil para solucionar problemas de su secuencia de comandos. Si este cuadro de mensaje muestra la ruta y el nombre de su archivo seleccionado, no es su botón o función de selección de archivos lo que requiere reparación.

Selección de carpeta de salida

La función para seleccionar una carpeta es casi idéntica, solo cambia el nombre del comando y la variable, para mostrar que estamos tratando con carpetas en lugar de archivos:

Seleccionar carpeta: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Devolver

La última función

La función final será la más complicada. Asignado al botón Aceptar, esto "reunirá" todos los valores de las variables de la GUI, los transformará en un comando utilizable y luego lo ejecutará.

Comenzamos indicando el principio y el final de la función:

Botón Enviar:Devolver

Para "tomar" todos los valores de la GUI, agregue lo siguiente debajo del BotónEnviar línea:

Gui Enviar, no ocultar

La siguiente línea crea una nueva variable llamada "SusurroBanderas". Luego le agrega todas las variables de la GUI como banderas para el comando Whisper.

WhisperFlags = --initial_prompt "%Texto de solicitud%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%CarpetaSeleccionada%""%ArchivoSeleccionado%"

A continuación, le "diremos" a AHK que use el terminal predeterminado (CMD.exe) para ejecutar el ejecutable de Whisper (que definimos con el WhisperExecutable variable) con las variables de la GUI (que ahora están "ensambladas" en el único SusurroBanderas variable).

RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%

Para una solución de problemas aún más fácil, también agregamos un msgbox, como antes, pero también agregamos la siguiente línea:

Portapapeles = %WhisperExecutable% %WhisperFlags%

Esto se copiará en el Portapapeles el comando completo emitido a CMD. Entonces, si algo falla, en lugar de solo ver el comando en uno de los cuadros de mensaje de AHK, también lo tendrá disponible en su Portapapeles.

Abra una terminal, pegue el comando desde el Portapapeles y verifique los errores que aparecen para localizar posibles problemas.

Por ejemplo, mientras trabajaba en el guión, inicialmente olvidé tener el aviso entre comillas. Por lo tanto, el comando falló, ya que Whisper intentó analizar el indicador como indicadores.

Pruebas y ajustes finales

Eso fue todo: acabamos de crear una aplicación de transcripción utilizando las capacidades de creación de GUI de AutoHotkey y una solución de transcripción de IA lista para usar.

Intente ejecutar su secuencia de comandos (haga doble clic en su archivo), y debería ver su GUI en su pantalla.

  • Cambie la configuración de Whisper usando las listas desplegables en la parte superior.
  • Escriba una breve descripción de su transcripción (y algunos términos) en el Inmediato campo.
  • Haga clic en el Cargar archivo y elija el archivo de audio que desea transcribir.
  • Haga clic en el Elija la carpeta de salida y seleccione dónde debe almacenarse el archivo de texto producido.
  • Haga clic en DE ACUERDO para liberar Whisper, según lo configurado por su GUI, en su archivo de audio seleccionado y guardar su transcripción como un archivo de texto en la carpeta que seleccionó.

Si todo funcionó, regrese a su secuencia de comandos y elimine o comente (agregando un ";" al principio) todas las funciones de solución de problemas (cuadros de mensajes y líneas de copia en el portapapeles).

Llevando Whisper más allá con AutoHotkey

Al configurar correctamente los valores predeterminados de su GUI y quizás agregar un indicador genérico, puede convertir Whisper en un solución de tres clics para transcribir: sin pagar por soluciones comerciales, servicios de terceros, jugar con interfaces complicadas o escribiendo en una terminal.