Распознавание речи: теория и практика

Распознавание речи
Распознавание речи

Распознавание речи (speech-to-text — STT) — это процесс автоматического преобразования речи в текст.

Распознавание речи появилась еще в середине прошлого столетия, но эффективность современных решений обусловлено бурным развитием нейронных сетей в последние несколько лет. Ядро любой современной системы STT — предобученная языковая модель. Давайте определим основные термины.

Языковая модель

Языковая модель — это предобученная рекуррентная нейронная сеть, которая позволяют определить наиболее вероятные последовательности слов, оценивая статистические связи между словами. Сейчас набирают популярность гибридные языковые модели, использующие правила грамматики языка, информацию о части речи и форме слова, а также статистическую модель.

Точность распознавания может быть усовершенствована тремя путями:

  1. Дообучением модели на специфичных для вашего бизнеса данных
  2. Посредством уточнения контекста, в том числе в реальном времени
  3. При помощи словаря грамматик.

Локальное распознавание речи Call Office использует модели, обученные на огромном массиве данных, включающих аудиокниги, видео с Youtube и записей телефонных разговоров.

Задачи распознавания речи

Исследователи выделяют три основных сферы ответственности для современных систем распознавания речи.

  1. Голосовая активация / Голосовые команды.

Это классическая задача, в которой голосовой интерфейс выступает как средство ввода/вывода компьютера. Она не требует для своего решения лингвистических моделей высокой сложности и может быть реализована на базе словарей и грамматик JSGF.

  1. Транскрибация / Расшифровка аудиозаписей

Это уже значительно более сложная задача, требующая от системы распознавания широкого лексикона.

  1. Выделение смысловых объектов для ведения диалога

Наиболее сложная задача, потому что требует ни только достаточной сложности модели, но и высокой скорости её работы.

Процесс распознавания

 Мы выделяем 5 основных этапов в распознавании речи:

  1. Подготовка аудио. Аудиопоток разбивается на фреймы по несколько секунд, такие фрагменты называют «chunks«. Отдельные «чанки» отправляются на распознавание.
  2. Токенизация. Предварительно обработанные аудиофрагменты отправляются в «акустическую модель«, которая преобразует последовательность звуковых импульсов в так называемые «токены«. Токенами называют наиболее распространённые последовательности фонем (и букв, соответственно). Токены могут представлять собой слоги, отдельные фонемы или даже целые слова. Будет ли данная последовательность фонем определена как токен зависит от её частотности в обучающей выборке.
  3. Распознавание слов. Полученный набор токенов проходит через «лингвистическую модель«, представляющую собой конечный автомат для преобразования последовательностей. Языковая модель, оценивает вероятность встретить текущий токен среди предыдущих и последующих. Таким образом происходит выделение отдельных слов, а речь преобразуется в текст фразы.
  4. Постобработка. В распознанном тексте расставляются знаки препинания, а числительные преобразуются в цифры. Такую постобработку называют «денормализацией«, подробнее о ней ниже. В локальном распознавании Call Office вы можете управлять ей при помощи параметров «Денормализация» и «Пунктуация».
  5. Получение результатов. Для каждого фрагмента речи указывается список вариантов распознанного текста (alternatives). С помощью флага «Получать промежуточные результаты распознавания» можно быстрее реагировать на распознаваемую речь, не дожидаясь окончания фразы.

Специфика распознавания речи Call Office

STT Call Office представлено в двух вариантах

  1. Встроенное локальное распознавание речи

Интегрировано непосредственно в Call Office и исполняется прямо на вашем локальном PC. Для локального распознавания мы используем небольшую модель (порядка 80мб в оперативной памяти), обученную на ограниченной выборке данных. Она неплохо справляется со своей задачей, нетребовательна к ресурсам вашего ПК и работает ОЧЕНЬ быстро, но не обладает широтой возможностей, доступной серверному решению, и недостаточно хорошо справляется с числительными.

  1. Серверное распознавание речи

Представляет собой Docker-контейнер на базе Debian, исполняющий GRPC-STT-Server. Общение между Call Office и сервером происходит по протоколу GRPC. На сервере используется большая нейронная сеть (порядка 12Гб в оперативной памяти). Мы считаем, что её качество на уровне корпоративных отраслевых решений. При этом серверное решение обладает набором дополнительных возможностей, недоступных малой модели.

Преимущества локального распознавания от Call Office

  1. Скорость. Локальный сервер распознавания гарантирует минимальные сетевые задержки. Это важно, если вы находитесь достаточно далеко от физического расположения сервера STT, как часто бывает при работе с веб-сервисами распознавания. Наш опыт показывает, что время распознавания может увеличиваться вплоть до нескольких секунд в зависимости от растояния, что критично при общении с бота с абонентов в реальном времени.
  2. Безопасность и приватность. Значительные вопросы может вызывать безопасность предаваемых сервису распознавания данных. Особенно актуально это при работе с персональными данными клиентов. Владея собственным локальным распознаванием речи, вы можете быть уверены в их безопасности, потому что они не передаются третьим лицам и не покидают сети предприятия.
  3. Независимость от интернета. При работе с веб-сервисами распознавания может стать проблемой качество интернет-соединения. Мы не редко сталкивались с ситуацией, когда обращения к сервису распознавания речи было заблокировано системным администратором или службой безопасности предприятия. Локальный сервер распознавания речи в периметре предприятия гарантирует вашу независимость от работы провайдера или системных администраторов.
  4. Возможность влиять на параметры распознавания. Ни один сервис распознавания не будет дорабатывать STT под ваши нужды или как-либо модифицировать своё API или возвращаемые результаты, потому что один сервер может обслуживать тысячи клиентов. Для сокального сервиса же, вы — единственный клиент. Мы можем адаптировать STT под потребности вашего бизнеса по запросу в рамках услуг разработки индивидуальной конфигурации. Обладание собственной локальной системой распознавания даёт массу преимуществ в её совершенствовании и развитии.
  5. Независимость от ценовых политик сервисов. Приобретая лицензию на использование сервера STT для работы в периметре, вы становитесь независимы от капризов поставщика, как это недавно произошло с Яндекс, который существенно поднял стоимость синтеза речи по собственной прихоти.
  6. Возможность приобрести безлимитное распознавание. Вы можете приобрести сервер распознавания на безлимитной основе. Это означает, что мы никак не будем ограничивать или контролировать его использование. Отсутствие абонентских платежей и безлимит – гарантия вашей выгоды.

Дополнительный инструментарий распознавания речи

  1.  Денормализация. Специфичная постобработка результатов распознавания, преобразующая числительные в цифры. Используется, если предполагается последующая обработка результатов распознавания в каких-либо внешних системах, например, при получении показаний индивидуальных приборов учёта от жильцов.
  1. Пунктуация. Ещё один инструмент постобработки. Автоматическая расстановка пунктуации — нетривиальная задача, которую в нашем приложении решает нейросеть BERT от Google. BERT — это усовершенствованная сеть GPT от OpenAI на архитектуре Transformer.
  1. Разметка временных меток (таймингов). Важный элемент любых систем обработки и анализа полученных результатов распознавания, необходимый, например, для диаризации.
  1. Диаризация (определение дикторов). Это процесс разделения аудиопотока и результатов распознавания на отдельные фрагменты и определение их принадлежности определённому диктору. Современные системы диаризации используют метод «косинусной близости/сходства» (cosine distance), то есть определяют степень похожести голоса диктора на один из «эталонных» голосов, знакомых системе распознавания. Для качественной диаризации очень важна продолжительность аудиофрагмента, лучшие результаты можно получить на фрагментах порядка 7-10 секунд.
  2. Распознавания эмоций, оценки пола и возраста диктора. Наиболее перспективная из списка задач современного распознавания речи — распознавание вторичных признаков, относящихся как к эмоциональной оценке речи диктора, так и его личных характеристик.

Виды распознавания Call Office

  1.  Транскрибация

Позволяет преобразовывать в текст предварительно записанные аудиофайлы. Это могут быть записи телефонных разговоров, совещаний, лекций или, например, его можно использовать для автоматического создания субтитров к видео. В основе любой современной системы аналитики для контакт-центров лежит распознавание речи. С нашим решением, вы сможете быстро расшифровать большие массивы аудиоданных.

  1. Потоковое распознавание

Потоковый режим предназначен для распознавания аудио в режиме реального времени. Он позволяет одновременно отправлять аудио на распознавание и получать результаты в рамках одного соединения. В этом формате возможно получать промежуточные результаты распознавания.

Заключение

Развитие современных технологий распознавания речи делает эту передовую технологию всё более доступной для рядовых пользователей, малого и среднего бизнеса. На протяжении десятилетий лозунгом нашей компании было «Делать передовые технологии доступными». И разработка собственной локальной системы распознавания стала важным шагом на этом пути. Узнайте больше о локальном распознавании Call Office здесь.

Понравилась статья? Расскажите друзьям!

Добавить комментарий

Ваш адрес email не будет опубликован.