← Усі пости

Есе · серпень 2026 р.

Виправлення помилок розпізнавання мовлення: 3 кроки

Виправлення помилок розпізнавання мовлення дає кращий результат, коли модель редагує знайдений фрагмент транскрипту, а не переписує репліку заново. У роботі Agentic ASR (arXiv:2605.29430) корекцію розкладено на три операції — знайти помилковий фрагмент, зрозуміти потрібну правку, застосувати її — замість одного некерованого переписування. За десять кроків уточнення семантична помилка на бенчмарку GigaSpeech падає з 21,47% до 3,49%, тоді як WER на тому ж наборі зсувається лише з 11,92% до 10,43%. Grow2.ai пояснює, чому це означає, що WER не годиться як приймальна метрика голосового агента.

За десять кроків уточнення семантична помилка на англомовному бенчмарку GigaSpeech падає з 21,47% до 3,49%. Word Error Rate на тому самому наборі за ті самі десять кроків зсувається з 11,92% до 10,43%.

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

Обидва стовпці стоять поруч у Table II роботи Agentic ASR (arXiv:2605.29430), препринт подано 28 травня 2026 року. Автори — лабораторія X-LANCE у Shanghai Jiao Tong University, Fudan University, Китайський університет Гонконгу в Шеньчжені та команда Tongyi Fun з Alibaba Group; звідси й вибір моделей, бо і розпізнавання, і корекцію в експерименті роблять Qwen. Спосіб, у який ця робота ремонтує транскрипт, пояснює й розрив між стовпцями.

Чому «виправ транскрипт» ламається як команда

Типова схема поверх розпізнавання виглядає так: ASR видає гіпотезу, мовна модель її прибирає. Схема тримається рівно доти, доки користувач мовчки приймає результат.

Стаття відкривається сценою, яку впізнає кожен, хто говорив із голосовим асистентом. Людина просить: «Ask Megan to send me the budget file». Система чує Morgan і бадьоро відповідає, що звернеться до Morgan. Людина заперечує: «No! It's Megan». Ця репліка теж проходить через розпізнавання, і для системи вона нічим не відрізняється від попередньої — просто новий шматок мовлення, який треба транскрибувати й додати. Виправлення потрапляє в транскрипт замість того, щоб його змінити. У Fig. 1 статті цю сцену розкладено на три колонки, і середня — традиційна схема — закінчується промовисто: людина втрачає терпіння й диктує по літерах, «No! It's Megan, M-e-g-a-n», а система бере рівно цей рядок і записує його як розпізнаний текст.

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

Намір

Що робить система

confirmation

лишає поточний стан транскрипту без змін

new input

дописує репліку як новий зміст

correction

редагує вже наявний стан транскрипту

Тільки третя гілка веде до редактора, дві інші його не запускають взагалі. Без цього кроку будь-яке «ні, не так» стає частиною тексту.

Три операції замість одного переписування

Коли намір визначено як виправлення, вмикається редактор. Формула в роботі записана як композиція трьох операцій: Modify ∘ Reason ∘ Locate.

Locate знаходить фрагмент, який треба змінити. Reason виводить із репліки й контексту розмови, якою саме має бути правка. Modify застосовує її до знайденого місця.

Автори формулюють вибір прямо: замість некерованого одноетапного переписування корекцію розкладено на три явні операції. Мотивація в тексті — керованість процесу й відповідність тому, як люди дають часткові інструкції на виправлення. Ніхто не диктує речення заново, коли треба поміняти одне ім'я.

Різниця між двома підходами найгостріша якраз на власних назвах. Переписування — це генерація: модель відтворює репліку цілком, зокрема ті слова, які були розпізнані правильно. Рідкісне прізвище, назва селища чи артикул товару при кожному повторному проході має шанс з'їхати до частішої сусідньої форми, і саме так Megan перетворюється на Morgan. Редагування фрагмента цього шансу не дає: те, чого не торкнулися, лишається як було.

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

Метрика, яка не бачить ремонту

Разом із фреймворком автори вводять власну метрику — Sentence-level Semantic Error Rate, S²ER. Вона міряє частку реплік, які не зберегли задуманий сенс: судова модель дає бінарну відповідь «сенс збережено / не збережено», дивлячись на головний намір і ключові смислові одиниці, насамперед власні назви, і свідомо ігноруючи заповнювачі, обмовки та пунктуацію.

На англомовному GigaSpeech Test обидві метрики поводяться так, у міру того як додаються кроки уточнення.

Крок уточнення

S²ER (сенс)

WER (слова)

0 — початкова гіпотеза

21,47%

11,92%

1

12,35%

11,02%

3

7,00%

10,69%

10

3,49%

10,43%

Семантична помилка за десять кроків зменшується вшестеро. WER за той самий час втрачає півтора пункти. Висновок авторів звучить сухо: метрики поверхневої форми самі по собі суттєво занижують практичну цінність взаємодії.

Щоб S²ER не лишався оцінкою на віру, автори звірили суддю з людьми: 120 реплік із трьох мовних умов, 25 неекспертів і 5 фахівців, бінарний протокол. Кореляція Пірсона між судовою моделлю й усередненою людською оцінкою — 0,891 на GigaSpeech, 0,828 на WenetSpeech і 0,903 на ASRU2019, причому за всіма трьома наборами вона трохи вища, ніж кореляція самих експертів із тією ж усередненою оцінкою.

Дві репліки, які показують, де WER помиляється

Розрив між стовпцями найкраще пояснює пара прикладів із самої роботи.

Що сказали

Що розпізнали

WER

Сенс

«Um, let's maybe just open the window?»

«Let's open the window?»

42,9%

збережено

«Try Qwen3-ASR to get the transcript!»

«Try Kunthreesir to get the transcript!»

16,7%

зруйновано

У першому рядку майже половина слів не збіглася — і жодне з них не мало значення, бо розійшлися заповнювачі й пом'якшення. Репліка повністю придатна до виконання. У другому рядку помилка одна, WER утричі менший, а виконати цю команду вже неможливо: підмінена назва моделі — саме те, від чого залежить наступна дія.

Той самий механізм у голосовому агенті кваліфікації працює на топонімах. Транскрипт, у якому загубилися «ну» й «власне», нічого не коштує. Транскрипт, у якому Кропивницький став Кременчуком, відправляє лід не в ту стадію — і зовнішньо це виглядає як бездоганна робота системи. Логіку полів рішення, які визначають маршрут, ми розбирали в матеріалі про те, де голосовий агент ламається на українській; Agentic ASR дає тій самій ідеї формальну метрику й доводить її на числах.

Що з цього переноситься на українську, а що ні

Заміри зроблено на англійській (GigaSpeech), мандаринській (WenetSpeech, AISHELL-NER) і на змішаній англо-мандаринській мові (ASRU2019, CS-Dialogue). Українською такого дослідження ми не знайшли — перевіряли arXiv і публікації самих авторів. Переносити відсотки на українську не можна, а от структуру результатів прочитати варто.

Умова

S²ER на старті

S²ER після 10 кроків

Іменована сутність (AISHELL-NER Test)

19,91%

2,02%

Змішана мова, читані репліки (ASRU2019)

28,57%

1,36%

Змішана мова, спонтанна розмова (CS-Dialogue)

19,73%

4,16%

Верхні два рядки — це рівно ті класи, що ламають українську телефонію: власні назви й перемикання між мовами. Обидва піддаються ремонту.

CS-Dialogue з нижнього рядка — це спонтанне розмовне перемикання мов, найближче з усього набору до реального дзвінка, і виправляється воно найгірше: 4,16% проти 1,36% у сусідній умові. Токенна метрика там узагалі майже не рухається, 14,44% на старті проти 13,28% після десяти кроків. Автори пояснюють це більшою складністю спонтанного розмовного код-світчингу.

Український суржик у телефонній розмові — це спонтанне перемикання мов усередині репліки. Найближчий доступний аналог поводиться найважче, і закладати в план треба саме його поведінку, а не найкращий рядок таблиці.

Межа результату: користувач у цьому експерименті теж модель

Десять кроків уточнення виконує не людина, і в переказах роботи ця деталь зникає першою. Автори побудували Interactive Simulation System: модель Qwen3-32B порівнює поточний транскрипт з еталоном, формулює виправлення, а Index-TTS-1.5 озвучує його голосом того самого мовця. Та сама Qwen3-32B працює трьома різними компонентами — коригувальною моделлю, генератором виправлень у симуляторі користувача й семантичним суддею.

Тобто в експерименті співрозмовник бачить правильну відповідь, завжди доступний і не втомлюється виправляти десять разів поспіль. Жодна з цих трьох властивостей не переживає контакту з живим абонентом, який дзвонить у компанію.

Практичний висновок дають самі автори, і він тримається краще за фінальні цифри: більшість семантичного виграшу приходить рано. На GigaSpeech перше ж уточнення знімає 21,47% до 12,35% — приблизно 42% помилок за один перепит. На ASRU2019 один крок дає 28,57% → 10,32%, тобто близько 64%. Десятий крок у виробничому сценарії не настане ніколи, а перший настане завжди.

Що це означає для архітектури голосового агента

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

