Автовизначення знову вгадує не те: закріпіть свою мову
Диктування раз у раз потрапляє не тією мовою? Автовизначення метається на двомовному мовленні за задумом. Закріпіть мову один раз — і вона лишиться закріпленою.
Якщо ви диктуєте більш ніж однією мовою, ви бачили цей збій. Ви кажете речення румунською, а транскрипт повертається фонетично покаліченою англійською — справжні слова, і жодне з них не ваше. Або воно перемикається посеред речення: перша половина правильною мовою, друга — тією, на яку, за рішенням моделі, ви перейшли. Або, мій особистий фаворит, — суп зі змішаних абеток: латинські літери з кількома вкрапленими кириличними, ніби модель хеджувала ставки літера за літерою.
Це не скарга на один продукт. Це передбачуваний режим збою автоматичного визначення мови, включно з типовим налаштованим на англійську рушієм Keebye. Він б’є по тих, хто говорить англійською з акцентом, і по всіх, хто перемикає коди протягом дня. Двомовний розробник, чий Slack польською, а повідомлення комітів англійською, дає автовизначенню рівно ті змішані сигнали, з якими воно справляється найгірше.
Друга половина скарги тихіша, але така ж реальна: коли налаштування мови таки існує, воно часто закопане. Три меню вглиб, за вибором рушія, за перемикачем, у назві якого мова взагалі не згадується. Якщо ви міняєте мову двадцять разів на день, закопане налаштування фактично не є налаштуванням.
Я хочу пояснити, чому виникає це метання, — на прикладі бойової історії власного продукту, бо в Keebye ця проблема була раніше, ніж з’явилося виправлення, — а тоді показати, який вигляд має справжнє розв’язання.
Чому автовизначення метається (і чому це не зовсім вада)
Ось чесна механіка. Сучасні мовленнєві моделі виконують ідентифікацію мови мовчки, як частину декодування. Модель слухає, формує внутрішній здогад про те, яку мову вона чує, і декодує проти цього здогаду. Коли аудіо чисте, без акценту й одномовне, це працює так добре, що ви про це ніколи не думаєте.
Тепер погодуйте його справжнім мовленням. Акцент зсуває голосні до фонем іншої мови. У реченні три англійські запозичення — а вони є в кожній технічній розмові. У фоні дитина, або ви на мікрофоні ноутбука. Кожне з цього робить внутрішній мовний здогад моделі менш упевненим, а невпевнений здогад може перескакувати між кадрами. Коли він перескакує, разом із ним перескакує декодування — і ви отримуєте транскрипт, що змінює мову посеред думки.
Головне: у більшості інструментів немає нічого, що заякорює цей здогад. Модель вирішує мовчки, для кожного висловлювання, а ви не маєте перевизначення. Це не вада якогось окремого застосунку — це те, чим мовчазне автовизначення є. Модель ухвалює оцінне рішення, яке ви не можете виправити.
Я знаю це вкрай добре, бо саме така властивість є в типового рушія Keebye. Parakeet, наш типовий рушій, налаштований на англійську, ігнорує будь-яку підказку про мову на рівні декодування — ви не можете сказати йому, якою мовою збираєтеся говорити. На чистій англійській він чудовий, тому й типовий. На нечіткому аудіо він може метатися між мовами, як і все інше в категорії. Я кажу вам це про власний продукт першим, бо виправлення набуває сенсу лише тоді, коли ви приймете, що проблема живе в архітектурі, а не в чиїйсь конкурентній неохайності.
Що насправді робить закріплення мови?
Виправлення полягає в тому, щоб перестати просити модель угадувати. Keebye постачається з другим рушієм на пристрої — NVIDIA Canary 1B v2, квантованим до int8, — який покриває рівно 25 мов: болгарську, хорватську, чеську, данську, нідерландську, англійську, естонську, фінську, французьку, німецьку, грецьку, угорську, італійську, латвійську, литовську, мальтійську, польську, португальську, румунську, словацьку, словенську, іспанську, шведську, російську та українську. На відміну від типового рушія, Canary приймає вказівку про мову й дотримується її.
Keebye показує це як закріплення: явне налаштування мови, що передається рушієві Canary для кожного висловлювання. Закріпіть румунську — і декодер використає румунську замість автоматичного вибору мови. Розпізнавання все ще може бути хибним, надто навколо запозичень і шумного аудіо, але вибір мови більше не є неперевіреним здогадом.
Налаштування читається наживо, для кожного диктування. Змініть його — і наступне утримання клавіші використає нову мову без перезапуску застосунку. Це важить більше, ніж здається: керування мовою значно корисніше тоді, коли його перемикання не перериває роботу.
А оскільки Canary працює на пристрої, як і все інше в Keebye, закріплення не коштує вам історії про приватність. Модель займає близько 1,3 ГБ, завантажується один раз; після цього ваша румунська, ваша польська, ваша українська ніколи не покидають машину. (Чому ми взагалі вважаємо локальне багатомовне диктування важливим — це окремий допис, диктування для розробників не має бути лише англійським. Цей — його практичне продовження: той допис обстоює мови, а цей — про те, як зробити їх справді придатними до вжитку.)
Два кліки, а не три меню вглиб
Закріплення, до якого не дотягтися, — це закріплення, яким ви не скористаєтеся, тож перемикач живе в рядку меню. У значка Keebye в рядку меню є меню «Dictation Language» з дібраним коротким списком з 11 мов — англійська, румунська, французька, німецька, іспанська, італійська, португальська, нідерландська, польська, російська, українська. Два кліки з будь-якого застосунку: клік по значку, клік по мові. Ви не відкриваєте Налаштування й не покидаєте вікно, у якому працювали.
Повний список із 25 мов живе в Налаштуваннях — для мов поза коротким списком. Але короткий список покриває щоденну реальність більшості двомовної роботи: ви пишете команді однією мовою, а клієнтові чи ШІ-агентові — іншою, і перемикання має коштувати нуль.
Є ще одна опція, про яку варто знати, бо вона повністю змінює те, як дехто користується закріпленням: перемикач перекладу англійською. Говоріть своєю мовою — англійська опиняється на курсорі: той самий рушій, те саме виконання на пристрої. Якщо ваш внутрішній монолог іде румунською, а вивід має бути англійським (повідомлення комітів, промпти для агента коду, відповіді міжнародній команді), це згортає той крок перекладу, який ви робили в голові. Я користуюся ним частіше, ніж очікував.
Скільки коштує закріплення
25 мов — це 25 мов. Хмарні інструменти диктування перелічують значно більше, бо надсилання звуку у велику серверну модель — дешевий спосіб додавати мови. Це і є справжній компроміс роботи на пристрої: модель, що вміщається на ваш Mac, покриває меншу частину світу, ніж модель, що заповнює дата-центр. Якщо вашої мови немає в списку з 25, багатомовний рушій Keebye сьогодні вас не покриває, і я радше це скажу, ніж округлятиму вгору.
Закріплення означає закріплення. Це зворотний бік детермінізму, і я хочу сказати прямо: якщо ви закріпите румунську, а потім говоритимете англійською, Keebye вірно декодує вашу англійську як румунську — доки ви не перемкнете. Рушій робить рівно те, що ви йому сказали. Уся принада автовизначення була в тому, що вам ніколи не доведеться про це думати; закріплення міняє цю зручність на передбачуваність. За моїм досвідом, обмін вартий того, бо неправильний здогад, який ви не контролюєте, гірший за неправильне налаштування, яке ви виправляєте у два кліки. Але це обмін, а не безкоштовний обід.
Короткий список у рядку меню — це 11 мов, а не 25. Якщо у вашій щоденній парі є, скажімо, фінська чи грецька, за одну зі сторін ви йдете в Налаштування. Добірка означає, що чиясь мова не потрапила у швидке меню.
Де це лишає скаргу
Скарга рівня категорії — «моє диктування раз у раз виходить не тією мовою» — насправді є скаргою на мовчазні рішення. Модель угадала, здогад був хибний, і не було способу сказати їй інакше. Кожне виправлення, що зберігає вгадування (краще визначення, довші вікна аудіо, пороги впевненості), лише робить збій рідкіснішим і дивнішим. Виправлення, яке справді припиняє скаргу, — це повернути рішення користувачеві.
Якщо ви зараз живете цим з іншим інструментом, наші сторінки порівнянь чесні щодо того, кому який інструмент пасує, — і Keebye vs Superwhisper, і Keebye vs Wispr Flow серед іншого розглядають питання мови. Щоб спробувати саме закріплення, почніть безкоштовний пробний період нижче, повторіть румунське чи польське речення з початку цієї статті — і подивіться, наскільки те метання походило з неперевіреного здогаду, а не з вашого акценту.
Закріпіть ту мову, якою ви справді користуєтеся
Почніть безкоштовний пробний період і повторіть одну відповідь рідною мовою, яку автовизначення раніше покалічило.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Читати далі
Диктуйте рев’ю коду власною мовою
Код — англійською. Ваші коментарі в рев’ю — не обов’язково. Як диктувати зауваження однією з 25 мов на пристрої й навіщо закріплювати мову.
Диктування промптів паралельним агентам, доріжка за доріжкою
Два-три агенти для коду одночасно — і промпт стає вузьким місцем. Голосовий процес, щоб годувати паралельні доріжки, не покидаючи поточну.
Claude Code голосом: розробка паралельними доріжками
ШІ-агенти зробили набір тексту вузьким місцем. Практичний процес диктування промптів, рев’ю та скерувань у паралельних доріжках агентів на macOS.