HoldToType

doku

Selbst bauen

Die einzige Voraussetzung ist ein laufendes Docker Desktop. Auf dem Rechner wird nichts installiert: kein Go, keine Compiler, keine Paketwerkzeuge.

Ein Skript

git clone https://github.com/Vitalii-Yemets/holdtotype
cd holdtotype
.\build.ps1   # Modell small, etwa 466 MB
.\build.ps1 -Model medium   # genauer, größer

Das Ergebnis landet in dist/:

Dateiwas sie ist
holdtotype.exe

tray client: Go, WinAPI, WebView2

whisper-server.exe

recognition, whisper.cpp, static build

sherpa-server.exe

recognition, sherpa-onnx, official static build, pinned and checksum-verified

sherpa-online-server.exe

streaming recognition, sherpa-onnx, from the same pinned archive

llama-server.exe

the editor model for post-processing, llama.cpp

models/

the model you chose at build time

config.default.json

default settings

Was die Pipeline tut

MinGW-w64-Cross-Kompilierung von whisper.cpp und llama.cpp in einem Linux-Container, der Go-Client mit cgo für die Mikrofonaufnahme, Icon-Erzeugung, Installer-Paketierung. Alles steht in build/Dockerfile. Beide Engines sind auf bestimmte Upstream-Versionen festgelegt, damit die Builds reproduzierbar bleiben.

Tests

Auch alles in Containern, nichts zu installieren:

docker build --file build/Dockerfile --target gotest .   # Go-Unit-Tests und go vet, Ziel Windows
docker run --rm -v "${PWD}:/w" -w /w node:20 sh -c "node test/build-page.js && cd test && npm i --no-save --silent jsdom && node ui.test.js"   # die Einstellungsseite in jsdom
  • client/internal/... — Unit-Tests für die Teile mit Logik: Versionsvergleich, doppelte Tastenkürzel, Regeln pro Anwendung, Ersetzungen, Sprachbefehle, Verlauf, Prompt-Ketten, Klanganalyse, Dateihashes und die Listendatei.
  • test/ui.test.js — die echte Einstellungsseite in jsdom: Abschnittswechsel, die Übersetzungsmatrix, der Prompt-Editor, Regeln, Ersetzungen, Befehle, Verlauf, Modell-Löschung, der Assistent beim ersten Start, und keine JavaScript-Fehler.
  • test/locales.test.js — jede der acht Sprachen trägt jede Zeichenkette, die Seite und Programm verlangen.
  • test/setup.test.js — die Installer-Seite: die Schritte, die Modellwahl, die stillen Schalter.
  • client/internal/theme — jedes Design behält sein eigenes Gesicht, seine Ecken, Pegelmarken und Lampen.

Dann starten Sie Ihren eigenen Build statt des heruntergeladenen. Es ist dasselbe Programm, aus denselben Quellen gemacht.