Azure Speech Services: інтеграція STT і Custom Speech

Живі записи дзвінків і нарад розпізнаються неточно, а розбір архіву розтягується на місяці. Ми налаштовуємо Azure Speech Services під ключ: донавчаємо модель на ваших даних, прискорюємо розшифрування та підвищуємо точність розпізнавання. Результат — розшифрування, на які можна спертися в роботі.
Часті запитання

Чому Azure Speech Services помиляється на живих записах

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

Вузькосмуговий телефонний канал, стиснення, відлуння від спікерфона, гул офісу й музика на утриманні знижують розбірливість ще до того, як сигнал доходить до моделі, — і Azure Speech Services на такому вході видає впевнено неправильні слова замість порожнього місця.

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

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

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

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

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

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

Ефект від налаштування: точність, швидкість, розбір архіву

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

Нижче — орієнтири, які ми бачимо на проєктах після налаштування Azure Speech Services під галузеву лексику.

Метрика До налаштування Після налаштування
Частка неправильно розпізнаних слів на галузевій лексиці 12–20% 4–7%
Розшифрування архіву: записи на кожну годину аудіо 40–60 хвилин 4–8 хвилин
Записи, придатні до роботи без ручної правки 55–70% 90–96%
Розпізнаваність термінів і абревіатур зі словника нижча за загальну точність не гірша за загальну точність

Зрушення дає не «налаштування взагалі», а два важелі: модель донавчається на ваших записах, а мовна модель — на словнику термінів, абревіатур і назв. Тому якість зростає саме там, де базова модель помилялася найчастіше.

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

Підсумок — розшифрування перестає бути ручним проєктом: обсяг архіву зростає, а частка правок падає.

Режими Azure Speech: потік, архів, донавчання моделі

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

Пакетне розшифрування аудіо — для того, що вже накопичено: архів дзвінків, записи зустрічей, розбір звернень за період.

Донавчання моделі розпізнавання — не третій режим поряд, а шар поверх обох.

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

Варіант Коли підходить Обмеження
Потокове розпізнавання мовлення живі діалоги, субтитри, голосові сценарії, де реакція потрібна одразу потрібен безперервний канал і рівний аудіопотік; під час обривів зв’язку частина реплік губиться й зростає частка помилок
Пакетне розшифрування аудіо архіви записів, розбір дзвінків за період, довгі зустрічі результат надходить із затримкою; обсяг обробляється цілком, довгі файли ріжуться на фрагменти
Донавчання моделі розпізнавання галузева лексика, абревіатури, імена, акценти, шумні записи потрібен розмічений корпус; після оновлення базової моделі якість перевіряють заново

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

Як будується впровадження: від пілота до передачі

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

  1. Розбір задачі та аудіо. Зводимо джерела звуку (телефонія, мікрофони, архіви), рівень шуму, кількість мовців і припустиму затримку. На виході — список сценаріїв, які система зобов’язана закрити.

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

  3. Пілот на реальних записах. На розміченій вибірці з архіву заміряємо базову якість до будь-яких доопрацювань. Це точка відліку: далі кожну зміну порівнюємо з нею, а не з відчуттями.

  4. Налаштування моделі під галузь. На Azure Speech Services донавчаємо акустику й мовну модель на термінах, абревіатурах і назвах, які загальний рушій чує неправильно; окремо налаштовуємо форматування номерів і дат.

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

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

На виході — робоча інтеграція, набір записів для регресії та регламент оновлення моделі.

Конфігурації, словники й політики доступу до сервісу

Артефакти адаптації залишаються в контурі замовника: ми передаємо не «налаштований сервіс», а відтворюваний комплект конфігурацій.

Azure Speech Services — базовий шар, поверх якого живуть профілі моделей, словники й правила доступу: їх можна перезібрати, перевірити й відкотити без нашої участі.

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

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

Кейс: розшифрування архіву звернень за тиждень

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

