Локальный суфлёр для живого разговора. Слушает звук собеседника и ваш микрофон, распознаёт речь на месте (whisper.cpp) и показывает поверх экрана короткую подсказку — что можно сказать в ответ. Разговор пишется в сессию для последующего разбора.
Всё считается и хранится локально: на внешнюю сторону уходят только запросы к выбранной языковой модели.
- Прозрачный оверлей поверх любого приложения, своя попиксельная альфа.
- Распознавание речи на месте, отдельно по двум каналам (собеседник / вы).
- Автоматический режим: реплики распознаются и уходят в модель сами; ставится на паузу, не прерывая записи.
- Явные начало и конец сессии: звук (стерео) и построчный журнал ложатся в
sessions/<id>/вместе со снимком настроекmeta.json. - Переразбор записанных сессий текущими настройками — для подбора порогов
распознавания и нарезки офлайн (
examples/разбор.rs). - Оценка «подсказка мимо» — единственная разметка качества в записи.
- Различение голосов собеседников, глоссарий терминов как затравка для распознавания, сверка произнесённого вслух с подсказкой.
- Rust (stable), MSVC toolchain.
- LLVM / libclang — для
bindgenвwhisper-rs-sys. - CMake — для сборки
whisper.cpp. - Vulkan SDK — бэкенд ggml для распознавания на видеокарте.
Пути к этим инструментам задаются в .cargo/config.toml. Скопируйте образец и
поправьте под свою машину:
copy .cargo\config.example.toml .cargo\config.toml
Из-за предела MAX_PATH в 260 символов каталог сборки вынесен в короткий путь
(target-dir = "C:/gt"); при желании то же самое задаётся переменной
CARGO_TARGET_DIR.
cargo build --release
или build.cmd — он же снимает запущенный процесс и обновляет ghost.exe
рядом с репозиторием.
Перед первым запуском:
copy .env.example .envи впишитеROUTERAI_KEY— ключ доступа к провайдеру модели.- Положите модели в
models/(в репозиторий они не входят):ggml-large-v3-turbo-q5_0.bin— whisper (whisper.cpp / Hugging Face);spk-resnet34.onnx— различение голосов (необязательно, без неё оно просто выключается).
- При первом запуске рядом появится
config.tomlсо значениями по умолчанию (образец —config.example.toml). Правьте руками или в окне настроек.
cargo run --release --example разбор -- sessions/<id>
Прогоняет обе дорожки записи тем же распознаванием и нарезкой, что и вживую, но с текущими настройками — чтобы подбирать пороги на уже случившихся разговорах, а не на следующем живом.
cargo test --release
Названия тестов — предложения на русском: отчёт читается как список зафиксированного поведения. Подробнее — в TESTS.md.
Сборка релиза под Windows собирается автоматически при пуше тега вида v1.2.3
(см. .github/workflows/release.yml). Готовый ghost.exe прикладывается к
GitHub Release. Модели в сборку не входят — их нужно положить в models/
отдельно.