HoldToType

про програму

Хто це робить і з чого воно зроблене

Тут немає чорних скриньок. Це повний список того, що лежить в архіві: що робить кожна частина, коли вона працює і за якою ліцензією, включно з усіма моделями, які пропонує каталог.

Хто це робить

Я: Віталій Ємець, один розробник. Немає компанії, команди й інвесторів: одна людина пише програму, відповідає на issues і випускає релізи, усе відкрито на GitHub.

Я написав HoldToType для свого комп'ютера з Windows: хотів диктувати без підписки і так, щоб мій голос нікуди не йшов. Потім нею почали користуватися колеги, і тепер вона доступна всім. Вона безкоштовна і такою залишиться.

Якщо щось не так, напишіть мені: issue на GitHub або holdtotype@outlook.com.

Рушії

Кожен — окремий виконуваний файл поруч із застосунком. Програма запускає потрібний, розмовляє з ним через локальний порт і зупиняє через десять хвилин простою.

частинащо робить тутколи працюєліцензія
whisper.cpp

whisper-server.exe — запускає родину моделей Whisper та їхній режим перекладу англійською.

Поки мову, якою ви диктуєте, обслуговує модель Whisper.

MIT

sherpa-onnx

sherpa-server.exe і sherpa-online-server.exe — усе, що не Whisper, одним проходом або потоком під час мовлення.

Поки мову обслуговує модель sherpa або обрано потокову модель.

Apache 2.0

llama.cpp

llama-server.exe — модель-редактор, яка виконує ваші промпти після розпізнавання.

Лише поки увімкнена постобробка.

MIT

ggml

Тензорна математика всередині whisper.cpp і llama.cpp. Не окремий файл; вкомпільована в обидва.

Разом із рушієм, який її використовує.

MIT

ONNX Runtime

Запускає моделі всередині sherpa-onnx. Вкомпільований у виконувані файли sherpa.

Разом із sherpa.

MIT

Бібліотеки

Застосунок написано на Go. Це єдині зовнішні бібліотеки, якими він користується.

частинащо робить тутліцензія
go-webview2

Малює вікно налаштувань — це HTML-сторінка, яку відмальовує компонент WebView2, уже наявний у Windows.

MIT

go-winloader

Завантажує бібліотеки WebView2. Використовується go-webview2.

MIT

malgo / miniaudio

Знімає звук із мікрофона: зворотний виклик, що наповнює буфер, поки ви тримаєте клавіші.

Unlicense

gorilla/websocket

Websocket-зв'язок із потоковим розпізнавачем, який надсилає текст, поки ви ще говорите.

BSD-2

golang.org/x/sys

Виклики Windows API: перехоплення клавіатури, значок у треї, вікно смужки, об'єкти завдань для дочірніх процесів.

BSD-3

IBM Plex

Єдиний шрифт, яким набрано кожен дизайн; він вшитий у виконуваний файл, тож читається однаково на будь-якій машині.

OFL 1.1

WebView2 Runtime

Частина Windows, ми її не постачаємо. Саме вона й малює сторінку налаштувань.

Microsoft

Моделі

Моделі завантажуються на запит, із репозиторіїв нижче, і кожен файл перед використанням звіряється з опублікованим SHA-256. Жодна не постачається разом із програмою.

модельдля чоголіцензія
Whisper Base, Small, Medium, Turbo

Вибір за замовчуванням для будь-якої мови і моделі, на яких тримається переклад: англійською — їхнім власним завданням перекладу, іншими мовами — тим, що їм називають мову результату як мову мовлення. Квантовані збірки позначені q5.

MIT

GigaAM v3

Одномовна модель, сама розставляє розділові знаки. На фразі в 11 секунд їй знадобилося 0,47 с проти 11,6 с у Whisper Medium і 277 МБ пам'яті проти 814 МБ.

MIT

GigaAM v2

Попереднє покоління тієї самої моделі: та сама швидкість, але без розділових знаків.

MIT

Parakeet TDT 0.6B v3

25 європейських мов в одній вузькій моделі, знаки ставить сама.

CC-BY-4.0

Nemotron 3.5 Streaming

Друкує під час мовлення: шматки тексту на смужці, 40 мов, із розділовими знаками.

OpenMDW-1.1

Canary 180M Flash

Англійська, німецька, іспанська та французька — і перекладає між ними без Whisper.

CC-BY-4.0

Qwen3 ASR

Близько 30 мов, найважча і найточніша в каталозі.

Apache 2.0

Moonshine

Мала і швидка, на одну мову за раз і на скромному залізі.

MIT

Будь-яка модель-редактор GGUF

Постобробка запускає будь-яку GGUF-модель, яку ви вкажете; пошук і завантаження з Hugging Face є всередині програми.

за моделлю

Порти

Рушії — звичайні HTTP- та websocket-сервери, прив'язані до 127.0.0.1. З мережі вони недоступні, а запускати рушій на порту, який уже тримає інший процес, програма відмовляється.

портрушійпротоколпрацює, поки
8910

whisper-server

HTTP

мову обслуговує модель Whisper

8911

llama-server

HTTP, ключ сесії

увімкнено постобробку

8912

sherpa-server

HTTP

мову обслуговує модель sherpa

8913

sherpa-online-server

websocket

обрано потокову модель

Збірка відтворювана. Усе збирається в Docker із закріплених джерел: версії рушіїв зафіксовані в Dockerfile, реліз sherpa перевіряється за SHA-256, а на виході — ті самі два файли зі сторінки релізів. Увесь рецепт лежить у репозиторії.

Ліцензії

Сам HoldToType опубліковано під ліцензією MIT: користуйтеся, читайте, змінюйте, випускайте своє. Кожен рушій і бібліотека вище має власну дозвільну ліцензію, зазначену поруч.

Одне залишається на вас. Моделі-редактори, які ви самі знаходите через пошук Hugging Face, мають ту ліцензію, яку обрав їхній автор, і деякі з них обмежують комерційне використання.

Контакт

holdtotype@outlook.com для будь-яких питань. Issues на GitHub для проблем і побажань, там їх бачать і доповнюють інші. Програму також внесено на AlternativeTo.

Відкрити репозиторій