HoldToType

acerca de

Quién lo hace, y de qué está hecho

Aquí no hay cajas negras. Esta es la lista completa de lo que va en el archivo: qué hace cada pieza, cuándo se ejecuta y bajo qué licencia, incluidos todos los modelos que ofrece el catálogo.

Quién lo hace

Yo: Vitalii Yemets, un desarrollador. No hay empresa, ni equipo, ni inversores: una persona lo escribe, responde los issues y publica las versiones, todo a la vista en GitHub.

Escribí HoldToType para mi propio equipo con Windows: quería dictar sin suscripción y sin que mi voz fuera a ningún sitio. Luego mis compañeros empezaron a usarlo, y ahora está disponible para todos. Es gratis y seguirá siéndolo.

Si algo va mal, escríbeme: un issue en GitHub o holdtotype@outlook.com.

Los motores

Cada uno es un ejecutable aparte junto a la aplicación. El programa arranca el que hace falta, habla con él por un puerto local y lo detiene tras diez minutos sin uso.

partequé hace aquícuándo se ejecutalicencia
whisper.cpp

whisper-server.exe — ejecuta la familia de modelos Whisper y su modo de traducción al inglés.

Mientras un modelo Whisper sirva al idioma en el que dicta.

MIT

sherpa-onnx

sherpa-server.exe y sherpa-online-server.exe — todo lo que no es Whisper, de una pasada o en flujo mientras habla.

Mientras un modelo sherpa sirva al idioma, o esté elegido un modelo en flujo.

Apache 2.0

llama.cpp

llama-server.exe — el modelo editor que ejecuta sus prompts tras el reconocimiento.

Solo mientras el posprocesado esté encendido.

MIT

ggml

Las matemáticas de tensores dentro de whisper.cpp y llama.cpp. No es un archivo aparte; va compilado en ambos.

Con el motor que lo usa.

MIT

ONNX Runtime

Ejecuta los modelos dentro de sherpa-onnx. Compilado en los ejecutables de sherpa.

Con sherpa.

MIT

Las bibliotecas

La aplicación está escrita en Go. Estas son las únicas bibliotecas ajenas que usa.

partequé hace aquílicencia
go-webview2

Dibuja la ventana de ajustes, que es una página HTML dibujada por el componente WebView2 que Windows ya trae.

MIT

go-winloader

Carga las bibliotecas de WebView2. La usa go-webview2.

MIT

malgo / miniaudio

Capta el micrófono: la llamada de audio que llena el búfer mientras sujeta las teclas.

Unlicense

gorilla/websocket

El enlace websocket con el reconocedor en flujo, que devuelve texto mientras usted sigue hablando.

BSD-2

golang.org/x/sys

Las llamadas a la API de Windows: el enganche de teclado, el icono del área de notificación, la ventana de la barra, los objetos de trabajo de los procesos hijos.

BSD-3

IBM Plex

La única tipografía en la que se compone cada diseño, incluida en el ejecutable para que se lea igual en cualquier máquina.

OFL 1.1

WebView2 Runtime

Parte de Windows, no lo entregamos nosotros. Es lo que de verdad pinta la página de ajustes.

Microsoft

Los modelos

Los modelos se descargan a petición, desde los repositorios de abajo, y cada archivo se compara con un SHA-256 publicado antes de usarse. Ninguno viene con el programa.

modelopara qué sirvelicencia
Whisper Base, Small, Medium, Turbo

La opción por defecto para cualquier idioma, y los modelos que sostienen la traducción: al inglés por su propia tarea de traducción, a los demás idiomas diciéndoles que el habla ya está en el idioma de destino. Las versiones cuantizadas llevan la marca q5.

MIT

GigaAM v3

Un modelo de un solo idioma que puntúa por sí mismo. En una frase de 11 segundos tardó 0,47 s frente a los 11,6 s de Whisper Medium, y 277 MB de memoria frente a 814 MB.

MIT

GigaAM v2

La generación anterior del mismo modelo: la misma velocidad, sin la puntuación.

MIT

Parakeet TDT 0.6B v3

25 idiomas europeos en un solo modelo estrecho, puntúa por sí mismo.

CC-BY-4.0

Nemotron 3.5 Streaming

Escribe mientras habla: texto parcial en la barra, 40 idiomas, con puntuación.

OpenMDW-1.1

Canary 180M Flash

Inglés, alemán, español y francés, y traduce entre ellos sin Whisper.

CC-BY-4.0

Qwen3 ASR

Unos 30 idiomas, el más pesado y el más preciso del catálogo.

Apache 2.0

Moonshine

Pequeño y rápido, para un idioma a la vez en equipos modestos.

MIT

Cualquier modelo editor GGUF

El posprocesado ejecuta cualquier modelo GGUF que le indique, buscado y descargado desde Hugging Face dentro del programa.

según el modelo

Puertos

Los motores son servidores HTTP y websocket normales atados a 127.0.0.1. No se alcanzan desde la red, y el programa se niega a arrancar uno en un puerto que otro proceso ya ocupa.

puertomotorprotocolose ejecuta mientras
8910

whisper-server

HTTP

un modelo Whisper atiende el idioma

8911

llama-server

HTTP, clave de sesión

el posprocesado está activado

8912

sherpa-server

HTTP

un modelo sherpa atiende el idioma

8913

sherpa-online-server

websocket

hay elegido un modelo en streaming

La construcción es reproducible. Todo se compila en Docker desde fuentes fijadas: las versiones de los motores están fijas en el Dockerfile, la versión de sherpa se verifica por su SHA-256, y el resultado son los dos archivos de la página de versiones. La receta entera está en el repositorio.

Licencias

HoldToType en sí se publica bajo licencia MIT: úsalo, léelo, cámbialo, publica el tuyo. Cada motor y biblioteca de arriba lleva su propia licencia permisiva, indicada al lado.

Una cosa queda de tu parte. Los modelos editores que encuentres tú mismo a través de la búsqueda de Hugging Face llevan la licencia que eligió su autor, y algunos limitan el uso comercial.

Contacto

holdtotype@outlook.com para cualquier cosa. Los issues en GitHub para problemas y peticiones, donde otros pueden verlos y añadir. El programa también figura en AlternativeTo.

Abrir el repositorio