dokumentacja
Zbuduj samodzielnie
Jedynym wymaganiem jest uruchomiony Docker Desktop. Na maszynie nic się nie instaluje: ani Go, ani kompilatorów, ani narzędzi do pakowania.
Zaktualizowano · Vitalii Yemets
Jeden skrypt
git clone https://github.com/Vitalii-Yemets/holdtotype cd holdtotype .\build.ps1 # model small, około 466 MB .\build.ps1 -Model medium # dokładniejszy, większy
Wynik trafia do dist/:
holdtotype.exetray client: Go, WinAPI, WebView2
whisper-server.exerecognition, whisper.cpp, static build
sherpa-server.exerecognition, sherpa-onnx, official static build, pinned and checksum-verified
sherpa-online-server.exestreaming recognition, sherpa-onnx, from the same pinned archive
llama-server.exethe editor model for post-processing, llama.cpp
models/the model you chose at build time
config.default.jsondefault settings
Co robi potok
Kompilacja skrośna whisper.cpp i llama.cpp przez MinGW-w64 w kontenerze Linux, klient w Go z cgo do przechwytywania mikrofonu, generowanie ikon, pakowanie instalatora. Wszystko to jest w build/Dockerfile. Oba silniki są przypięte do konkretnych wersji, więc buildy pozostają powtarzalne.
Testy
Wszystko też działa w kontenerach, nic nie trzeba instalować:
docker build --file build/Dockerfile --target gotest . # testy jednostkowe Go i go vet, cel 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" # strona ustawień w jsdom
client/internal/...— testy jednostkowe części, które niosą logikę: porównywanie wersji, duplikaty skrótów, reguły dla aplikacji, zamiany, polecenia głosowe, historia, łańcuchy promptów, analiza dźwięku, skróty plików i plik list.test/ui.test.js— prawdziwa strona ustawień wyrenderowana w jsdom: przełączanie sekcji, macierz tłumaczenia, edytor promptów, reguły, zamiany, polecenia, historia, usuwanie modeli, kreator pierwszego uruchomienia i brak błędów JavaScript.test/locales.test.js— każdy z ośmiu języków zawiera każdy tekst, o który proszą strona i program.test/setup.test.js— strona instalatora: kroki, wybór modelu, ciche przełączniki.client/internal/theme— każdy wygląd zachowuje własną twarz, narożniki, znaczniki poziomu i lampki.
Potem uruchamiaj własny build zamiast pobranego. To ten sam program, zrobiony z tych samych źródeł.