Кастомний словник STT: де ламається розпізнавання
Розпізнавання мовлення помиляється нерівномірно: на побутових фразах якість розшифрування залишається високою, а на вузькоспеціальній термінології просідає передбачувано.
Моделі на кшталт Whisper навчені на загальному мовленні, тому за неоднозначності обирають частотніший варіант — прізвище «Курило» перетворюється на «курила», абревіатура читається по літерах, а артикул деталі в накладній стає випадковим набором цифр.
Системно ламаються три класи сутностей. Власні назви й топоніми: прізвища працівників, назви філій, рідкісні прив'язки. Абревіатури — вони звучать як злите слово, якого немає в загальному словнику.
І складені терміни: юридичні формулювання, найменування за класифікаторами, медичні та технічні назви, де помилка виникає на стику слів, і модель починає «здогадуватися» за звучанням.
Загальні налаштування цього не лікують. Поріг упевненості й авторедагування лише маскують проблему, підміняючи рідкісне слово частим, а мовна модель загального корпусу ваш домен не знає і за одним записом не вивчить.
Правки в готовому тексті не масштабуються: наступний файл приходить із тими самими помилками, а спотворені сутності вирушають у пошук по архіву, звіти та вижимки — частка коректно розпізнаних сутностей залишається низькою.
Вирішується це на рівні декодування: кастомний словник STT підказує системі очікувані слова та їхню вимову до розбору запису, а не після.
Далі розбираємо, як це закривається — звідки брати словник, як описувати вимови й як вимірювати, що помилки розпізнавання мовлення справді зникли.
Ефект від підлаштування: менше помилок на термінах та іменах
Перший замір робимо до будь-яких правок: розшифровуємо 30–50 хвилин реальних записів і вручну позначаємо розбіжності. База рахується на тій самій моделі, що піде в роботу, — зазвичай це Whisper або її донавчена гілка, — інакше порівняння «до і після» нічого не доводить.
Рахуємо не загальну точність, а частку помилок саме на словах домену: термінах, абревіатурах, назвах продуктів і прізвищах.
Після підключення кастомного словника повторюємо той самий замір на тому самому наборі записів і на нових. Дивимося не середню цифру, а розкид за дикторами та умовами запису — він показує, де словник працює, а де тягне зайве.
- Частка помилок на профільній лексиці падає у 2–4 рази; окремо перевіряємо терміни, які раніше розпізнавалися неправильно завжди.
- Обсяг ручних правок після розшифрування скорочується в рази, на типових записах усередині домену сягає нуля.
- Стійкість до дикторів: термін правильно розпізнається у 8–10 різних голосів, включно з жіночими й низькими чоловічими, без підлаштування під одного спікера.
- Стійкість до умов: перевіряємо запис із телефона, гарнітури, з переговорної — просідання не має виходити за кілька відсотків.
- Хибні спрацювання: словник не перетягує схожі загальновживані слова — контролюємо на наборі без домену.
- Регресія під час оновлення моделі: перезамір після кожного оновлення, інакше точність тихо відкочується назад.
Способи підлаштування розпізнавання: порівняння підходів
Підлаштування під лексику замовника вирішується п'ятьма способами — від зовнішніх правил до адаптації моделі на записах домену. Розрізняються вони точкою втручання: акустика, мовна модель або готовий текст, — звідси різні строк, оборотність і ризик регресу на звичайному мовленні.
У проєктах ми комбінуємо два-три шари: підлаштування мовної моделі домену, словник замін для абревіатур і постобробку для артикулів та одиниць вимірювання.
Рішення ухвалюємо за часткою помилок на профільних термінах, а не за загальною метрикою — виграш на лексиці легко просідає розпізнавання побутового мовлення.
| Спосіб | Коли підходить | Обмеження |
|---|---|---|
| Словник замін | усталені абревіатури, назви, артикули | не рятує, якщо модель чує слово інакше; хибні спрацювання на десятках правил |
| Фонетичні підказки | рідкісні імена, топоніми, нестандартна вимова | потрібен розбір вимови, плутанина на омофонах |
| Адаптація на корпусі записів | багато розмічених годин, стабільний домен | потрібні дані й розмітка, ризик перенавчання, довгий цикл перевірки |
| Постобробка розшифрування | формати, пунктуація, нормалізація чисел і дат | не відновлює те, що модель не розчула |
| Підлаштування мовної моделі домену | галузева лексика загалом | потрібен текстовий корпус, акустику не змінює |
Вибір фіксуємо за замірами на сліпій вибірці записів замовника: частка помилок на термінах, число хибних замін, час на додавання слова. Починаємо з оборотних шарів; адаптацію на корпусі підключаємо, коли залишаються помилки, які правилами не закрити.
Етапи впровадження: від збору термінів до передачі
Правка словника без замірів перетворюється на перебір здогадів: термін додали, частка помилок не змінилася. Тому йдемо зворотним порядком — спочатку рахуємо, де ламається розпізнавання, потім чіпаємо лексику.
Кроки та перевірки
- Аудит помилок розпізнавання. Розмічаємо розшифрування реальних каналів за типами: незнайомий термін, абревіатура, латиниця всередині фрази, омонімія. На виході — таблиця частот за класами.
- Збір термінології замовника. Інтерв'ю з носіями домену, вивантаження з довідників. Для кожного терміна — вимова, допустимі варіанти, межі застосовності.
- Тестова вибірка записів. Відкладаємо розмічений набір, який не бере участі в налаштуванні: різні диктори, канали, шум. Інакше підгонку під приклади не відрізнити від покращення.
- Схема підлаштування словника. Вирішуємо, куди вносити термін — словник вимов, заміна на виході, мовна модель — і з якою вагою.
- Налаштування та перевірка словника. Після кожної ітерації проганяємо відкладені записи: дивимося загальну частку помилок і нові хибні спрацювання.
- Передача рішення. Віддаємо конфігурацію словника, регламент правок, розмітку та звіти, навчаємо команду додавати терміни без регресій.
Після передачі словник живе у вашому контурі: правки за регламентом, метрики відтворювані, відкат до попередньої версії займає хвилини.
Артефакти впровадження: словники термінів, правила замін, регламенти
Після впровадження у замовника залишається не «модель у чорному ящику», а комплект артефактів, з яким можна працювати без нас: правки вносяться своїми силами, поведінка системи відтворювана, а спірні розпізнавання розбираються за документом, а не з пам'яті розробника.
- Конфігурація словника — файл, підключуваний до рушія розпізнавання: ваги термінів, регістр, словоформи, допустимі варіанти написання. Одна правка змінює видачу по всьому потоку записів.
- Перелік термінів — узгоджений з бізнесом список: продуктові назви, позначення внутрішніх систем, посади, латиниця, яку диктують уголос.
- Правила замін і вимови — таблиця «як чується → як пишемо», омофони та усталені спотворення конкретних дикторів; застосовується поверх розпізнавання і не псує вихідну стенограму.
- Контрольний набір записів — фрагменти аудіо з еталонним розшифруванням, включно з шумними доріжками та швидким мовленням. Прогін по ньому показує, що правка не зламала решту.
- Скрипти перевірки та метрики — розрахунок частки помилок за термінами і звіт до та після зміни словника.
- Документація — як додати термін, які поля обов'язкові, що робити при конфлікті правил.
- Регламент оновлення — хто ініціює правку, хто підтверджує, коли зміна вирушає в роботу і як відкочується.
Комплект переводить підтримку словника з разового налаштування в керований процес: новий термін проходить перевірку на контрольному наборі й доходить до робочого контуру без нашої участі.
Кейс: як зник клас помилок на вузькоспеціальних термінах
Задача надійшла від проєктного інституту: технічні ради та приймання записуються, а розшифрування досі готували вручну. У мовленні — абревіатури, марки обладнання, номери нормативів і прізвища підрядників.
Базова відкрита модель Whisper впевнено розбирала загальну мову, але спотикалася саме на цій лексиці.
Спочатку зафіксували точку відліку: контрольний набір записів із ручною розміткою термінів. Частка помилок на профільній лексиці — 17–19%, редактор витрачав близько 40 хвилин на кожну годину аудіо, а готовий текст години запису з'являвся лише надвечір.
Словник збирали не «на слух»: вивантажили частотні терміни з корпусу, додали вимовні варіанти — латиницю й кирилицю, відмінювання, злите та роздільне написання, абревіатури, які диктують по літерах.
Окремо налаштували ваги термінів, щоб рідкісна, але важлива назва не витіснялася частим загальним словом, і додали нормалізацію після розпізнавання: єдиний глосарій замість трьох написань однієї марки.
Після підлаштування частка помилок на профільній лексиці впала до 3%, ручні правки скоротилися приблизно вчетверо, година запису перетворюється на готове розшифрування за 40 хвилин замість чотирьох годин.
Перевіряли й зворотне — що на загальній мові якість не просіла: словник розширює модель, а не замінює її примусовими підстановками.
Клас помилок зі спотвореними назвами обладнання та нормативів зник, редактор править зміст, а не вгадує терміни. Словник живе далі: нові слова потрапляють до нього з правок редактора, а регресійний набір не дає покращенням на одній темі ламати решту.
Чим підлаштування розпізнавання відрізняється від донавчання моделі?
Це два різних класи робіт, і плутати їх дорого. Підлаштування лексики змінює лише шар розпізнавання слів: до словника додаються терміни, абревіатури, назви продуктів, задаються ваги й правила нормалізації. Ваги акустичної моделі не чіпаються — результат передбачуваний і оборотний.
Донавчання змінює саму модель на розміченому корпусі мовлення. Воно виправдане там, де розходиться не лексика, а вимова: сильний акцент, вузька предметна область з усталеним жаргоном, запис через конкретний мікрофон або канал зв'язку.
| Підхід | Коли підходить | Обмеження |
|---|---|---|
| Кастомний словник STT і ваги | Нові терміни, абревіатури, імена — слово відоме, вимова стандартна | Не рятує, якщо слово звучить нерозбірливо |
| Правила замін і нормалізація | Постобробка: єдиний формат чисел, дат, артикулів | Працює поверх розпізнавання, звук не покращує |
| Донавчання моделі | Акцент, шумний канал, усталений жаргон, багато однотипного мовлення | Потрібен розмічений корпус, можлива деградація на попередніх темах |
Підтримка вирішує вибір. Словник — це конфігурація: правки вносить профільний фахівець, зміни версіонуються, відкат займає одну ревізію, перевірка йде за набором еталонних фраз.
Донавчену модель так не відкотити: потрібен збережений корпус, повторний прогін перевірок і перенавчання при кожному зсуві домену.
Практичне правило: спочатку закриваємо задачу словником і вагами і лише якщо частка помилок на еталонній вибірці не падає — переходимо до донавчання. Рішення залишається керованим, а володіння ним — передбачуваним.
Технічні сумніви: обсяг робіт, строки, підтримка
Заперечення щодо підлаштування словника розпізнавання повторюються з проєкту в проєкт: незрозумілий обсяг робіт, строки впровадження, якість вихідних записів і те, що буде після запуску. Нижче — відповіді з порядком дій, замірами та межами, за якими результат не гарантуємо.
Скільки реально роботи в підлаштуванні словника?
Обсяг задає не розмір словника, а структура домену. За 200–300 однотипних термінів основний час іде на вимовні варіанти, а не на розмітку, а абревіатури, латиниця та складені назви додають роботу з нормалізацією тексту.
Скільки чекати результат?
Починаємо з прогону на частині архіву: замір частки помилок до і після, розбір термінів, які все ще губляться. Далі обробляємо решту корпусу. Строк залежить від обсягу та якості записів, а не від кількості слів у словнику.
А якщо записи шумні?
Якість вихідників задає стелю: на перекритій мові та телефонному каналі словник витягне термінологію, але не відновить втрачене. Тому спочатку оцінюємо записи і за потреби ставимо передобробку — шумозаглушення та розділення мовленнєвих фрагментів.
Чи перезбирати все при кожній правці термінології і що з підтримкою?
Ні: словник і мовна модель відокремлені від акустичної частини. Додавання терміна або правка вимови — це оновлення словника й прогін на контрольному наборі, без повного перенавчання; акустика чіпається лише при зміні домену або каналу зв'язку.
Після запуску працюємо за заявками: регресійний набір записів, версіонування словника, замір частки помилок і відкат, якщо стало гірше.
Обговоримо задачу: що надіслати для оцінки та плану робіт
Щоб повернутися з оцінкою та планом робіт, а не з уточнювальними питаннями, нам достатньо одного набору вихідних даних. Чим точніше описано домен, тим менше ітерацій піде на узгодження схеми рішення.
- Аудіо з реального каналу. 30–60 хвилин записів за кожним джерелом: телефонія, мікрофон, відеодзвінок — з типовим шумом, кількома дикторами та акцентами.
- Еталонні розшифрування. 10–20 хвилин вивірених текстів із позначками спірних місць — за ними рахуємо базову частку помилок і бачимо, де словник дасть основний приріст.
- Список термінів. Назви продуктів, абревіатури, посади, ПІБ, топоніми — з варіантами вимови та тим, як вони мають виглядати у видачі.
- Правила нормалізації. Регістр, пунктуація, числа, одиниці вимірювання, латиниця й кирилиця в одному слові, оформлення повторів і слів-заповнювачів.
- Схема потоку. Звідки надходить аудіо і в якому форматі, де зберігається, куди йде текст, чи потрібна розмітка за мовцями.
- Обмеження. Вимоги до затримки видачі, де дозволено обробляти дані, допустима частка ручної правки.
- Приклади помилок. 20–50 реальних фраз, які розпізнаються неправильно зараз — цього достатньо, щоб оцінити обсяг роботи зі словником.
Надсилати все одразу не обов'язково: почнемо з аудіо та списку термінів, решту уточнимо по ходу. Опишіть задачу — повернемося з оцінкою, схемою рішення та планом робіт.







