Перейти до змісту

Ця сторінка описує Dictum 0.5.

Розв'язання проблем

Коли щось не працює, почніть із dictum doctor або зі сторінки Налаштування → Система у програмі для робочого столу. Обидва варіанти виконують ті самі перевірки, по рядку на кожну частину Dictum. Знайдіть рядок, який не «OK», і прочитайте відповідний розділ нижче.

Запуск dictum doctor

У програмі для робочого столу: відкрийте Налаштування з меню трею, потім Система. Перевірки запускаються щоразу, коли відкривається ця сторінка. Кнопка Перевірити ще раз запускає їх знову.

У терміналі:

dictum.exe немає в PATH. У PowerShell запускайте його за повним шляхом:

& "$env:LOCALAPPDATA\Programs\Dictum\dictum.exe" doctor

Якщо ви не встановлювали MSI, а розпакували архів, укажіть теку, куди його розпакували, наприклад & "C:\Tools\Dictum\dictum.exe" doctor.

dictum doctor

В AppImage допишіть dictum після імені файла:

./dictum-0.5.1-linux-x64.AppImage dictum doctor

Кожен рядок починається з OK, WARN або ERR, далі йдуть назва перевірки й те, що вона знайшла. Під рядком, який не «OK», є ще два: після → — що зробити, після see: — посилання на його розділ цієї сторінки. Посилання веде на сторінку мовою, яку задає поле Мова інтерфейсу в Налаштування → Загальні. Якщо там вибрано Як у системі, це українська в українській системі й англійська в будь-якій іншій. Перший рядок виводу називає версію Dictum і вашу систему. Ось частина виводу у Windows:

  OK config                 C:\Users\you\AppData\Roaming\Dictum\config.json (1 STT, 1 processors, 1 profiles)
WARN config warnings        1 warning(s)
                            → processors.cleanup: no profile's pipeline runs it, so dictation never uses it
                            see: https://docs.sigil.build/uk/dictum/troubleshooting/#config-warnings
  OK models                 C:\Users\you\AppData\Local\Dictum\models (1 configured file(s) present)
  OK gpu                    NVIDIA GeForce RTX 3060, 12.0 GB VRAM
  OK audio library          PortAudio V19.7.0-devel, revision … (bundled portaudio.dll)
  OK microphone             Microphone (USB Audio Device) (Windows WASAPI, 48000 Hz); 2 input device(s)
  OK hotkeys                low-level keyboard hook (SharpHook)
  OK paste                  Win32 clipboard + SendInput
  OK secrets                Windows Credential Manager
  OK daemon                 running (pid 8412), Idle; 1 hotkey(s) registered via low-level keyboard hook (SharpHook)
  OK stt:local              ggml-large-v3-turbo-q8_0.bin, runtime Vulkan on NVIDIA GeForce RTX 3060 (DiscreteGpu)
  OK processor:cleanup      http://localhost:8080/v1 reachable, model qwen3-4b, prompt 'cleanup'

dictum doctor завершується з кодом 1, якщо хоч один рядок — ERR, інакше з кодом 0. dictum doctor --json виводить ті самі рядки у JSON, де level має значення ok, warning або error, а docs — посилання для кожного рядка, який не «OK». Кожна перевірка постачальника може тривати до 15 секунд, тож команда іноді працює довго.

Сторінка Налаштування → Система показує ті самі рядки: позначку (Гаразд, Попередження або Помилка), назву перевірки вашою мовою, що знайдено і що зробити. Самі тексти перевірок англійською — і в програмі, і в терміналі. Сторінка додає два власні рядки: Індикатор диктування і Значок у треї. Під станом кожного з інших рядків, який не «Гаразд», є посилання Як виправити: воно відкриває в браузері розділ цієї сторінки для цього рядка — той самий і тією самою мовою, що й посилання після see:. Саму сторінку описано в довіднику налаштувань.

Знайдіть свій рядок тут:

dictum doctor Налаштування → Система Розділ
config Файл конфігурації Файл конфігурації
config warnings Попередження конфігурації Попередження конфігурації
models Файли моделей Файли моделей
audio library, microphone Аудіобібліотека, Мікрофон Мікрофон
hotkeys Глобальна гаряча клавіша Гарячі клавіші
paste, paste (portal), paste (ydotool), paste order, clipboard, active window Вставлення, Вставлення (портал), Вставлення (ydotool), Порядок вставлення, Буфер обміну, Активне вікно Вставлення
elevation Права адміністратора Права адміністратора
secrets Сховище секретів API-ключі та сховище ключів
session, platform Сеанс робочого столу, Платформа Сеанс робочого столу
daemon Демон Демон
gpu, stt:<id> Відеокарта, Розпізнавання мовлення <id> Розпізнавання мовлення
processor:<id> Обробник <id> Чищення тексту мовною моделлю
— Значок у треї Немає значка в треї
— Індикатор диктування Немає індикатора

Деякі проблеми не видно в жодному рядку: слова, що виходять перекладеними, і SmartScreen у Windows. Якщо тут нічого не допомогло, подивіться журнали.

Файл конфігурації

Рядок config (Файл конфігурації) читає config.json: у Windows це %APPDATA%\Dictum\config.json, у Linux — ~/.config/dictum/config.json.

No config at … → Run 'dictum init'.
Dictum ще не налаштовано. Запустіть програму для робочого столу: її майстер налаштування проведе вас крок за кроком. У терміналі виконайте dictum init.
Config is invalid: … → Fix the file, then run 'dictum config validate'.
У файлі є помилки. Рядок перелічує кожну з місцем у файлі, наприклад profiles[0].hotkey: … або processors.cleanup.baseUrl: '…' is not an absolute http(s) URL.
Config is not valid JSON for Dictum: …
Файл — не коректний JSON, зазвичай після ручного редагування. Рядок називає номер рядка у файлі, як-от line 12: ….
Config schema version 2 is newer than this build supports (1). Update Dictum.
Цей файл записала новіша версія Dictum. Установіть її знову.

«Налаштування» і майстер налаштування завжди записують коректний файл, тож такі помилки з'являються після ручних змін. Щоб виправити:

  1. Відкрийте файл у редакторі командою dictum config edit або виведіть його шлях командою dictum config path.
  2. Виправте рядок, який називає помилка, і збережіть файл.
  3. Виконайте dictum config validate. Для коректного файла команда виведе OK: …, а кожне попередження — окремим рядком.

Поки демон працює, він перечитує файл після кожного збереження. Файл із помилками не застосовується: демон і далі працює з попередніми налаштуваннями, а в Linux показує сповіщення «Dictum: config not applied».

Попередження конфігурації

Рядок config warnings (Попередження конфігурації) з'являється, лише коли у файлі є попередження. Dictum із ними працює, але щось робитиме не те, на що ви очікуєте. Рядок показує їхню кількість, а другий рядок перелічує їх через ;. dictum config validate виводить їх по одному в рядку.

Попередження Що зробити
processors.<id>: no profile's pipeline runs it, so dictation never uses it Див. Обробник, якого немає в жодному профілі.
profiles[0].language: 'uk' and 'ru' sound alike to Whisper; with both in the list it may pick the wrong one. Keep only the languages you dictate in. Приберіть мову, якою не диктуєте, або винесіть її в окремий профіль. Див. Слова виходять перекладеними.
profiles[0].language: '<provider>' takes a single language, so with a list the server gets the first language, '<code>' Сервер розпізнавання приймає одну мову. Залиште в цьому профілі одну мову або зробіть по профілю на кожну.
profiles[0].vocabulary: a word list can pull language detection towards its own language; set 'language' for this profile У Налаштування → Профілі в рядку Мови виберіть Одна або Кілька замість Авто.
profiles[0].vocabulary: the speech hint holds 400 characters; left out: … Ваші слова разом із підказкою для розпізнавання не вміщаються в те, що читає Whisper. Скоротіть список; названі слова не ввійшли.
profiles[0].vocabulary[3]: '…' is listed twice Приберіть повтор.
profiles[0].output: typing is not supported, and the profile pastes instead; use "paste" or "clipboard" Попередні версії Dictum дозволяли профілю набирати текст посимвольно, але це ніколи не працювало. Такий профіль тепер вставляє текст. Щоб попередження зникло, змініть будь-що в цьому профілі в Налаштування → Профілі, і Dictum збереже його з Вставити в активну програму, або виконайте dictum config edit і напишіть для цього профілю "output": "paste".
processors.<id>.rules[0].pattern: contains a backspace character: … У JSON "\b" — це символ backspace. Для межі слова пишіть "\\b".
stt.<id>.apiKey: API key is stored in plain text; use 'env:VAR' or 'secret:name' instead (або processors.<id>.apiKey) Введіть ключ ще раз у «Налаштуваннях», і Dictum перенесе його до сховища ключів. Див. API-ключі та сховище ключів.
general.historySize: is above 5000, the most Settings offers «Налаштування» показують щонайбільше 5000. Зменште число в рядку Історія на сторінці Налаштування → Загальні.

Обробник, якого немає в жодному профілі

Обробник, наприклад запит до LLM чи набір правил заміни, працює лише в тих профілях, чий ланцюжок обробки його містить. Обробник, якого не запускає жоден профіль, нічого не робить, і doctor попереджає:

WARN config warnings        1 warning(s)
                            → processors.cleanup: no profile's pipeline runs it, so dictation never uses it
                            see: https://docs.sigil.build/uk/dictum/troubleshooting/#config-warnings

У Налаштування → Обробники такий обробник у списку позначено як Не в жодному профілі. Коли ви його відкриєте, сторінка скаже: «Цей обробник не входить у жоден профіль, тож диктування ніколи його не використовує.»

Щоб він запрацював:

  1. Відкрийте Налаштування → Обробники і виберіть обробник.
  2. Натисніть Додати до профілю… і виберіть профіль.

Або відкрийте Налаштування → Профілі, виберіть профіль і в розділі Ланцюжок обробки натисніть Додати крок. У config.json допишіть ідентифікатор обробника до pipeline профілю, наприклад "pipeline": ["cleanup"].

Якщо обробник не потрібен, виберіть його й натисніть Прибрати обробник.

Файли моделей

