УДК 004

Проектирование системы для речевой обработки и аналитики

Ткаченко Алексей Николаевич – студент магистратуры Института информатики и телекоммуникаций Сибирского государственного университета науки и технологий имени академика М.Ф. Решетнева.

Аннотация: В статье рассмотрены технологии для обработки текстовой и аудио информации, варианты использования открытых данных для преобразования записанной речи в текст и обработка полученной текстовой информации при применении различных современных технологий.

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

Ключевые слова: Natural Language Processing, NLP, обработка естественного языка, обученные модели, микросервисы, нейросети.

Введение

За последние годы, многие крупные компании, такие как google [1], facebook [2], yandex [3] и другие организации предложили в открытом доступе различные обученные модели и технологии при помощи, которых можно анализировать текстовые данные. Также параллельно идет развитие других открытых проектов по распознаванию речи, например kaldi[4], vosk[5], wav2letter[6], SpeechRecognition[7], DeepSpeech[8] . Такие технологии стали доступнее и многие компании находятся перед выбором, использовать готовые сервисы или на основе open source проектов развивать свои. На данный момент создать собственный коммерческий продукт – это вопрос затраченных часов на разработку программного обеспечения, который будет использовать api сервисов и дальнейший анализ. Выбор пользователя в пользу использования того или иного инструмента зависит от существующих требований и бюджета.

Такого рода технологий можно применять в различных областях науки, бизнеса, а также социальных-проектов. Например, в логопедических группах в детских садах, специализированных школах и других учреждениях, которые лечат недуги. Готовых приложений, нацеленных на данную аудиторию в открытом доступе, нет.

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

Целью данной работы является: разработать MVP-решение для преобразования речи в текстовую форму представления данных с аналитическими функциями.

Исходя из поставленной цели, были выделены следующие задачи:

  • Проанализировать существующие решения и возможности в области анализа речи;
  • Апробировать существующие открытые технологии обработки естественного языка;
  • Спроектировать программное решение;
  • Разработать MVP-проект.

Анализ полученных данных – это ключевое значение для результата. Ведь грамотно и системно собранный анамнез – это залог правильной постановки диагноза.

В настоящий момент развитие IT компаний смещается в сторону открытых решений, которые могут работать автономно и не зависеть от поставщика услуг, который может находится за пределами страны.

Сервисов для проверки орфографии, грамматики для разных языков, достаточно. Сравнения характеристик по отношению к цене, хорошо озвучено в аналитическом сборнике №2 [9].

Обзор существующих решений

На рисунке 1 представлены данные о программных сервисах, которые используется для анализа речи за 2018 год. Анализ тональности текста занимает не последнюю роль т.к. необходимо иметь представление о эмоциональном состоянии и ситуации при которых человек, может игнорировать корректные правила русского языка и делать различного рода ошибки в произношении и грамматике.

1

Рисунок 1 Анализ тональности – обзор существующих сервисов за 2018 год.

На рисунке 2, представлена информация о Российских компаниях, которые занимаются компьютерной лингвистикой и области применения технологий.

2

Рисунок 2. Области технологий, в которых работают российские компании.

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

На данный момент существуют различные автоматические обработки текстовой информации и для решение этой задачи необходимо проведения анализа текста на следующих уровнях представления [10]:

  1. Графематический анализ – выделение из массива данных предложений и слов (токенов);
  2. Фонетический анализ – определение количества букв, звуков, ударения в слове, выделение гласных и согласных звуков, их классификация, то есть подробный анализ слова, с точки зрения его правильного произношения;
  3. Морфологический анализ – выделение грамматической основы слова, определение частей речи, приведение слова к словарной форме;
  4. Синтаксический анализ – выявление синтаксических связей между словами в предложении, построение синтаксической структуры предложения;
  5. Семантический анализ – выявление семантических связей между словами и синтаксическими группами, извлечение семантических отношений;
  6. Лексикографический анализ – описывает лексику, отдельные слова, их грамматические и семантические свойства, а также методы создания словарей.

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

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

Такого рода системы применяются для апробации методов проведения вычислительных экспериментов, в качестве составных частей (библиотек, фреймворков) для систем, решающих прикладные задачи.

Разработка приложения данных на основе анализа естественного языка начинается с получения текстовых данных подходящего типа и создания корпуса, содержащего структурные и контекстные признаки предметной области, в которой вы работаете. [11].

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

На данный момент существуют как платные ресурсы, которые могут переделать речь в текст – yandex speech[12], google speech[13], другие облачные провайдеры, так и бесплатные решения, которые можно использовать на мощностях собственного компьютера – например vosk-server (основан на kaldi, но имеет свой API) и другие открытые решения.

Стоит отметить, что количество ошибок на слово и качество транскрибации аудио в текст является качественным параметром, поэтому разработчик приложения может иметь собственную оценку качества. Но, как показывают наблюдения, чем лучше обучена модель, тем меньше допускается ошибок при распознавании речи.

Основная мотивация также заключается в использовании морфем для морфологически богатых языков и это позволяет кодировать больший объем семантической информации.

Анализ интонации, производится не только используя текст, но и аудио [14] – в зависимости от количества признаков, результаты точности анализа будут выше.

На рисунке 3 представлена структура системы анализа настроений.

3

Рисунок 3. Предлагаемая структура системы анализа настроений.

В таблице 1 рассмотрены открытые и бесплатные сервисы для проверки грамматики.

Таблица 1. Открытые и бесплатные сервисы для проверки грамматики. [15, 16, 17, 18, 19]

Сайт сервиса

API

FREE

Расширения для браузера

LanguageTool

 +

 +

 +

Textgears

 +

Условно

 -

NLP Cloud

 +

Условно

 -

Bing Spell Check API v7

 +

 -

 -

Яндекс Спеллер

 +

 +

 -

Условно бесплатными являются сервисы, которые предоставляют возможности бесплатного использования с целью тестирования на начальных этапах. На данный момент, малое количество участников рынка делают бесплатные расширения для браузеров. Данные сервисы работают и корректно находят типовые ошибки, чтобы их сравнивать необходим достаточно большой dataset и вычислительные ресурсы.

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

В таблице 2 представлены характеристики существующих решений в сравнении с разработкой собственного решения для преобразования речи из аудио в текст.

Таблица 2. Сравнение решений для преобразования речи из аудио в текст.

 

Собственная система

Google Speech

Yandex SpeechKit

Voximplant

Работает в облаке

+

+

+

+

Возможна работа локально на стороне заказчика

+

+

+

+

Рост стоимости/количество

 

-

-

-

Интеграция в инфраструктуру заказчика без доступа в интернет

+

+

+

-

Возможность доработки системы (кастомизация)

+

-

-

+

Возможность обучения своих моделей

+

-

-

Условно

В представленной информации в таблице 2 отсутствует параметр wer (world error rate), процент на уровне слов, но не все провайдеры предоставляют данные характеристики т.к. такого рода показатель зависит от того, на основе каких данных обучен dataset и насколько зашумленные данные будут использоваться. Необходимо отметить, что облачные системы от крупных провайдеров распознают аудио лучше, чем открытые, поэтому стоимость использования различная. При наличии достаточного количества данных провайдеров возможно сравнить [20].

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

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

Тестирования существующих инструментов распознавания речи

Создавать собственные векторные модели представления слов в настоящее время возможно, также как заимствовать уже готовые решения для своих приложений. На данный момент существует библиотека – FastText – разработанная facebook (запрещенная на территории Российской Федерации организация) и предоставлена в общий доступ в 2015 году. Содержит предварительно обученные модели векторного представления слов и классификатор – алгоритм машинного обучения, разбивающий слова на классы. Для FastText распространяются такие модели на 157 языках [21].

Тестовый стенд имеет следующие основные технические параметры:

  • Требуется большой объем оперативной памяти, поскольку распакованная модель на русском языке составляет 7,3 гб;
  • Среда выполнения ОС Ubuntu 22.04.
  • Приложение возможно запустить в виде скомпилированного бинарного файла или в среде python3, но для проекта приложения используется сервер на основе flask [22]. Приложение переработано с других ресурсов для возможности быстрого запуска.

На рисунке 4 представлена информация о загрузке процессора, оперативной памяти и дисковой системы в случае запуска приложения, как сервера.

4

Рисунок 4. Информация о нагрузке на процессор, оперативной памяти и дисковой системы.

Исходя из информации, представленной на рисунке 4, распакованная модель должна быть в оперативной памяти, что накладывает повышенные требования к наличию достаточно объема оперативной памяти. Кроме того, необходимо сделать собственный dataset для решения конкретных задач.

В качестве примера использования технологии может быть рассмотрена задача распознавания слов паразитов. Для этого необходимо создать список слов паразитов, которые не должны встречаться в речи.

5

Рисунок 5. Тренировка модели используя FastText.

Исходя из представленных результатов на рисунке 5 можно сделать вывод, что классификация работает. При использовании утилиты FastText, был получен результат виде классификации текста по меткам, где нужно надо только заполнить dataset и обучить модель. FastText является лучшим выбором среди программ основанных на skip-gram-based [23]. Представленный выше пример показывает, как технология, которой уже 7 лет, может использоваться и показывать качественные результаты и решать поставленные задачи. На данный момент есть фреймворки, которые включают в себя различные проекты, например, фреймворк DeepPavlov – также позволяет осуществлять классификацию текстов и определять интонацию.

Проектирование и реализация

Для реализации предлагаемо решения необходимо наличие следующих компонентов:

  • Среда выполнения ОС Ubuntu 22.04;
  • Виртуальный контейнер с системой оркестрации kubernetes [24];
  • Инструмент мониторинга и оповещения о событиях Prometheus [25];
  • Инструмент управления трафиком Nginx ingress controller [26];
  • Flask-сервер для взаимодействия с пользователем;
  • Объектно-реляционная база данных PostgreSQL [27]
  • Сервер проверки грамматики;
  • Системы для определения голоса Vosk-server упакованный в чарт и подключение осуществляется, используя node-port через протокол web socket [28].

На рисунке 6 представлено схематичное представление проекта mvp-приложения и программные компоненты. Разрабатываемый программный продукт будет иметь микросервисную архитектура, поэтому в случае необходимости масштабирования компоненты основного сервиса, через который осуществляется процесс пропуска данных, возможно отделение программного кода и добавление новых маршрутов.

6

Рисунок 6. Схематичное представление проекта mvp-приложения и компоненты.

На рисунке 7 представлена структурированная модель приложения, отражающая информационные потоки и между собой связанные процессы.

7

Рисунок 7. Структурированная модель приложения.

Заключение

Таким образом, был предложена микросервисная архитектура для системы распознавания речи из аудио и анализирования на основе различных параметров и характеристик речи. Полученные результаты данного проекта доступны в реппозитории Github [28].

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

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

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

Список литературы

  1. Getting started with the built-in BERT algorithm [Электронный ресурс]. – URL: https://cloud.google.com/ai-platform/training/docs/algorithms/bert-start.
  2. fastText / GitHub [Электронный ресурс]. – URL: https://github.com/facebookresearch/fastText.
  3. YaLM 100B / GitHub [Электронный ресурс]. – URL: https://github.com/yandex/YaLM-100B.
  4. Kaldi Speech Recognition Toolkit / GitHub [Электронный ресурс]. – URL: https://github.com/kaldi-asr/kaldi.
  5. Vosk Server / GitHub [Электронный ресурс]. – URL: https://github.com/alphacep/vosk-server
  6. Wav2letter [Электронный ресурс]. – URL: https://ai.facebook.com/tools/wav2letter.
  7. SpeechRecognition [Электронный ресурс]. – URL: https://pypi.org/project/SpeechRecognition.
  8. DeepSpeech / GitHub [Электронный ресурс]. – URL: https://github.com/mozilla/DeepSpeech.
  9. Альманах, аналитический сборник №2 Центр Национальной технологической инициативы на базе МФТИ по направлению «Искусственный интеллект», август 2019 г.
  10. Компьютерный анализ текста / Брестский государственный университет имени А.С. Пушкина [Электронный ресурс]. – URL: http://lab314.brsu.by/kmp-lite/CL/CL-Lect/KAT.htm.
  11. Прикладной анализ текстовых данных на Python, Машинное обучение и создание приложений обработки естественного языка, Бенджмин Бенгфорт, Ребекка Билбро и Тони Охеда, стр 41.
  12. Yandex SpeechKit [Электронный ресурс]. – URL: https://cloud.yandex.ru/services/speechkit.
  13. Google Speech-to-Text [Электронный ресурс]. – URL: https://cloud.google.com/speech-to-text.
  14. Maghilnan S., Rajesh Kumar M. Sentiment Analysis on Speaker Specific Speech Data / [Электронный ресурс]. – URL: https://arxiv.org/abs/1802.06209?context=cs.
  15. LanguageTool - Проверка орфографии, грамматики и стилистики онлайн [Электронный ресурс]. – URL: https://languagetool.org.
  16. Документация API Textgears [Электронный ресурс]. – URL: https://textgears.com/ru/api.
  17. Grammar and Spelling Correction API, based on GPT [Электронный ресурс]. – URL: https://nlpcloud.com/nlp-grammar-spelling-correction-gpt-j-api.html.
  18. Справочник по API проверки орфографии версии 7 [Электронный ресурс]. – URL: https://learn.microsoft.com/ru-ru/rest/api/cognitiveservices-bingsearch/bing-spell-check-api-v7-reference.
  19. Яндекс Спеллер [Электронный ресурс]. – URL: https://yandex.ru/dev/speller.

Интересная статья? Поделись ей с другими: