Alpha · Windows

Voice2Text: диктовка, привязки и обработка через LLM Voice2Text: dictation, bindings and LLM processing

Voice2Text — отдельная программа Screph для диктовки и вставки текста в совместимое окно Windows. Распознанный текст можно проверить перед вставкой. Привязка может дополнительно снять выбранную область экрана, передать изображение и диктовку настроенной LLM и вставить преобразованный ответ. Voice2Text is a separate Screph application for dictation and text insertion into a compatible Windows target. Recognized text can be reviewed before insertion. A binding can also capture a selected screen region, send the image and dictation to a configured LLM, and insert the transformed response.

ВидеоVideo

Текущий архив Current archive

Voice2Text запускается файлом Voice2Text.exe из ZIP-архива, распакованного в отдельный каталог. Приложение работает из системного трея; отдельный установщик не требуется. Voice2Text runs from Voice2Text.exe in the ZIP archive after it is extracted to a separate directory. The app operates from the system tray; no separate installer is required.

Скачать текущий Alpha-архив Download the current Alpha archive

Что реализовано What is implemented

  1. Запись открывается из меню трея командой Start recording; команда Show widget показывает уже созданный виджет.Recording opens from the tray with Start recording; Show widget reveals an existing widget.
  2. Voice2Text распознаёт речь выбранным speech-provider и показывает текст для проверки. Ctrl+Enter завершает ввод, Esc закрывает или отменяет текущий виджет.Voice2Text transcribes speech with the selected speech provider and shows the text for review. Ctrl+Enter finishes input; Esc closes or cancels the current widget.
  3. Обычный результат отправляется в активное совместимое окно Windows. Это эмуляция ввода, а не универсальный API всех приложений; цели с другим уровнем привилегий или нестандартным редактором могут не принять текст.A normal result is sent to the active compatible Windows target. This is input simulation, not a universal API for every app; targets at another privilege level or with a custom editor may reject the text.
  4. Привязка запоминает целевое окно и точку. Перед вставкой приложение выполняет и проверяет реальный клик, foreground и принадлежность точки окну; если проверка не проходит, вставка прекращается.A binding remembers a target window and point. Before insertion the app performs and validates a real click, foreground state and point ownership; insertion stops if validation fails.
  5. Для привязки можно задать область снимка и LLM-профиль. Тогда в модель уходит изображение области вместе с продиктованным запросом, а в цель вставляется преобразованный ответ.A binding can define a capture region and an LLM profile. The region image and dictated request are then sent to the model, and the transformed response is inserted into the target.

Меню и настройки Menu and settings

ПоверхностьSurfaceТекущий контрактCurrent contract
Меню треяTray menuStart recording, Show widget, Bindings (управление и быстрая новая привязка), Settings, LLM history, Language, Exit.Start recording, Show widget, Bindings (management and quick new binding), Settings, LLM history, Language and Exit.
НастройкиSettingsApplication, Recognition, LLM, Screen Capture и Bindings; здесь же настраиваются автозапуск, поведение буфера обмена и сохранение истории.Application, Recognition, LLM, Screen Capture and Bindings, including autostart, clipboard behavior and history persistence.
ПривязкиBindingsНесколько кнопок/точек для одного окна, выбор области экрана, LLM-профиля и способа вставки.Multiple buttons or points for one window, plus screen-region, LLM-profile and insertion-method selection.
АвтозапускAutostartПри включении Voice2Text записывает команду в HKCU\Software\Microsoft\Windows\CurrentVersion\Run.When enabled, Voice2Text writes its command to HKCU\Software\Microsoft\Windows\CurrentVersion\Run.

Распознавание и сеть Recognition and network use

ProviderЧто делаетWhat it doesГраница данныхData boundary
VoskЛокальное потоковое распознавание; текущий ZIP уже содержит малую русскую модель.Local streaming recognition; the current ZIP already includes the small Russian model.Аудио не уходит в speech cloud. Другой язык или модель требуют отдельно указанных локальных файлов.Audio is not sent to a speech cloud. Another language or model requires separately supplied local files.
YandexОблачное распознавание речи.Cloud speech recognition.Аудио и параметры запроса передаются настроенному сервису Yandex.Audio and request parameters are sent to the configured Yandex service.
GoogleGoogle Cloud Speech через файл credentials.Google Cloud Speech using a credentials file.Аудио передаётся Google; в настройках хранится путь к credentials, сам файл остаётся по указанному пути.Audio is sent to Google; settings store the credentials path while the file remains at that path.
OpenAIОблачная транскрипция через настроенный API.Cloud transcription through the configured API.Аудио передаётся OpenAI-совместимому endpoint; ключи сохраняются через системное хранилище секретов.Audio is sent to the configured OpenAI-compatible endpoint; keys are stored through the system secret store.
LLM bindingПреобразует диктовку с необязательным снимком области.Transforms dictation with an optional region capture.Текст и выбранное изображение уходят provider профиля; включайте это только для данных, которые разрешено передавать ему.Text and the selected image go to the profile provider; enable this only for data you are allowed to send.

Локальные данные и история Local data and history

  • В packaged-запуске настройки, модели и включённая файловая LLM-история находятся в переносимом каталоге Voice2TextData рядом с приложением. VOICE2TEXT_CONFIG_DIR задаёт другой корень данных.In a packaged run, settings, models and enabled file-based LLM history live in the portable Voice2TextData directory beside the app. VOICE2TEXT_CONFIG_DIR selects another data root.
  • Привязки packaged-приложения сейчас являются исключением: они сохраняются в %APPDATA%\Voice2Text\bindings.json, а не в Voice2TextData.Packaged-app bindings are currently an exception: they are stored in %APPDATA%\Voice2Text\bindings.json, not in Voice2TextData.
  • Лог сначала создаётся рядом с executable как voice2text.log; если каталог недоступен для записи, используется %LOCALAPPDATA%\Voice2Text\logs.The log is first created beside the executable as voice2text.log; if that location is not writable, %LOCALAPPDATA%\Voice2Text\logs is used.
  • Ключи API сохраняются через keyring/Windows Credential Manager. Обычные настройки содержат endpoint, model и пути, но не должны содержать ключ в открытом виде.API keys are stored through keyring/Windows Credential Manager. Ordinary settings contain endpoint, model and paths, but should not contain a plaintext key.
  • LLM-история в памяти ограничена 200 записями. Запись prompt/response в файл выключена по умолчанию, включается пользователем и очищается из интерфейса.In-memory LLM history is limited to 200 entries. Persisting prompts and responses to a file is off by default, can be enabled by the user and can be cleared in the UI.
  • Опция постоянного копирования помещает распознанный или преобразованный текст в системный буфер обмена; учитывайте историю буфера Windows.The always-copy option places recognized or transformed text on the system clipboard; account for Windows clipboard history.

Системные требования System requirements

  • OS: Windows 10/11 x64.
  • Устройства: рабочий микрофон; для screen/target bindings — интерактивный Windows desktop.Devices: a working microphone; screen and target bindings require an interactive Windows desktop.
  • Офлайн: bundled Vosk-модель распознаёт русский локально. Облачные speech/LLM providers и их проверка требуют сети и собственных credentials.Offline: the bundled Vosk model recognizes Russian locally. Cloud speech and LLM providers and their checks require network access and your own credentials.
  • Дополнительный Python: новый standalone build не включает Torch, Transformers, Whisper и Librosa; при необходимости они подключаются через Voice2TextData\optional-python\site-packages и manifest optional dependencies.Optional Python: the new standalone build does not bundle Torch, Transformers, Whisper or Librosa; when needed they are supplied through Voice2TextData\optional-python\site-packages and the optional-dependencies manifest.