Рядок models (Файли моделей) перевіряє, чи файли моделей мовлення, які використовують ваші постачальники, лежать у теці моделей: у Windows це %LOCALAPPDATA%\Dictum\models, у Linux — ~/.local/share/dictum/models.

Missing in …: ggml-large-v3-turbo-q8_0.bin → Run 'dictum models pull whisper-large-v3-turbo-q8'.
Файла немає: завантаження не завершилося або файл видалили. Завантажте його в Налаштування → Моделі або виконайте команду з рядка. dictum models list показує, які моделі встановлено.
Missing in …: … → Run 'dictum init', or copy the files there.
Конфігурація називає файл, якого немає в каталозі Dictum, тож Dictum не може його завантажити. Скопіюйте файл у теку моделей або виберіть модель із каталогу в Налаштування → Моделі чи через dictum init.

Завантаження продовжується з місця, де зупинилося, а файл стає до роботи, лише коли його SHA-256 збігається з каталогом. Якщо не збігається, Dictum видаляє завантажене й пише … failed the integrity check (SHA-256 …, expected …). The download was deleted; run the command again. Запустіть ще раз. Якщо помилка повторюється щоразу, перевірте, чи ніщо у вашій мережі, наприклад проксі, не змінює завантажень.

Мікрофон

Рядок audio library (Аудіобібліотека) завантажує PortAudio — бібліотеку, якою Dictum записує звук. Рядок microphone (Мікрофон) називає типовий мікрофон системи й рахує решту.

PortAudio could not be loaded: …
У Linux установіть системний пакет; команду дає другий рядок: sudo pacman -S portaudio (Arch), sudo apt install libportaudio2 (Debian, Ubuntu) або sudo dnf install portaudio (Fedora). У Windows перевстановіть Dictum: portaudio.dll має лежати поруч із dictum.exe.
No microphone found → Connect one, or check that the OS allows microphone access.
Dictum не бачить жодного пристрою введення.
Replaced by DICTUM_AUDIO_FILE=…
Змінна середовища DICTUM_AUDIO_FILE змушує Dictum читати файл замість мікрофона. Приберіть її.

Якщо рядок «OK», але диктування нічого не чує або чує не те:

  1. Відкрийте Налаштування → Загальні. Поле Мікрофон показує той, з якого записує Dictum, і він може відрізнятися від типового в системі. Виберіть потрібний.
  2. Скажіть щось і стежте за індикатором рівня під полем Мікрофон: зелений — добре, червоний — перевантаження. dictum devices перелічує мікрофони за назвами.
  3. У Windows відкрийте параметри Windows → «Конфіденційність і захист» → «Мікрофон» і перевірте, що доступ до мікрофона, зокрема для класичних програм, увімкнено.
  4. Щоб почути те, що чує Dictum, запишіть пробний файл і прослухайте його: dictum record --save-audio test.wav. Enter зупиняє запис.

Гарячі клавіші

Рядок hotkeys (Глобальна гаряча клавіша) називає, як Dictum стежить за гарячими клавішами:

  • low-level keyboard hook (SharpHook) у Windows;
  • X11 XRecord hook (SharpHook) в X11;
  • org.freedesktop.portal.GlobalShortcuts v1, портал гарячих клавіш робочого столу, у Wayland.

У Windows і X11 рядок лише називає перехоплювач клавіатури. Чи зареєструвалася кожна гаряча клавіша, видно в іншому місці: у рядку daemon (… 1 hotkey(s) registered via …), у dictum status (registered або NOT registered для кожного профілю) і в Налаштування → Профілі, де під клавішею, яку не вдалося зареєструвати, написано «Демон не зміг зареєструвати цю гарячу клавішу; можливо, її вже використовує інша програма.»

Якщо гаряча клавіша нічого не робить:

  1. Відкрийте меню трею. Якщо там є пункт Відновити гарячі клавіші, їх призупинено: натисніть його. Поки клавіші призупинено, підказка значка в треї — «Dictum · Гарячі клавіші призупинено».
  2. Перевірте Гаряча клавіша профілю в Налаштування → Профілі. Можливо, ту саму комбінацію використовує інша програма: клацніть поле й натисніть іншу.
  3. Виконайте dictum status і прочитайте рядок свого профілю, а також рядок warning: під ним, якщо він є.

Windows і X11

The keyboard hook failed to start: …
В X11 перехоплювачу потрібні glibc 2.38 або новіша (Ubuntu 24.04, Fedora 39, актуальний Arch) і бібліотеки libXtst, libXt, libXrandr та libxkbcommon: sudo apt install libxtst6 libxt6 libxrandr2 libxkbcommon0. Інакше призначте dictum toggle у налаштуваннях клавіш робочого столу, як описано нижче для Wayland.
The keyboard hook did not start in time.
Перезапустіть демон: вийдіть із Dictum через меню трею і запустіть його знову.
The previous keyboard hook has not stopped yet.
Dictum знімає перехоплювач клавіатури, поки гарячі клавіші призупинено або жоден профіль не має гарячої клавіші. Цього разу старий перехоплювач не зупинився за дві секунди, і Dictum не ставить другий поруч із ним. Щоб спробувати знову, натисніть у меню трею Призупинити всі гарячі клавіші, а потім Відновити гарячі клавіші. Якщо повідомлення з'явиться знову, перезапустіть демон: вийдіть із Dictum через меню трею і запустіть його знову.

У Windows Dictum не пропускає свою гарячу клавішу до програми, в якій ви пишете. В X11 програма теж отримує ці клавіші, тож виберіть комбінацію, якої вона не використовує.

Wayland: портал гарячих клавіш

У Wayland програма не бачить клавіш, які ви натискаєте в інших програмах. Dictum просить свої гарячі клавіші в порталу GlobalShortcuts робочого столу, а робочий стіл повідомляє, коли їх натиснуто й відпущено, тож режим «тримати, поки говорите» працює. Ваша гаряча клавіша — лише побажання: робочий стіл один раз просить її підтвердити і може призначити іншу клавішу або жодної.

  • KDE Plasma 6: під час першого запуску Dictum з'являється діалог. Погодьтеся. Щоб змінити чи призначити клавішу пізніше, відкрийте «Системні параметри» → «Скорочення» (System Settings → Shortcuts) і знайдіть Dictum. Якщо ви закрили діалог, Dictum напише Binding the shortcuts was cancelled in the desktop dialog. Вийдіть із Dictum і запустіть його знову, щоб діалог з'явився ще раз.
  • GNOME 48 і новіші: у GNOME є цей портал, і він питає так само.
  • Старіші GNOME (як-от GNOME 46 в Ubuntu 24.04) і композитори без порталу: рядок пише org.freedesktop.portal.GlobalShortcuts is not available. Призначте в налаштуваннях клавіш робочого столу клавішу, що запускає dictum toggle: перше натискання починає диктування, друге — зупиняє й вставляє текст. У GNOME це «Параметри» → «Клавіатура» → власні скорочення (Settings → Keyboard → View and Customize Shortcuts → Custom Shortcuts). Указуйте команду з повним шляхом, наприклад /home/you/.local/bin/dictum toggle для архіву tar.gz або /home/you/Apps/dictum-0.5.1-linux-x64.AppImage dictum toggle для AppImage.
  • Sway та інші композитори з власними прив'язками клавіш: прив'яжіть dictum start до натискання і dictum stop до відпускання, щоб працювало утримання:

    bindsym --no-repeat Ctrl+Alt+space exec dictum start
    bindsym --release Ctrl+Alt+space exec dictum stop
    
No D-Bus session bus: …
Dictum працює поза сеансом вашого робочого столу. Див. Сеанс робочого столу.

У журналі видно, яку клавішу робочий стіл дав кожному профілю, у рядку на зразок Portal bound 'dictate' to Ctrl+Alt+Space. (not set) замість клавіші означає, що робочий стіл її не повідомив. Див. Журнали.

Вставлення

Dictum кладе текст у буфер обміну, сам натискає Ctrl+V, а потім повертає в буфер те, що там було. Ці рядки перевіряють кожен крок:

Рядок Сторінка «Система» Що перевіряє
paste Вставлення Windows: буфер обміну й натискання клавіш (Win32 clipboard + SendInput).
clipboard Буфер обміну Linux: інструмент для буфера обміну.
active window Активне вікно X11: xprop, з якого Dictum дізнається, що активний термінал.
paste (portal) Вставлення (портал) Wayland: портал RemoteDesktop, що натискає Ctrl+V.
paste (ydotool) Вставлення (ydotool) Wayland: ydotoold, запасний спосіб.
paste order Порядок вставлення Wayland: способи, які Dictum пробує по черзі, як-от RemoteDesktop portal → ydotool.

Якщо вставити не вдалося, розпізнаний текст лишається в пункті Історія меню трею, якщо історію не вимкнено: скопіюйте його звідти.

Dictum не набирає текст посимвольно. Профіль, у якого в config.json досі стоїть "output": "type" з попередньої версії, вставляє текст, а рядок попереджень конфігурації його називає.

Інструменти буфера обміну в Linux

Dictum працює з буфером обміну через програми командного рядка: wl-clipboard (wl-copy, wl-paste) у Wayland, xclip або xsel в X11.

wl-clipboard not found → Install wl-clipboard: 'sudo pacman -S wl-clipboard' or 'sudo apt install wl-clipboard'.
Без нього диктування завершується помилкою wl-clipboard is not installed.
xclip not found → Install xclip: 'sudo pacman -S xclip' or 'sudo apt install xclip'.
xsel теж підходить.
xprop not found → Install xprop (package xorg-xprop / x11-utils) so terminals get Ctrl+Shift+V.
Без нього Dictum вставляє в термінали теж через Ctrl+V.

Dictum шукає ці програми, коли запускається демон. Установивши потрібну, вийдіть із Dictum через меню трею і запустіть його знову.

Ctrl+V у Wayland

