Как мы учили нейросеть распознавать речь человека при общении с чат-ботом

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости

Новостная лента форума ailab.ru


К 2020 году коммуникации между бизнесом и клиентом будут автоматизированы, уверены эксперты консалтинговой компании Gartner. По статистике, в прошлом предприятия теряли до 30% входящих звонков — сотрудники колл-центров пропускали обращения или отвечали некомпетентно, отпугивая клиентов. 

Чтобы быстро и качественно обработать входящие запросы, бизнес использует чат-ботов. Развитие индустрии не стоит на месте: простых чат-ботов вытесняют чат-боты с ИИ и поддержкой голосового меню. Особенно это востребовано среди B2C компаний. Они используют сайты и приложения, чтобы выиграть в борьбе с конкурентами. Сверточные нейронные сети тренируют распознавать речь человека и автоматизировать обработку звонков. Они помогают сохранить связь с клиентами 24/7.

Мы уверены, в будущем колл-центры станут независимыми от квалификации операторов. Технологии синтеза и распознавания речи будут для них надежной опорой. R&D отдел компании Azoft провел по запросу клиентов новое исследование — обучал нейросеть распознавать набор из четырнадцати речевых команд. Выученные команды можно использовать для автоматического обзвона клиентов. Расскажем, к каким результатам пришли по итогам исследования, и чем это полезно для бизнеса.

Какую роль для бизнеса играют speech-to-text задачи?

Технологии распознавания речи уже применяются в мобильных приложениях — например, в Яндекс.Навигаторе или Google Now. Когда разработчики встраивают в приложения умные голосовые системы, они тем самым проявляют дружественное отношение к пользователям. Юзеры могут по желанию отказаться от сенсорных и других способов ввода информации и использовать голосовое управление, ввод команд и сообщений.

Преобразование речи в текст (speech-to-text) решает для бизнеса многие проблемы:

  • автоматизирует обработку звонков, когда клиенты хотят получить справку, заказать услуги и товары или отказаться от них, участвуют в опросах и акциях;
  • поддерживает работу интерфейса управления системами «Умный дом», интерфейса электронных роботов и бытовой техники;
  • обеспечивает голосовой ввод в компьютерных играх и приложениях и голосовое управление в салоне автомобиля;
  • позволяет внедрять социальные сервисы для людей с ограниченными возможностями;
  • помогает переводить деньги с помощью голосовых команд и пр.

«Ушами» бизнеса стали колл-центры. Чтобы эти «уши» работали автоматически, ботов тренируют с помощью машинного обучения.

R&D отдел компании Azoft имеет обширный опыт в решении задач, связанных с transfer learning. Так, мы рассказывали о технологии распознавания лиц на фотографиях и видео и о локализации объектов на изображениях с помощью нейронных сетей. В этот раз наш R&D отдел обучил сверточную нейронную сеть распознавать речевые команды и исследовать возможности сети для speech-to-text задач.

Как происходит распознавание речи нейросетью

Задача нового проекта — создать модель, способную верно определить сказанное человеком слово. Чтобы получить финальную модель, нейросеть учили на объёмном корпусе данных, и подгоняли сеть под целевые данные. Этот способ решает проблему отсутствия большой выборки целевых данных.

В рамках исследования:

  • мы изучили особенности обработки сигналов нейросетью
  • осуществили препроцессинг и выделили признаки, по которым будут распознаваться слова из звуковой записи (на вход сети идут эти признаки, на выходе — слово)
  • исследовали, как применять сверточные сети в speech-to-text задаче
  • адаптировали сверточную сеть к распознаванию речи
  • тестировали модель в потоковом распознавании

Как мы обучали нейросеть распознавать входящие аудиосигналы

Для исследования использовали звуковой аудиосигнал в формате wav, в 16bit квантовании с частотой дискретизации 16 kHz. За стандарт длительности принималась секунда. Каждая запись содержала одно слово. Мы использовали 14 простых слов: ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, десять, да, нет.

Извлечение признаков Исходное представление звукового потока выглядит как последовательность чисел по времени, а поэтому воспринимается недостаточно информативно. Мы использовали спектральное представление. Это позволяет разложить звук по волнам разной частоты и узнать, какие волны из исходного звукового потока его формировали, и какие характеристики имели. Учитывая логарифмическую зависимость восприятия человеком частот, применяли мел-частотные спектральные коэффициенты.

Процесс извлечения спектральных характеристик показан на схеме:

Схема извлечения спектральных характеристик

 

Процесс извлечения спектральных характеристик

Pre-emphasis Разные сигналы отличаются по уровню громкости. Чтобы привести аудио к одному виду, нормализовали сигналы и фильтровали их высокочастотным фильтром для уменьшения шумов. Pre-emphasis — фильтр для задач распознавания речи. Он усиливает высокие частоты, что повышает устойчивость к шуму и дает больше информации акустической модели.

Framing Исходный сигнал не является стационарным. Он делится на мелкие промежутки (фреймы), перекрывающиеся между собой, которые рассматриваются, как стационарные. К каждому фрейму применяется оконная функция Ханна, чтобы сгладить концы фреймов к нулю. В нашем исследовании мы использовали фреймы по 30 мс с перекрытием 15 мс.

