Експертиза · Транскрипція та переклад
Мова в текст, українською та російською, зі згодою, записаною до першої секунди аудіо.
Ми транскрибуємо аудіо в реальному часі або з файлу, перекладаємо між румунською та російською в розмовах із клієнтами й надаємо текст із часовими позначками, аудіоекспортом і слідом згоди. Розпізнавання мовлення ми запускаємо через постачальників, через наш gateway; власна модель румунської мови — це дослідження, а не продукт.
Вже збудованоDouă implementări proprii, ambele deschise și citate. Prima e o aplicație de transcriere în flux, cu backend Express de 3.378 de linii în 25 de fișiere și 37 de teste pe care le-am rulat azi — toate trec; ea conține partea pe care nimeni nu o construiește din entuziasm: o poartă de consimțământ care refuză captura când nu există acord înregistrat. A doua rulează în producție, la clienți reali: mesajele vocale primite pe canalele de mesagerie sunt transcrise, iar răspunsul scris de un operator în română este rescris în limba clientului înainte de a pleca. Ce NU intră în „delivered” și e scris ca atare în pagină: modelul propriu de recunoaștere și sinteză în română este cercetare — nu are demonstrație publică, nu are interfață de programare, iar pe acuratețe în română pierde față de sistemele comerciale mari. Serviciul se vinde pe ce rulează, nu pe ce studiem.
Транскрипція здається вирішеною проблемою, доки не застосуєш її до румунської, з двома співрозмовниками, що перебивають одне одного, цифрами, сказаними швидко, і клієнтом, який переходить на російську посеред фрази. Тоді з’являються три справжні проблеми: яку модель обрати для мови перед вами, як зрозуміти, де закінчується черга мовлення, і хто дав вам дозвіл на запис. Ми займаємося всіма трьома, і останню розглядаємо як проблему коду, а не як абзац політики.
У нашому застосунку потокової транскрипції браузер ніколи не отримує ключ постачальника. Він просить у бекенду одноразовий токен, за замовчуванням дійсний чверть години, з яким відкриває з’єднання транскрипції; маршрут, що видає токен, закритий за замовчуванням і може бути відкритий лише через явне налаштування поза продукцією, саме тому, що це маршрут, на якому витрачаються гроші. Поверх сирої транскрипції працює аналіз на моделі мови, зі списком резервних моделей у порядку, щоб недоступність однієї не зупинила сеанс.
Шлюз згоди — це частина, до якої ми ставимося особливо. Перш ніж прийняти шматок аудіо, сервер запитує рядок невідкликаної згоди для відповідної сесії. Якщо його немає, відповідає 451 і повідомленням українською. Якщо база даних не відповідає, він усе відхиляє — 503, а не «пропускає далі». Уже перевірені сесії проходять через кеш на десять хвилин, щоб короткий збій не переривав запис, що триває. Це написано так, щоб це не можна було обійти через помилку конфігурації.
Частина, яка вже є в клієнтів, інша і менш ефектна: на каналах месенджерів отримане голосове повідомлення стає текстом, а мову обирають шляхом голосування за останніми вісьмома повідомленнями розмови, а не вгадуванням з аудіо. У зворотному напрямку, коли колега відповідає румунською, його текст переписується мовою клієнта зі строгими інструкціями — не додає інформації, не вигадує цін чи строків, не суперечить оператору, і трактує текст оператора суто як дані для передавання, ніколи як інструкції для моделі.