У Wayland Dictum натискає Ctrl+V одним із трьох способів і лишається з першим, що спрацював:

  • Портал RemoteDesktop. Робочий стіл один раз питає, чи можна Dictum керувати клавіатурою. Дозвольте. Dictum зберігає токен, щоб не питати знову: remote-desktop.token у ~/.local/share/dictum. Якщо ви відмовили, Dictum напише Keyboard control was not allowed in the desktop dialog. Вийдіть із Dictum і запустіть його знову — і вас запитають ще раз. Видалення цього файла, поки Dictum не працює, теж змушує робочий стіл запитати знову.
  • ydotool. Йому потрібен запущений ydotoold із доступом до /dev/uinput. Установіть його й запустіть службу: sudo pacman -S ydotool, потім systemctl --user enable --now ydotool. Доти рядок paste (ydotool) попереджає ydotoold not running (optional fallback). Поки працює портал, на це попередження можна не зважати.
  • wtype у Hyprland і Sway — там Dictum пробує його першим.

Щоб вибрати спосіб, відкрийте Налаштування → Загальні → Налаштування вставлення › і задайте Спосіб вставлення у Wayland. Автоматично пробує способи по черзі й лишає перший, що спрацював: у Sway та Hyprland — wtype, потім ydotool, потім портал робочого столу; деінде, зокрема в GNOME і KDE Plasma, — портал робочого столу, потім ydotool.

Коли не працює жоден, диктування завершується помилкою No way to send Ctrl+V; the text is on the clipboard. Вставте текст самі через Ctrl+V.

Термінали

Термінали вставляють через Ctrl+Shift+V. У Windows і X11 Dictum бачить активну програму й для програм зі списку Термінали (Налаштування → Загальні → Налаштування вставлення ›) натискає Ctrl+Shift+V. Якщо вашого термінала там немає, допишіть назву його процесу або класу вікна.

У Wayland Dictum не бачить, яка програма активна. Створіть для термінала окремий профіль і в Налаштування → Профілі задайте йому Комбінація вставлення Ctrl+Shift+V.

Вставляється старий текст

Dictum повертає в буфер попередній текст через 150 мс після натискання Ctrl+V. Повільна програма може прочитати буфер пізніше й вставити старий текст. Збільште Затримка відновлення буфера, мс у Налаштування → Загальні → Налаштування вставлення ›, наприклад до 500. Найбільше значення — 5000.

Права адміністратора

У Windows рядок elevation (Права адміністратора) з'являється, лише коли Dictum працює від імені адміністратора:

Running as administrator → Dictum needs administrator rights only to paste into apps that run as administrator; if you do not dictate into such apps, start it as a normal user.
Dictum установлюється для вашого користувача, і для всього іншого права адміністратора йому не потрібні. Якщо ви не диктуєте в такі програми, вийдіть із Dictum і запустіть його звичайним способом, з меню «Пуск». Запускати Dictum під час входу в систему завжди запускає його від звичайного користувача.

Windows дає програмі натискати клавіші лише в програмах з такими самими або меншими правами. Від імені адміністратора Dictum вставляє текст у будь-яку програму, зокрема й запущену від імені адміністратора. Від звичайного користувача він не може вставити текст у програму, запущену від імені адміністратора, наприклад у термінал, відкритий через «Запуск від імені адміністратора»: туди нічого не вставиться, а гарячі клавіші Dictum не діють, поки така програма активна. Скопіюйте текст з пункту Історія меню трею і вставте його самі через Ctrl+V.

API-ключі та сховище ключів

API-ключ сервера може бути в конфігурації трьома способами: secret:<name> — ключ у системному сховищі ключів; env:<VAR> — ключ зі змінної середовища; або сам ключ відкритим текстом, про що Dictum попереджає. Коли ви вводите ключ у «Налаштуваннях» чи в майстрі налаштування, Dictum кладе його до сховища ключів і записує в конфігурацію secret:<name>.

Рядок secrets (Сховище секретів) показує Windows Credential Manager. Ключі Dictum — це загальні облікові дані з назвами dictum:<name> у «Панель керування» → «Диспетчер облікових даних» → «Облікові дані Windows».

Рядка secrets немає. Відсутнє чи заблоковане сховище видно в рядку постачальника або обробника, якому потрібен ключ, і в «Налаштуваннях», коли ви зберігаєте ключ («Не вдалося зберегти ключ: …»). Dictum використовує Secret Service: GNOME Keyring або KWallet.

Ось що означають ці тексти:

Secret '<name>' is not in the OS secret store.
Конфігурація називає ключ, якого немає у сховищі. Введіть ключ ще раз у «Налаштуваннях» або збережіть його командою dictum secret set <name>. dictum secret check <name> каже, чи ключ є, не показуючи його.
Secret '<name>' cannot be read from the OS secret store: …
Диспетчер облікових даних або сховище ключів не змогли відповісти, а решта тексту каже чому. Поки воно не відповідає, обробник, якому потрібен ключ, поводиться так, як задано в Якщо сервер не відповів, — як і тоді, коли ключа немає у сховищі.
No Secret Service is running (KWallet or GNOME Keyring); use 'env:VAR' for API keys instead.
Установіть і запустіть GNOME Keyring або KWallet, або покладіть ключ у змінну середовища й запишіть у поле env:<VAR>.
The Secret Service (KWallet or GNOME Keyring) cannot be reached over the D-Bus session bus: …; use 'env:VAR' for API keys instead.
Dictum працює поза сеансом вашого робочого столу, наприклад через SSH або як служба, де до сховища ключів не дістатися. Запустіть Dictum із сеансу робочого столу (див. Сеанс робочого столу) або покладіть ключ у змінну середовища й запишіть у поле env:<VAR>.
The keyring prompt was dismissed.
Сховище попросило його розблокувати, а діалог закрили. Спробуйте ще раз і розблокуйте.
Environment variable '<VAR>' is not set.
Задайте змінну там, звідки запускається Dictum. Демон, якого запускає програма для робочого столу, отримує її середовище.
… rejected the API key → Check the apiKey reference in the config.
Сервер отримав ключ і відхилив його. Перевірте ключ у постачальника сервера, потім введіть його ще раз.