Быстрое дискретное преобразование Фурье Преобразование Фурье позволяет разложить исходный стационарный сигнал на совокупность гармоник разной частоты и амплитуды. Мы применяем эту операцию к фрейму и получаем его частотное представление. Когда применяем преобразование Фурье ко всем фреймам, формируем спектральное представление. Затем вычисляем мощность спектра. Она равна половине квадрата спектра.

Log mel filterbank Многочисленные научные исследования показали: человек распознает низкие частоты лучше, чем высокие, и зависимость его восприятия — логарифмическая. Поэтому к спектру мощности применяется свертка из N-треугольных фильтров с единицей в центре (Изображение 2). С увеличением фильтра центр смещается по частоте и логарифмически увеличивается в основании. Это позволяет захватить больше информации в нижних частотах и сжать представление о высоких частотах фрейма. Данные логарифмируются.

Результат преобразования представлен на рисунке:

Результат преобразования данных

Изображение 1. Mel-спектрограмма

Набор mel фильтров
Изображение 2. Набор mel-фильтров

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

Чтобы ускорить вычисления и использовать модель на персональном компьютере, сделали ограничение при выборе архитектуры. Модель не должна быть слишком глубокой и обладать большим числом обучаемых параметров: это усложняет обучение и увеличивает число операций при прямом проходе. За основу взяли классическую архитектуру — 3-4 сверточных слоя с субдискретизацией и полносвязные слои в конце.

Подаём на вход нейросети тензор n x k, где n — количество рассматриваемых частот, k — количество временных отсчетов. Обычно n не равно k, поэтому используются прямоугольные фильтры. Архитектура модели представлена в таблице ниже:

Архитектура модели нейросети

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

Подготовка данных перед обучением

Ключевые слова

Набор ключевых слов состоит из 13 русских команд: да, нет, 0,..., 10. Всего было 485 записей с частотой дискретизации 44kHz.

Не ключевые слова — набор нецелевых слов, не подлежащий к распознаванию. Мы использовали англоязычные слова из датасета от Google и инвертированные записи из набора данных. Соотношение с полным набором данных — 15%.

Silence класс — записи, не относящиеся к речи человека. Например, окружающие шумы (город, офис, природа, помехи, белый шум). Использовали упрощенную модель для VAD задачи на базе сверточной сети. Обучили её разделять два класса: speech и no-speech. В качестве speech-данных использовали данные из датасета от Google, для no-speech — background noise и записанные вручную шумы из офисной, уличной и городской среды.

Чтобы повысить устойчивость модели к шумам и расширить модель данных, применяли методы аугментации:

  • Speed Tune
  • Pitch Shift
  • Add Noise.

Набор шумовых записей представлял десять записей по категориям:

  • Офисный шум
  • Домашний шум
  • Городской шум
  • Природный шум
  • Помехи

Когда добавляли шум, получали взвешенную сумму записи и случайной части из шума. После аугментации частоту дискретизации уменьшили до 16 KHz. Предполагаем, что результат станет реалистичнее, если использовать более детализированные записи. Мы провели операции преобразования и получили из 485 записей — 137448.

Подготовка модели Для улучшения качества модели использовали Transfer learning. Выбранную архитектуру обучили на большом корпусе данных — датасете от Google из 65000 односекундных записей для 30 команд на английском языке.

Результаты обучения и тестирования

Обучающая выборка включала 137488 объектов, тестовая — из 250 объектов. Для тестовой выборки взяли записи дикторов, которых не было в обучающей выборке. Мы обучали нейросеть с помощью Adam метода оптимизации в трёх вариациях:

  • обучение модели с нуля (Fresh);
  • заморозка сверточных слоев в предобученной модели (Frozen);
  • дообучение предобученной модели без заморозки (Pre-Trained).

В первом случае обучение проводилось в семь эпох, а во втором и третьем случае — в три эпохи. Результаты приведены в таблице:

Результат обучения нейросети

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

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

Характеристики тестового устройства:

  • Процессор: Intel Core i7 7700HQ 2.8 GHz
  • Оперативная память: 16 Gb
  • Характеристики тестирования:
  • Частота обновления входящего звукового потока: 0.25 сек
  • Количество каналов: 1
  • Частота дискретизации: 16 KHz
  • Входящий поток данный: 4000 по 16 байт.
  • Скорость распознавания:
  • Silence speech: 0.23 сек
  • Activity speech: 0.38 сек.

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

Заключение

Мы исследовали распознавание команд из речевого потока и выявили:

  • Transfer learning может помочь, когда отсутствует большой корпус данных. Важную роль при распознавании команд играет предобработка и способы представления аудиосигналов.
  • Наличие шумов сильно затрудняет распознавание аудио.
  • Подобная технология распознавания речи применима при известном небольшом словаре команд.
  • Для обучения нейросети нужны качественные данные.

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

Особенности восприятия миллениалов учитываются при разработке чат-ботов. Благодаря ним уже можно делать заказы через мессенджеры Facebook, WhatsApp, Viber, Slack, Telegram и т.п. Как считают исследователи, примерно через два года до 80% компаний увеличат число сервисов по самообслуживанию клиентов. Системы распознавания аудиосигналов будут в них полезным функционалом.
Наша команда продолжит исследовать эту тему. Мы рассмотрим новые модели обучения, способные улучшить speech2text распознавание нейронными сетями.


Источник: www.azoft.ru

Комментарии: