Продукты из этой статьи:
В последние годы бизнес стал активно использовать для автоматизации общения с клиентами чат-боты, которые ведут диалог с пользователем либо в чате, либо голосом.
Чтобы быстро отвечать на вопросы пользователей без вмешательства оператора, чат-боты должны уметь:
Для решения задач распознавания и синтеза речи чат-боты обычно используют нейросети.
Чтобы понять смысл реплики, намерение клиента, найти ответ на вопрос пользователя, используется множество инструментов, в том числе основанных на машинном обучении и deep learning.
Для построения чат-ботов на основе машинного обучения требуется огромное количество данных.
Сеть, которая позволяет чат-ботам распознавать аудио, обычно обучается с учителем (supervised learning). Для этого нужен набор данных (датасет). Он содержит примеры с правильными ответами: тегами, классами, показателями.
Такие датасеты называют размеченными. Наличие полностью размеченного набора данных означает, что каждому примеру в обучающем наборе соответствует ответ, который алгоритм и должен получить.
При обучении нейронная сеть на основе входных данных предсказывает выходные данные, которые сравниваются с правильными ответами. Расхождение между выходными данными и правильным ответом используется для улучшения параметров нейросети (изменения весов параметров).
Например, если вы хотите создать нейросеть для оценки тональности текста (позитивный, негативный, нейтральный), датасетом будет список предложений с ответами — правильными оценками тональности. Сеть пытается определить тональность текста по признакам, которые придают ему негативную или позитивную окраску, — словам, фразам, структуре предложения. Веса признаков в итоговой оценке тональности текста определяются во время обучения нейронной сети.
Языковые нейросети, например KenLM или генеративная сеть GPT-3, обычно обучаются на больших массивах текста. Подготовить большое количество размеченного текста очень непросто, поэтому используется «обучение без учителя» (unsupervised learning).
В обучении без учителя у сети есть набор данных, но нет правильных ответов. Нейронная сеть извлекает полезные признаки, анализирует их и пытается самостоятельно найти корреляции.
В зависимости от задачи, модель систематизирует данные по-разному:
Самое сложное в разработке интеллекта для чат-бота — это получение реалистичных, ориентированных на задачи данных для машинного обучения. Собирать их самостоятельно слишком утомительно. Но можно воспользоваться готовыми датасетами для разных типов задач.
В свободном доступе есть множество размеченных и неразмеченных наборов данных с аудиозаписями, текстами, вопросами и ответами для служб поддержки, диалогами. Это, например, Common Voice, WikiQA, Yahoo Language Data, Common Crawl, набор данных поддержки клиентов в Twitter. Большинство данных — англоязычные, наборов для русского языка меньше.
Даже при готовом датасете обучение — ресурсоёмкое занятие. Поэтому разработчики ботов часто предпочитают использовать предварительно обученные нейросети. Такие предобученные модели тоже есть в открытом доступе, в том числе на русском языке.
Это самый большой набор аудиозаписей на русском языке, размеченный вручную.
Чтобы стимулировать развитие исследований в области речевых технологий, компания SberDevices выложила этот набор данных в открытый доступ с лицензией, которая допускает как научное, так и коммерческое использование. Эти данные можно применять для распознавания и синтеза речи.
Речевой датасет Golos состоит из аудиофайлов и соответствующих транскрипций. Общая длительность записей — примерно 1240 часов, частота дискретизации — 16кГц. Таким образом, Golos содержит более миллиона коротких (в среднем около четырёх секунд) записей речи на русском языке и их транскрипций.
В массиве записей выделена тренировочная и тестовая часть, 1227 часов аудио для тренировки и 13 часов — для тестирования.
Все аудиозаписи обезличены и не содержат такой персональной информации, как пол и возраст. Каждая обезличенная запись прослушана и размечена вручную.
Аудиозаписи в датасете собраны из двух источников.
Первый источник — это краудсорсинговая платформа, так называемый Crowd-домен.
Второй источник — записи, созданные в студии с помощью SberPortal. Это одно из устройств, на котором должно работать распознавание речи. Эти записи условно называют Farfield-доменом, так как расстояние от пользователя до микрофона было достаточно большим.
Тренировочные и тестовые записи выделены в каждом домене.
Для сбора записей пользователи краудсорсинговой платформы наговаривали предлагаемый им текст, а другие пользователи слушали аудио и пытались его транскрибировать. Выбор тематик записей не был случайным: акцент — на темах, полезных для виртуальных ассистентов Салют, например заказ продуктов, музыка, фильмы.
На базе датасета Golos Сбер обучил модель распознавания русской речи.
Задача акустической модели — определить вероятность, что в данном коротком отрывке записи звучит тот или иной символ. Затем из этих символов искусственный интеллект чат-бота будет собирать слова и фразы.
В качестве акустической модели Сбер использует нейронную сеть с архитектурой QuartzNet15×5. Акустическую модель обучали, перемешивая тренировочный набор Golos и русскоязычную часть датасета Common Voice. Оценка обучения проводилась также на тестовых наборах Golos и Common Voice.
Обучение проводилось 8 дней на 16 видеокартах.
Сбер опубликовал в открытом доступе не только датасет Golos, но и обученную на аудиоданных модель распознавания речи, которая демонстрирует точность, сравнимую с человеческой.
Для дальнейшего улучшения распознавания речи нужны знания о структуре языка, которых нет в обучающей выборке акустической модели. Поэтому Сбер подготовил языковую модель, обученную на текстах из интернета.
Языковая модель определяет вероятность появления в данном месте текста того или иного слова. Зная это, можно переопределить вероятности появления символов, которые дала акустическая модель, — и ещё немного улучшить качество распознавания речи.
Сбер построил языковую модель, используя обучающий датасет Common Crawl на русском языке и нейросеть KenLM. Common Crawl — это доступная для свободного скачивания коллекция текстовых данных, собранных из интернета.
Были сделаны три разные 3-граммные языковые модели — где вероятность появления слова зависит от двух предыдущих:
Применение нейросетей, обученных на данных Golos, Common Crawl и Common Voice, позволило снизить ошибки распознавания слов вплоть до 3%. Это позволяет чат-ботам понимать речь пользователя не хуже оператора.
Продукты из этой статьи: