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

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

Приватність

Dictum працює на вашому комп'ютері. Ця сторінка розповідає, що він там використовує, коли саме і що залишає комп'ютер. Кожне твердження тут описує те, що робить код Dictum 0.4.

Коротко

Що Коли Dictum це використовує Куди це потрапляє
Мікрофон Під час диктування, поки відкрито Налаштування → Загальні з індикатором рівня, і коли ви натискаєте Перевірити для постачальника Нікуди, якщо працює локальний Whisper. На сервер розпізнавання — лише якщо профіль його використовує.
Клавіатура Чекає на ваші гарячі клавіші, поки працює демон; натискає Ctrl+V, щоб вставити текст Нікуди: клавіші не зберігаються й не потрапляють у журнал.
Буфер обміну Під час вставлення: зберігає текст, що там був, і повертає його Нікуди.
Сховище ключів Лише для API-ключів, записаних як secret:<name> Тільки на той сервер, для якого цей ключ.
Мережа Додані вами сервери, завантаження моделей із каталогу Dictum і перевірка оновлень у програмі На вибрані вами сервери; моделі завантажуються з Hugging Face; номер найновішої версії — з GitHub.
Історія та журнали Після кожного диктування й поки працює Dictum У файли на вашому комп'ютері.

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

Мікрофон

Dictum відкриває мікрофон лише в ці моменти й одразу після них закриває:

  • Під час диктування: від натискання гарячої клавіші до її відпускання. Профіль у режимі Перемикати записує від одного натискання до наступного. dictum start і dictum toggle починають запис так само, а dictum stop і dictum cancel його закінчують.
  • Поки відкрито Налаштування → Загальні: індикатор рівня під полем Мікрофон читає рівень звуку. Він не зберігає звуку, лише рівень. Індикатор зупиняється, коли ви відкриваєте іншу сторінку або закриваєте «Налаштування». Якщо програма для робочого столу завершиться, не зупинивши його, демон зупинить його приблизно за хвилину.
  • Коли ви натискаєте Перевірити для постачальника в Налаштування → Розпізнавання мовлення: записується п'ять секунд. Перевірити на зразку використовує запис, вбудований у Dictum, і мікрофона не відкриває.
  • У командному рядку: dictum record записує, доки ви не натиснете Enter, Ctrl+C або Esc. dictum stt test записує п'ять секунд, якщо ви не дали йому файл через --file.

Майстер налаштування мікрофона не відкриває. Перелік мікрофонів, який показують dictum devices, dictum doctor і «Налаштування», нічого не записує.

Запис лежить у пам'яті, доки його не перетворять на текст, і ніколи не потрапляє на диск. Єдиний виняток — dictum record --save-audio <file>, що зберігає запис у вказаний вами файл. Історія зберігає текст, а звук — ніколи.

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

Клавіатура

Очікування гарячих клавіш. Поки працює демон, він чекає на гарячі клавіші ваших профілів:

  • У Windows і X11 Dictum використовує SharpHook: низькорівневий перехоплювач клавіатури у Windows і розширення XRecord в X11. Перехоплювач бачить кожну натиснуту клавішу в кожній програмі. Dictum порівнює кожну клавішу з вашими гарячими клавішами й нічого іншого з нею не робить: не зберігає, не надсилає і не пише в журнал. У Windows він не пропускає свою гарячу клавішу до програми, в якій ви пишете. Пункт Призупинити всі гарячі клавіші в меню трею знімає перехоплювач, тож ніщо в Dictum не бачить ваших клавіш, доки ви не натиснете Відновити гарячі клавіші або демон не перезапуститься. Коли жоден профіль не має гарячої клавіші, Dictum теж не ставить перехоплювача.
  • У Wayland Dictum використовує портал GlobalShortcuts робочого столу. Dictum узагалі не бачить клавіш: робочий стіл повідомляє лише, коли натиснуто й відпущено одну з гарячих клавіш самого Dictum. Перш ніж дати Dictum гарячу клавішу, робочий стіл питає вас.

Натискання Ctrl+V. Щоб вставити текст, Dictum сам натискає Ctrl+V, а в терміналі — Ctrl+Shift+V. Більше він нічого не натискає.

  • У Windows він використовує SendInput, в X11 — розширення XTest.
  • У Wayland він використовує портал RemoteDesktop робочого столу, ydotool або wtype. Портал один раз питає, чи можна Dictum керувати клавіатурою. Щоб не питати знову, Dictum зберігає токен у ~/.local/share/dictum/remote-desktop.token, який може читати лише ваш користувач. Видаліть файл, і робочий стіл запитає ще раз.

Активна програма. Щоб знати, коли вставляти через Ctrl+Shift+V, Dictum читає назву програми, яка має фокус: назву процесу у Windows і клас вікна в X11 (через xprop). Він читає її під час вставлення, а ще коли закінчується запис, якщо профіль має обробники. У Wayland Dictum не бачить активної програми. Назва нікуди не йде, хіба що ви самі напишете запит до LLM із {{app}}: тоді цей запит надішле її на сервер. Вбудовані запити її не використовують.

Буфер обміну

Dictum вставляє текст через буфер обміну. Для кожного диктування він:

  1. читає текст із буфера, якщо там є текст;
  2. кладе в буфер надиктоване;
  3. у Windows і X11 чекає, доки ви відпустите клавіші-модифікатори гарячої клавіші, але не довше двох секунд;
  4. натискає Ctrl+V;
  5. чекає стільки, скільки задано в полі Затримка відновлення буфера, мс (типово 150 мс; змінюється в Налаштування → Загальні → Налаштування вставлення ›);
  6. повертає в буфер попередній текст, якщо буфер за цей час не змінився.

Зберігається й повертається лише текст. Якщо в буфері було зображення чи файли, диктування їх замінить. Якщо буфер був порожній, надиктоване в ньому й лишиться. Профіль із виводом Лише скопіювати в буфер обміну лишає надиктоване в буфері й нічого не повертає.

Менеджери буфера обміну, а також журнал буфера обміну Windows (Win+V), якщо його ввімкнено, можуть зберігати копію кожного диктування. У Wayland Dictum позначає текст як конфіденційний (wl-copy --sensitive, у wl-clipboard 2.3 і новіших), і це просить менеджери буфера його не зберігати. У Windows і X11 такої позначки немає.

У Linux Dictum читає й записує буфер через wl-copy і wl-paste у Wayland, xclip або xsel в X11.

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

Системне сховище ключів Dictum використовує для API-ключів і ні для чого іншого: у Windows це диспетчер облікових даних (Windows Credential Manager), у Linux — Secret Service (GNOME Keyring або KWallet).

  • Коли записує: коли ви вводите ключ у «Налаштуваннях» чи в майстрі налаштування або виконуєте dictum init чи dictum secret set <name>. Ключ зберігається як dictum:<name> у диспетчері облікових даних або як запис Dictum: <name> у Secret Service. Конфігурація тоді містить лише secret:<name>, а не сам ключ.
  • Коли читає: лише якщо значення в конфігурації — secret:<name>, і тоді, коли ключ потрібен для запиту до того сервера: для диктування, перевірки постачальника або перевірок dictum doctor чи Налаштування → Система. Ключ іде тільки на той сервер, як токен Bearer.
  • Коли видаляє: коли ви прибираєте постачальника чи обробник, а інші цей ключ не використовують, або коли виконуєте dictum secret delete <name>.

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

Мережа

Dictum з'єднується з такими серверами — і більше ні з якими:

  • Сервери розпізнавання, які ви додали в Налаштування → Розпізнавання мовлення як Сервер. Для кожного диктування в профілі, що використовує такий сервер, Dictum надсилає на <URL>/audio/transcriptions запис у форматі WAV, назву моделі, мову й підказку профілю для розпізнавання, до якої входять ваші слова.
  • Сервери LLM ваших обробників. Для кожного диктування в профілі, чий ланцюжок має запит до LLM, Dictum надсилає на <URL>/chat/completions запит: розпізнаний текст і його мову, а в запитах, які ви написали самі, — ще й назву активної програми та ваші слова, якщо запит їх просить. Текст туди надсилають і «Налаштування»: Попередній перегляд запиту до LLM у Налаштування → Обробники надсилає Зразок речення через 600 мс після кожної зміни, поки редактор на екрані, а Історія надсилає розпізнаний текст запису, коли ви обробляєте його ланцюжком ще раз.
  • Перевірки цих серверів. dictum doctor, Налаштування → Система і перевірка сервера в майстрі налаштування звертаються до <URL>/models. Сервер розпізнавання без цієї адреси отримує натомість пів секунди тиші. Перевірити постачальника в Налаштування → Розпізнавання мовлення надсилає п'ять секунд із мікрофона або вбудований у Dictum зразок.
  • Завантаження моделей. Dictum завантажує моделі мовлення лише з адрес каталогу, вбудованого в нього, — це фіксовані версії файлів на Hugging Face. І робить це лише тоді, коли ви вибираєте модель у майстрі налаштування чи в Налаштування → Моделі або виконуєте dictum init чи dictum models pull. Перш ніж використати файл, Dictum звіряє його SHA-256 з каталогом і видаляє завантаження, що не збігається.
  • Перевірка оновлень. Поки ввімкнено Перевіряти оновлення в Налаштування → Загальні (а це так, доки ви його не вимкнете), програма для робочого столу питає GitHub про найновіший випуск Dictum за хвилину після запуску, а далі раз на день: GET https://api.github.com/repos/Sigil-build/dictum/releases/latest, без входу й без токена. Перевірити зараз на сторінці Налаштування → Про Dictum питає те саме, коли ви її натискаєте, навіть якщо налаштування вимкнено. Запит називає Dictum і його версію — User-Agent: Dictum/0.4.0; GitHub, як і за будь-якого з'єднання, бачить також вашу IP-адресу. Більше нічого не надсилається: ні ідентифікатора, ні налаштувань, ні тексту, ні статистики. З відповіді Dictum читає номер найновішої версії та адресу її сторінки й зберігає їх у update-check.json разом із часом перевірки (див. Файли). Він нічого не завантажує й не встановлює. dictum і демон оновлень не перевіряють.

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

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

Без телеметрії

Dictum не збирає й не надсилає статистики використання, звітів про збої чи аналітики. Перевірка оновлень — не телеметрія: вона питає, яка версія найновіша, не повідомляє GitHub нічого, крім версії, яку ви запускаєте, і її можна вимкнути. З'єднання з розділу Мережа — єдині в його коді.

Документація в меню трею, Довідка в «Налаштуваннях», Як працює Dictum? у майстрі налаштування та Як виправити в Налаштування → Система відкривають сторінки docs.sigil.build у вашому браузері, а посилання на сторінці Налаштування → Про Dictum — docs.sigil.build і сторінки Dictum на github.com. dictum doctor друкує посилання на документацію. Кожне з цих з'єднань встановлює браузер, а не Dictum.

Історія

Dictum зберігає ваші останні диктування, щоб будь-яке можна було скопіювати ще раз.

  • Де: history.jsonl у %LOCALAPPDATA%\Dictum у Windows і в ~/.local/share/dictum у Linux. Файл лишається на вашому комп'ютері.
  • Що: для кожного диктування — час, профіль, постачальник розпізнавання, розпізнаний текст, остаточний текст, мова, тривалість запису, модель, на чому вона працювала, і скільки тривало розпізнавання. Якщо диктування не вдалося вже після розпізнавання, розпізнаний текст зберігається разом із помилкою, щоб не загубитися. Звук не зберігається.
  • Скільки: останні 200, якщо ви не змінили число в рядку Історія на сторінці Налаштування → Загальні. Коли ви зменшуєте це число, файл обрізається до нього під час наступного диктування.
  • Вимкнути: задайте в рядку Історія значення 0. Тоді Dictum нічого не додає до файла. Записи, які вже є, лишаються, доки ви їх не видалите.
  • Видалити один запис: відкрийте Історія з меню трею, виберіть запис і натисніть Видалити.
  • Видалити все: вийдіть із Dictum через меню трею і видаліть history.jsonl.

Журнали

Dictum записує свої дії у файли журналів у теці logs: %LOCALAPPDATA%\Dictum\logs у Windows, ~/.local/share/dictum/logs у Linux.

  • Що: гарячі клавіші, способи роботи, час кожного кроку й помилки з повідомленнями, які надіслали сервери. Надиктований текст видно лише як його довжину, наприклад <42 chars>.
  • Виняток: --verbose, як у dictum daemon --verbose, записує в журнал сам надиктований текст. Вмикайте його лише для пошуку проблеми.
  • Скільки: коли файл журналу перевищує 1 МБ, Dictum починає новий і зберігає три старі.
  • Видалити: вимкнути журнали не можна. Вийдіть із Dictum через меню трею і видаліть теку logs.

Як читати журнали, показує сторінка Розв'язання проблем.

Інші файли

Ваші налаштування — у config.json у %APPDATA%\Dictum у Windows і ~/.config/dictum у Linux, а ваші власні запити — у теці prompts поруч. Там ваші слова, правила заміни й адреси ваших серверів. Моделі, історія та журнали лежать у %LOCALAPPDATA%\Dictum або ~/.local/share/dictum. Видалення Dictum лишає обидві теки; видаліть їх, щоб прибрати все. Кожен файл описано на сторінці Файли, які зберігає Dictum.