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.

Открыть репозиторий