Четверте рішення складніше, бо суперечить першому враженню від таблиці. Після рядка «10 кроків, S²ER 3,49%» виникає спокуса закласти в сценарій цикл уточнень, який крутиться, доки агент не переконається, що зрозумів. У живому дзвінку такий цикл вбиває розмову: людина, яку втретє перепитують про назву міста, кладе слухавку, і в логах це осяде як технічно бездоганна сесія. Перепит у бюджеті один, і витратити його треба одразу після того, як критичне поле прозвучало, поки контекст ще живий, а не наприкінці розмови зведеним підтвердженням усіх полів разом.

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

Що міряти замість WER

Приймальна метрика голосового агента має відповідати на питання «чи можна виконати те, що почули», а не «скільки слів збіглося».

Робочий мінімум складається з трьох замірів на власних записах. Перший — частка реплік, у яких сенс не зберігся: бінарна оцінка на кожну репліку, за тим самим принципом, що й S²ER. Другий — точність по полях, від яких залежить маршрут ліда, окремо від решти транскрипту. Третій — частота перепитів і частка розмов, де абонентові довелося виправляти те саме двічі; цей показник ловить те, чого не видно ні в WER, ні в S²ER, — втому співрозмовника.

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

Матеріал підготував Andrew Maryasov, засновник Grow2.ai — компанії, що впроваджує AI-агентів у бізнес-процеси. Цифри звірено з препринтом arXiv:2605.29430 станом на 26 серпня 2026 року. Потрібна оцінка голосового сценарію для ваших дзвінків — [напишіть нам](/uk/contact).

Часті запитання

Чим виправлення помилок розпізнавання мовлення відрізняється від переписування транскрипту?

Переписування — це генерація репліки заново, коли модель відтворює весь текст, зокрема правильно розпізнані слова. Виправлення в підході Agentic ASR — це послідовність із трьох операцій: знайти фрагмент, який треба змінити, вивести з контексту потрібну правку, застосувати її до знайденого місця. Решта транскрипту лишається недоторканою. Автори прямо називають це альтернативою некерованому одноетапному переписуванню.

Що таке S²ER і навіщо він, якщо є WER?

S²ER (Sentence-level Semantic Error Rate) — частка реплік, які не зберегли задуманий сенс. Оцінка бінарна на кожну репліку: судова модель дивиться на головний намір і ключові смислові одиниці, насамперед власні назви, та ігнорує заповнювачі й пунктуацію. WER міряє інше — частку неправильно розпізнаних слів, не розрізняючи, чи важило конкретне слово. Розрив між метриками видно на числах: за десять кроків уточнення S²ER на GigaSpeech падає з 21,47% до 3,49%, а WER — лише з 11,92% до 10,43%.

Чому модель підміняє власні назви саме при переписуванні?

Тому що переписування відтворює репліку заново, а не змінює її фрагмент. Рідкісне слово при кожному новому проході має шанс з'їхати до частішої схожої форми — так *Megan* стає *Morgan* у прикладі, з якого починається стаття. Точкове редагування цього ризику не створює: слова поза знайденим фрагментом не переписуються взагалі.

Скільки кроків уточнення потрібно, щоб виправити транскрипт?

Основний виграш дає перший крок. На GigaSpeech одне уточнення знімає близько 42% семантичних помилок (21,47% → 12,35%), на змішаній англо-мандаринській ASRU2019 — близько 64% (28,57% → 10,32%). Подальші кроки покращують результат, але дедалі повільніше. Для голосового агента це означає закладати в сценарій один перепит критичного поля одразу після того, як воно прозвучало.

Чи працює це для української та суржику?

Заміру українською в цій роботі немає — бенчмарки охоплюють англійську, мандаринську та змішану англо-мандаринську мову. Прямий аналог суржику тут — спонтанне розмовне перемикання мов (набір CS-Dialogue), і це найважчий рядок у таблиці: S²ER падає лише до 4,16% проти 1,36% на читаних репліках, а токенна метрика майже не рухається — з 14,44% до 13,28%. Механіку переносити варто, відсотки — ні.

Чи можна поставити корекційний шар поверх слабкої моделі розпізнавання?

Автори перевіряли це окремо, замінюючи базову модель Qwen3-ASR-1.7B на сильнішу FireRedASR2-LLM-8.3B і на помітно слабшу Whisper. Виграш від уточнення отримали всі три, зокрема Whisper, який після кількох кроків приходить до значно нижчого S²ER, ніж на старті. Висновок у роботі сформульовано так: підхід не просто полірує вже сильні гіпотези, а здатний підтягнути слабку систему розпізнавання до придатної семантичної точності через саму лише взаємодію.

Як перевірити це на власних дзвінках?

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

AI-агенти для бізнесу — 2–3 листи на місяць

Розбори, кейси та інструменти, які вже працюють у компаніях.

Без спаму. Відписатися можна в один клік.