Сеанс робочого столу

У Linux рядок session (Сеанс робочого столу) називає тип сеансу й робочий стіл, наприклад Wayland, KDE або X11, GNOME. Від нього залежать способи, якими Dictum ловить гарячі клавіші й вставляє текст.

No graphical session found (neither WAYLAND_DISPLAY nor DISPLAY is set).
Рядок platform (Платформа). Dictum працює поза сеансом робочого столу: через SSH, у текстовій консолі або як служба, що не отримує середовища сеансу. Гарячі клавіші й вставлення там не працюють. Запускайте Dictum зі свого сеансу робочого столу. Щоб він запускався під час входу, увімкніть Запускати Dictum під час входу в систему в Налаштування → Загальні або виконайте dictum daemon --install-autostart.

Немає значка в треї

Рядок Значок у треї на сторінці Налаштування → Система:

На цьому робочому столі немає трею
GNOME показує значки в треї лише з розширенням. Установіть «AppIndicator and KStatusNotifierItem Support» і запустіть Dictum знову.
Сховано серед прихованих значків
Значок показує, чи Dictum записує, тож тримайте його на виду. У Windows натисніть Відкрити параметри трею і ввімкніть «Інші значки на панелі завдань» → Dictum. У KDE відкрийте «Параметри системного лотка» → «Записи» і для Dictum виберіть «Показано».

Немає індикатора

Рядок Індикатор диктування на сторінці Налаштування → Система:

Потрібен XWayland
Індикатор — це вікно X11, а цей сеанс Wayland працює без XWayland. Увімкніть XWayland у налаштуваннях композитора. Стан запису й далі видно на значку в треї.
Вимкнено
Увімкніть його в Налаштування → Загальні → Індикатор диктування.

Демон

Демон — фоновий процес, який і виконує всю роботу. Програма для робочого столу запускає його й перезапускає, якщо він зупиниться. Рядок daemon (Демон):

running (pid 8412), Idle; 1 hotkey(s) registered via …
Усе гаразд. Якщо рядок — WARN, другий рядок пояснює, чому не працюють гарячі клавіші; див. Гарячі клавіші.
not running → Start it with 'dictum daemon', or at login with 'dictum daemon --install-autostart'.
Запустіть програму для робочого столу — вона запустить демон. Якщо ви користуєтеся Dictum без неї, виконайте dictum daemon.
not answering: it took the connection but sent no status within 10 s → Stop the dictum daemon process, then start it again with 'dictum daemon'.
Демон завис. Завершіть процес dictum у диспетчері завдань або командою pkill -x dictum. Програма для робочого столу запустить новий.
No answer within 15 s
Перевірка тривала задовго. Запустіть doctor ще раз.

На сторінці Налаштування → Система перевірки виконує демон. Коли він не працює, сторінка показує один рядок, Демон: Не працює, «Перевірки виконує демон; вони запустяться знову, щойно він повернеться.»

Коли демон не зміг запуститися або після оновлення лишився з іншої версії Dictum, у меню трею з'являється Перезапустити демон. Натисніть його. Another Dictum daemon is already running. означає, що демон уже працює: перш ніж запускати dictum daemon самостійно, вийдіть із Dictum через меню трею.

Розпізнавання мовлення

Рядок gpu (Відеокарта) називає відеокарту, яку може використати Whisper, або пише none that Whisper can use; speech recognition runs on the CPU. Він завжди «OK»: він потрібен, щоб ви знали, де працює розпізнавання.

Кожен постачальник розпізнавання має свій рядок stt:<id> (Розпізнавання мовлення <id>). Для локального Whisper:

ggml-large-v3-turbo-q8_0.bin, runtime Vulkan on …
Усе гаразд: модель і те, на чому вона працює.
Model not found: … або VAD model not found: … → Run 'dictum models pull …', which downloads …
Немає файла моделі. Підказка називає ідентифікатор моделі в каталозі Dictum, наприклад vad-silero-6.2 для моделі визначення мовлення, і адресу, з якої береться файл. Виконайте цю команду або завантажте модель у Налаштування → Моделі. Можна також вимкнути Визначення мовлення в Налаштування → Розпізнавання мовлення. Про файл, якого каталог не знає, див. Файли моделей.
… on a software Vulkan device (…) → This is slow and can produce wrong text; set "runtime": "cpu".
Whisper не знайшов для Vulkan справжньої відеокарти, лише програмну. У Налаштування → Розпізнавання мовлення виберіть для Обчислення значення Процесор, потім вийдіть із Dictum через меню трею і запустіть його знову: зміна обчислення діє після перезапуску демона.
Whisper failed to load: … → Try "runtime": "cpu" in the provider config.
Виберіть для Обчислення значення Процесор, як описано вище.
… (configured 'cpu', but this process already uses 'vulkan')
Два постачальники Whisper просять різне обчислення. Для всього демона вирішує той, що завантажився першим. Задайте обом однакове Обчислення.

Якщо dictum doctor пише для локального постачальника No answer within 15 s, модель ще завантажувалася: термінал завантажує її заново, а в демона вона вже завантажена. Подивіться Налаштування → Система або запустіть doctor ще раз.

Для сервера розпізнавання:

http://…/v1 reachable, model …
Усе гаразд.
… rejected the API key (401) → Check the apiKey reference in the config.
Див. API-ключі та сховище ключів.
Secret '<name>' is not in the OS secret store. → The API key cannot be read: store it with 'dictum secret set <name>', or type it in Settings → Speech providers.
Ключ постачальника — secret:<name>, а в сховищі ключів його немає. Введіть ключ у поле постачальника Ключ API (необов'язково) або виконайте команду з підказки. Для env:<VAR> рядок пише Environment variable '<VAR>' is not set., а підказка називає змінну, яку треба задати. Коли сховища ключів немає, як-от у Linux без Secret Service, підказка радить задати ключ як env:VAR. Див. API-ключі та сховище ключів.
http://…/v1: … → Is the server running, and is baseUrl correct (including /v1)?
Dictum не може достукатися до сервера. Перевірте, що сервер працює і що URL закінчується версією API, наприклад http://localhost:8080/v1.

Якщо розпізнавання повільне, виберіть меншу модель у Налаштування → Моделі. Щоб побачити, скільки часу потребує постачальник, натисніть Перевірити в Налаштування → Розпізнавання мовлення і говоріть п'ять секунд: з'явиться «Розпізнано за … мс».

Чищення тексту мовною моделлю

Кожен обробник «Запит до LLM» має рядок processor:<id> (Обробник <id>):

http://localhost:8080/v1 reachable, model qwen3-4b, prompt 'cleanup'
Сервер відповідає.
http://…/v1: … → Is the LLM server running, and is baseUrl correct (including /v1)?
Dictum не може достукатися до сервера. Перевірте, що сервер працює і що його URL у Налаштування → Обробники закінчується на /v1.
Secret '<name>' is not in the OS secret store. → The API key cannot be read: store it with 'dictum secret set <name>', or type it in Settings → Processors.

Ключ обробника — secret:<name>, а в сховищі ключів його немає. Введіть ключ у поле обробника Ключ API (необов'язково) або виконайте команду з підказки. Для env:<VAR> рядок пише Environment variable '<VAR>' is not set., а підказка називає змінну, яку треба задати. Коли сховища ключів немає, як-от у Linux без Secret Service, підказка радить задати ключ як env:VAR. Див. API-ключі та сховище ключів.

Поки ключа немає, диктування поводиться так, як задано в Якщо сервер не відповів: з Лишити текст як розпізнано Dictum вставляє текст без змін цього обробника і пише в журнал Processor 'cleanup' failed, keeping the input text: LLM 'cleanup' cannot read its API key: …; з Вважати диктування невдалим диктування завершується помилкою з цією причиною.

… rejected the API key → Check the apiKey reference in the config.
Див. API-ключі та сховище ключів.
http://…/v1/models answered 404
Сервер відповідає, але не має списку моделей. Чищення може й так працювати; спробуйте подиктувати.

Якщо рядок «OK», а текст виходить незмінним, сервер не відповів вчасно або Dictum відхилив відповідь. Тоді Dictum вставляє текст як розпізнано і пише причину в журнал:

  • Processor 'cleanup' failed, keeping the input text: … — помилка або вичерпано час очікування. Типово це 4 секунди. Для повільного сервера збільште Час очікування, секунд у Налаштування → Обробники.
  • Processor 'cleanup' answer was cut off at the token limit while the model was still reasoning; … — модель міркує, перш ніж відповісти. Вимкніть міркування на сервері або збільште Макс. токенів (порожньо — автоматично).
  • Processor 'cleanup' answer added line breaks, kept 3 of 12 words, is in another script — модель переписала текст замість виправити. Спробуйте іншу модель.

Щоб таке диктування натомість вважалося невдалим, задайте для Якщо сервер не відповів значення Вважати диктування невдалим. Посібник із чищення тексту налаштовує сервер від початку до кінця.

Слова виходять перекладеними

Ви кажете речення англійською, а Dictum вставляє його українською, або навпаки. Whisper пише тією мовою, яку йому назвали: якщо це не та мова, якою ви говорите, він перекладає.

Як Dictum вибирає мову, залежить від того, що вибрано в рядку Мови профілю в Налаштування → Профілі:

  • Одна: кожне диктування — цією мовою. Мовлення іншою мовою виходить перекладеним.
  • Кілька: Whisper вибирає з ваших мов. Основна мова має перевагу: іншу Dictum бере, лише коли Whisper упевнений у ній. Коротка фраза другою мовою може його не переконати, і тоді вона виходить основною мовою.
  • Авто: Whisper сам визначає мову кожного диктування і може вибрати мову, якою ви не говорите.

Щоб виправити:

  1. Зробіть основною мову, якою диктуєте найчастіше: у Налаштування → Профілі, у розділі Мови, натисніть Зробити основною поруч із нею.
  2. Якщо ви часто перемикаєтеся між мовами, дайте кожній мові окремий профіль зі своєю гарячою клавішею. Як це зробити, показує посібник із профілів.
  3. Залиште тільки ті мови, якими диктуєте. Близькі мови, як-от українська й російська, плутають Whisper; doctor попереджає про такі пари.
  4. Задайте мову, якщо в Ваші слова є слова: список слів тягне визначення мови до своєї мови.

Журнал показує кожен вибір у рядку на зразок:

Whisper 'local' picked 'uk' from uk, en (detected 'en', p=0.42; the first language has priority, and another one needs p >= 0.50)

Тут Whisper почув англійську, але не був певен, тож Dictum узяв основну мову — українську. Докладно про основну мову — у посібнику з мов.

Сервер розпізнавання приймає одну мову: якщо в профілі їх кілька, він завжди отримує першу.

Windows SmartScreen

Інсталятор Dictum поки не підписаний. Коли ви його відкриваєте, Windows SmartScreen попереджає, що Windows захистила комп'ютер. Натисніть «More info», потім «Run anyway» (в українській Windows ці написи перекладено). Те саме може статися під час першого запуску dictum-gui.exe з архіву zip.

Перш ніж запускати, перевірте, що файл саме той, що опубліковано. Кожен випуск на GitHub має файл SHA256SUMS. Завантажте його в ту саму теку, що й інсталятор, і виконайте в PowerShell у цій теці:

(Get-FileHash .\dictum-0.5.1-win-x64.msi -Algorithm SHA256).Hash.ToLower()
Select-String -Path .\SHA256SUMS -Pattern "dictum-0.5.1-win-x64.msi"

Обидва рядки мають показати однаковий хеш.

Smart App Control блокує непідписані програми повністю, без кнопки запуску. Поки його ввімкнено, Dictum не встановити. Його налаштування — у «Безпека Windows» → керування програмами й браузером (Windows Security → App & browser control → Smart App Control settings).

Перевірка оновлень

Налаштування → Про Dictum пише «Остання перевірка не вдалася:» і чому, коли перевірка оновлень не отримала відповіді від GitHub. Dictum спробує знову під час наступної щоденної перевірки; Перевірити зараз пробує одразу. Більше ні на що це не впливає.

  • «GitHub недоступний.» або «GitHub не відповів за 10 секунд.»: немає мережі або брандмауер чи проксі блокує api.github.com. У Windows Dictum бере налаштування проксі із системи. У Linux він читає лише змінні середовища https_proxy (або all_proxy) і no_proxy, з якими його запущено, а не проксі з налаштувань GNOME чи KDE.
  • «GitHub просить зачекати з наступною перевіркою.»: без входу GitHub відповідає на 60 запитів на годину з однієї адреси, і їх витратили інші програми у вашій мережі. Зачекайте годину.
  • «GitHub відповів» і число: проблема на боці GitHub. Спробуйте пізніше.

Випуски завжди можна переглянути самому: Випуски на тій самій сторінці відкриває їх на GitHub.

Журнали

Dictum записує свої дії у файли журналів:

Windows Linux
Тека %LOCALAPPDATA%\Dictum\logs ~/.local/share/dictum/logs
Демон і командний рядок dictum.log dictum.log
Програма для робочого столу dictum-gui.log dictum-gui.log

У dictum-gui.log потрапляє ще й вивід демона, якого запустила програма для робочого столу, — у рядках, що починаються з daemon:. Кожен рядок має час і рівень: DEBUG, INFO, WARNING або ERROR. Коли файл перевищує 1 МБ, Dictum перейменовує його на dictum.log.1 і починає новий; старих файлів зберігається три.

Журнал містить гарячі клавіші, способи роботи, час кожного кроку й помилки. Надиктований текст видно лише як його довжину, наприклад <42 chars>.

Щоб прочитати кінець журналу:

Get-Content "$env:LOCALAPPDATA\Dictum\logs\dictum.log" -Tail 50
tail -n 50 ~/.local/share/dictum/logs/dictum.log

Більше подробиць із --verbose

dictum daemon --verbose одразу виводить кожен рядок у термінал і записує в журнал сам надиктований текст.

  1. Вийдіть із Dictum: пункт Вийти з Dictum у меню трею. Демон може працювати лише один.
  2. Запустіть демон у терміналі. У Windows — за повним шляхом:

    & "$env:LOCALAPPDATA\Programs\Dictum\dictum.exe" daemon --verbose
    

    У Linux:

    dictum daemon --verbose
    
  3. Повторіть те, що не працює, і прочитайте виведені рядки. Якщо тепер запустити програму для робочого столу, вона під'єднається до цього демона.

  4. Натисніть Ctrl+C, щоб його зупинити, і запустіть Dictum як зазвичай.

Увага

З --verbose файл журналу зберігає надиктований текст. Приберіть ці рядки, перш ніж комусь пересилати журнал.

Повідомляючи про проблему, додайте вивід dictum doctor --json і рядки журналу з того часу, коли вона сталася.