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

Директор по стратегическому развитию
Время чтения: 8 минут
К 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-спектрограмма
Изображение 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).
В первом случае обучение проводилось в семь эпох, а во втором и третьем случае — в три эпохи. Результаты приведены в таблице:
В результате исследования выбрали лучшим вариантом использовать предобученную нейросеть на большом корпусе данных с тонкой настройкой без заморозки сверточных слоев. В этом случае сеть лучше подстраивается под новые данные.
Тестирование в потоке
Модель также тестировалась вживую. Диктор произносил слова в микрофон, а сеть выдавала результат. Мы не использовали голос диктора в обучающей выборке. Это позволило проверить качество работы на неизвестных данных. Звук считывался каждую четверть секунды, кэшированный секундный отрезок обновлялся, и модель его классифицировала. Чтобы нейросеть реже ошибалась, использовали порог уверенности по вероятности.
Характеристики тестового устройства:
<ul
- Процессор: 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 распознавание нейронными сетями.
Комментарии