Базове розпізнавання на загальній моделі давало частку помилок у словах близько 28%: назви тарифів, імена операторів і галузеві абревіатури перетворювалися на випадковий набір літер, а пошук за розшифровками не знаходив потрібні розмови. Вибіркова ручна звірка займала тижні й усе одно покривала малу частку архіву.

Працювали на Microsoft Azure: зібрали корпус із 40 годин аудіо з ручною розміткою, окремо розмітили сутності — номери замовлень, коди послуг, назви тарифів.

Навчили власну модель на цьому корпусі, додали списки фраз для імен і абревіатур, увімкнули розділення за каналами, розмітку «хто говорить», нормалізацію гучності та сегментацію за паузами перед подачею в сервіс. Конфігурацію версіонували — на будь-якому кроці можна повернутися до попередньої моделі.

На відкладеній тестовій вибірці частка помилок у словах знизилася з 28% до 11%, а за ключовими сутностями — до 4%: номери замовлень і назви послуг розпізнаються майже без правок.

Архів у 40 000 годин пройшов обробку за тиждень паралельними завданнями, частка фрагментів, які довелося повторно надіслати через збій, — менше 1%. Пошук за розшифровками став знаходити розмови за згадкою послуги, а не за датою дзвінка.

Чим донавчання моделі відрізняється від базової версії?

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

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

В Azure Speech Services адаптацію розділено на два незалежні шари. Мовний спирається на текстовий корпус — транскрипти, глосарій, список фраз — і править лексику: складені терміни, артикули, імена.

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

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

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

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

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

Часті технічні сумніви перед стартом проєкту

Заперечення на старті майже завжди ті самі: запис шумний, аудіо не можна випускати за периметр, а якість потрібно довести на своїх даних, а не на демо-роликах. Нижче — конкретика за кожним пунктом, включно з випадком, коли розпізнавання вже розгорнуто на іншому рішенні.

Наскільки просяде точність, якщо в записі шум, музика або кілька мовців?

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

Аудіо не повинно покидати закритий контур — це здійсненно?

Так: розпізнавання розгортається в контейнерах усередині вашої інфраструктури, записи й тексти не йдуть у зовнішні сервіси.

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

Як перевірити якість розпізнавання до впровадження?

Збираємо репрезентативну вибірку — записи з усіх каналів і умов, де сервіс буде працювати. Розмічуємо, рахуємо метрики й розбираємо помилки за класами: термінологія, цифри, імена, перекриття мовлення.

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

Галузева термінологія змінюється — переробляти все заново?

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

Ми працюємо з Azure Speech Services і сумісними рушіями, тому заміна або донавчання моделі не ламає логіку застосунку й сценарії обробки.

Обговоримо задачу: що потрібно для старту робіт

Щоб обговорити задачу розпізнавання мовлення предметно, до розмови варто зібрати кілька речей. За ними одразу видно, чи вистачить базової моделі або потрібне навчання Custom Speech на ваших даних, і складається обсяг робіт.

  • Приклади записів — 20–30 файлів на кожен сценарій: тиха переговорна, шумний цех, телефонна лінія. За ними рахуємо реальний рівень помилок до донавчання.
  • Джерела аудіо — телефонія, записи нарад, диктофони, потік з мікрофонів. Від цього залежить придушення шуму й розділення мовців.
  • Словник термінів — назви продуктів, посади, абревіатури, імена. Він іде в налаштування вимови й знімає помилки на вузькій лексиці.
  • Вимоги до точності — де вистачить чорнової розшифровки, а де потрібен посимвольний розбір. Це задає обсяг розмітки й кількість ітерацій навчання.
  • Навантаження — скільки годин аудіо надходить за добу і який пік. Звідси вибір: пакетна обробка або потокове розпізнавання.
  • Правила роботи з даними — де зберігати аудіо й текст, скільки тримати, хто має доступ, чи потрібне знеособлення перед навчанням.
  • Точки інтеграції — куди віддавати результат: система обліку, сховище, шина подій — і в якому форматі його чекають.

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

Опишіть задачу — повернемося з оцінкою та планом.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142