HoldToType

à propos

Qui le fait, et de quoi il est fait

Rien ici n'est une boîte noire. Voici la liste complète de ce que contient l'archive : ce que fait chaque pièce, quand elle tourne et sous quelle licence — y compris chaque modèle proposé par le catalogue.

Qui le fait

Moi : Vitalii Yemets, un développeur. Il n'y a pas d'entreprise, pas d'équipe et pas d'investisseurs : une personne l'écrit, répond aux issues et publie les versions, tout au grand jour sur GitHub.

J'ai écrit HoldToType pour mon propre ordinateur Windows : je voulais dicter sans abonnement et sans que ma voix aille quelque part. Puis mes collègues ont commencé à l'utiliser, et maintenant il est disponible pour tous. Il est gratuit et le restera.

Si quelque chose ne va pas, écrivez-moi : une issue sur GitHub ou holdtotype@outlook.com.

Les moteurs

Chacun est un exécutable distinct à côté de l'application. Le programme en démarre un quand il le faut, lui parle par un port local, et l'arrête après dix minutes d'inactivité.

composantce qu'il fait iciquand il tournelicence
whisper.cpp

whisper-server.exe — fait tourner la famille de modèles Whisper et leur mode de traduction vers l'anglais.

Tant qu'un modèle Whisper sert la langue dans laquelle vous dictez.

MIT

sherpa-onnx

sherpa-server.exe et sherpa-online-server.exe — tout ce qui n'est pas Whisper, en une passe ou en flux pendant que vous parlez.

Tant qu'un modèle sherpa sert la langue, ou qu'un modèle en flux est choisi.

Apache 2.0

llama.cpp

llama-server.exe — le modèle d'édition qui exécute vos prompts après la reconnaissance.

Seulement tant que le post-traitement est activé.

MIT

ggml

Les calculs tensoriels au cœur de whisper.cpp et llama.cpp. Pas un fichier à part ; compilé dans les deux.

Avec le moteur qui s'en sert.

MIT

ONNX Runtime

Fait tourner les modèles à l'intérieur de sherpa-onnx. Compilé dans les exécutables sherpa.

Avec sherpa.

MIT

Les bibliothèques

L'application est écrite en Go. Ce sont les seules bibliothèques extérieures qu'elle utilise.

composantce qu'il fait icilicence
go-webview2

Dessine la fenêtre des réglages, qui est une page HTML rendue par le composant WebView2 déjà présent dans Windows.

MIT

go-winloader

Charge les bibliothèques WebView2. Utilisée par go-webview2.

MIT

malgo / miniaudio

Capte le microphone : le rappel audio qui remplit le tampon tant que vous tenez les touches.

Unlicense

gorilla/websocket

Le lien websocket vers la reconnaissance en flux, qui renvoie du texte pendant que vous parlez encore.

BSD-2

golang.org/x/sys

Les appels de l'API Windows : le crochet clavier, l'icône de notification, la fenêtre du bandeau, les objets de travail des processus fils.

BSD-3

IBM Plex

La seule police dans laquelle chaque design est composé, embarquée dans l'exécutable pour se lire pareil sur toute machine.

OFL 1.1

WebView2 Runtime

Partie de Windows, pas livrée par nous. C'est elle qui peint réellement la page des réglages.

Microsoft

Les modèles

Les modèles se téléchargent à la demande, depuis les dépôts ci-dessous, et chaque fichier est comparé à un SHA-256 publié avant d'être utilisé. Aucun n'est fourni avec le programme.

modèleà quoi il sertlicence
Whisper Base, Small, Medium, Turbo

Le choix par défaut pour toute langue, et les modèles qui portent la traduction : vers l'anglais par leur propre tâche de traduction, vers les autres langues en leur disant que la parole est déjà dans la langue visée. Les versions quantifiées portent la marque q5.

MIT

GigaAM v3

Un modèle monolingue qui ponctue tout seul. Sur une phrase de 11 secondes il a pris 0,47 s contre 11,6 s pour Whisper Medium, et 277 Mo de mémoire contre 814 Mo.

MIT

GigaAM v2

La génération précédente du même modèle : la même vitesse, sans la ponctuation.

MIT

Parakeet TDT 0.6B v3

25 langues européennes dans un seul modèle étroit, ponctue tout seul.

CC-BY-4.0

Nemotron 3.5 Streaming

Écrit pendant que vous parlez : texte partiel sur le bandeau, 40 langues, ponctuation comprise.

OpenMDW-1.1

Canary 180M Flash

Anglais, allemand, espagnol et français, et il traduit entre eux sans Whisper.

CC-BY-4.0

Qwen3 ASR

Une trentaine de langues, le plus lourd et le plus précis du catalogue.

Apache 2.0

Moonshine

Petit et rapide, pour une langue à la fois sur une machine modeste.

MIT

Tout modèle éditeur GGUF

Le post-traitement fait tourner n'importe quel modèle GGUF que vous lui indiquez, cherché et téléchargé depuis Hugging Face dans le programme.

selon le modèle

Ports

Les moteurs sont de simples serveurs HTTP et websocket liés à 127.0.0.1. Ils ne sont pas joignables depuis le réseau, et le programme refuse d'en démarrer un sur un port qu'un autre processus détient déjà.

portmoteurprotocoletourne tant que
8910

whisper-server

HTTP

un modèle Whisper sert la langue

8911

llama-server

HTTP, clé de session

le post-traitement est activé

8912

sherpa-server

HTTP

un modèle sherpa sert la langue

8913

sherpa-online-server

websocket

un modèle en flux est choisi

La construction est reproductible. Tout est compilé dans Docker à partir de sources figées : les versions des moteurs sont fixées dans le Dockerfile, la version de sherpa est vérifiée par son SHA-256, et le résultat est les deux fichiers de la page des versions. Toute la recette est dans le dépôt.

Licences

HoldToType lui-même est publié sous licence MIT : utilisez-le, lisez-le, modifiez-le, publiez le vôtre. Chaque moteur et bibliothèque ci-dessus porte sa propre licence permissive, indiquée à côté.

Une chose vous revient. Les modèles éditeurs que vous trouvez vous-même par la recherche Hugging Face portent la licence choisie par leur auteur, et certains limitent l'usage commercial.

Contact

holdtotype@outlook.com pour tout. Les issues sur GitHub pour les problèmes et les demandes, là où d'autres peuvent les voir et les compléter. Le programme est aussi référencé sur AlternativeTo.

Ouvrir le dépôt