HoldToType

o programie

Kto to robi i z czego jest zbudowany

Nie ma tu czarnych skrzynek. To pełna lista tego, co leży w archiwum: co robi każdy element, kiedy działa i na jakiej licencji, wraz z każdym modelem, który oferuje katalog.

Kto to robi

Ja: Vitalii Yemets, jeden programista. Nie ma firmy, zespołu ani inwestorów: jedna osoba pisze program, odpowiada na zgłoszenia i wydaje wersje, wszystko na widoku na GitHubie.

Napisałem HoldToType na własny komputer z Windows: chciałem dyktować bez subskrypcji i bez tego, żeby mój głos gdziekolwiek trafiał. Potem zaczęli z niego korzystać moi koledzy, a teraz jest dostępny dla wszystkich. Jest darmowy i taki pozostanie.

Jeśli coś jest nie tak, napisz do mnie: zgłoszenie na GitHubie albo holdtotype@outlook.com.

Silniki

Każdy to osobny plik wykonywalny obok aplikacji. Program uruchamia ten, który jest potrzebny, rozmawia z nim po lokalnym porcie i zatrzymuje po dziesięciu minutach bezczynności.

częśćco tu robikiedy działalicencja
whisper.cpp

whisper-server.exe — prowadzi rodzinę modeli Whisper i ich tryb tłumaczenia na angielski.

Dopóki język, w którym dyktujesz, obsługuje model Whisper.

MIT

sherpa-onnx

sherpa-server.exe i sherpa-online-server.exe — wszystko, co nie jest Whisperem, jednym przebiegiem albo strumieniowo w trakcie mówienia.

Dopóki język obsługuje model sherpa albo wybrany jest model strumieniowy.

Apache 2.0

llama.cpp

llama-server.exe — model redagujący, który wykonuje twoje prompty po rozpoznaniu.

Tylko dopóki włączona jest obróbka.

MIT

ggml

Matematyka tensorowa wewnątrz whisper.cpp i llama.cpp. Nie osobny plik; wkompilowana w oba.

Razem z silnikiem, który jej używa.

MIT

ONNX Runtime

Uruchamia modele wewnątrz sherpa-onnx. Wkompilowany w pliki wykonywalne sherpy.

Razem z sherpą.

MIT

Biblioteki

Aplikacja napisana jest w Go. To jedyne zewnętrzne biblioteki, z których korzysta.

częśćco tu robilicencja
go-webview2

Rysuje okno ustawień, które jest stroną HTML wyświetlaną przez składnik WebView2, obecny już w Windows.

MIT

go-winloader

Ładuje biblioteki WebView2. Używa jej go-webview2.

MIT

malgo / miniaudio

Przechwytuje mikrofon: wywołanie dźwiękowe, które napełnia bufor, dopóki trzymasz klawisze.

Unlicense

gorilla/websocket

Połączenie websocket z rozpoznawaniem strumieniowym, które odsyła tekst, gdy jeszcze mówisz.

BSD-2

golang.org/x/sys

Wywołania API Windows: zaczep klawiatury, ikona w zasobniku, okno paska, obiekty zadań dla procesów potomnych.

BSD-3

IBM Plex

Jedyny krój, którym złożony jest każdy wygląd, wbudowany w plik wykonywalny, żeby czytał się tak samo na każdej maszynie.

OFL 1.1

WebView2 Runtime

Część Windows, nie dostarczamy jej my. To ona faktycznie maluje stronę ustawień.

Microsoft

Modele

Modele pobiera się na żądanie, z repozytoriów poniżej, a każdy plik porównuje się z opublikowanym SHA-256 przed użyciem. Żaden nie jest dołączony do programu.

modeldo czegolicencja
Whisper Base, Small, Medium, Turbo

Domyślny wybór dla każdego języka i modele, na których stoi tłumaczenie: na angielski własnym zadaniem tłumaczenia, na pozostałe języki przez powiedzenie im, że mowa jest już w języku docelowym. Wersje kwantyzowane oznaczone są q5.

MIT

GigaAM v3

Model jednojęzyczny, który sam stawia znaki interpunkcyjne. Na zdaniu 11-sekundowym zajęło mu to 0,47 s wobec 11,6 s u Whisper Medium, przy 277 MB pamięci wobec 814 MB.

MIT

GigaAM v2

Poprzednie pokolenie tego samego modelu: ta sama szybkość, bez interpunkcji.

MIT

Parakeet TDT 0.6B v3

25 języków europejskich w jednym wąskim modelu, interpunkcję stawia sam.

CC-BY-4.0

Nemotron 3.5 Streaming

Pisze w trakcie mówienia: fragmenty tekstu na pasku, 40 języków, z interpunkcją.

OpenMDW-1.1

Canary 180M Flash

Angielski, niemiecki, hiszpański i francuski — i tłumaczy między nimi bez Whispera.

CC-BY-4.0

Qwen3 ASR

Około 30 języków, najcięższy i najdokładniejszy w katalogu.

Apache 2.0

Moonshine

Mały i szybki, na jeden język naraz i na skromny sprzęt.

MIT

Dowolny model redaktora GGUF

Obróbka uruchamia dowolny model GGUF, który jej wskażesz; wyszukiwanie i pobieranie z Hugging Face jest w programie.

wg modelu

Porty

Silniki to zwykłe serwery HTTP i websocket przywiązane do 127.0.0.1. Z sieci są nieosiągalne, a uruchomienia silnika na porcie, który trzyma już inny proces, program odmawia.

portsilnikprotokółdziała, gdy
8910

whisper-server

HTTP

język obsługuje model Whisper

8911

llama-server

HTTP, klucz sesji

włączona jest obróbka końcowa

8912

sherpa-server

HTTP

język obsługuje model sherpa

8913

sherpa-online-server

websocket

wybrany jest model strumieniowy

Budowanie jest odtwarzalne. Wszystko kompiluje się w Dockerze z ustalonych źródeł: wersje silników są zapisane w Dockerfile, wydanie sherpy sprawdza się po SHA-256, a wynikiem są te dwa pliki ze strony wydań. Cały przepis leży w repozytorium.

Licencje

Sam HoldToType jest opublikowany na licencji MIT: używaj, czytaj, zmieniaj, wydawaj własne. Każdy silnik i biblioteka powyżej ma własną liberalną licencję, podaną obok.

Jedno zostaje po twojej stronie. Modele redaktora, które sam znajdziesz przez wyszukiwarkę Hugging Face, mają licencję wybraną przez ich autora, a niektóre z nich ograniczają użycie komercyjne.

Kontakt

holdtotype@outlook.com w każdej sprawie. Zgłoszenia na GitHubie do problemów i próśb, gdzie inni mogą je zobaczyć i dopisać. Program jest też wpisany na AlternativeTo.

Otwórz repozytorium