Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)
Распознавание говорящего относится к разделению звуковой и маркирующей информации в соответствии с личностью говорящего в сложной речевой среде. Эта технология имеет широкий спектр приложений во многих областях интеллектуального оборудования, таких как Google Home, которым необходимо определять, кто говорит (вместо того, чтобы оценивать, что сказано, что является двумя разными проблемами). Распознавание говорящего — открытая проблема, но она быстро развивается с использованием современных методов глубокого обучения. В год существования команды UBC Luanch Pad мы (команда UBC Launch Pad, эта статья была составлена от первого лица) создали библиотеку для распознавания экранного диктора, написанную на Python, и назвали ее Minutes.
При идентификации говорящего возникают две основные трудности. Системы распознавания говорящих должны быть в состоянии обрабатывать большие вариации звуковых образцов, если вы не можете контролировать влияние окружающей среды во время сбора данных. Кроме того, алгоритмическая модель должна предсказывать результат классификации (т.е. говорящего) по небольшому набору обучающих выборок, потому что получить большое количество выборок для нового класса (нового говорящего) сложнее. В процессе обучения типичной модели прогнозирования необходимо использовать тысячи образцов для обучения каждого типа цели, но требование Google Home состоит в том, чтобы достичь такой же способности распознавания с помощью небольшого количества образцов. Трансферное обучение является ключевым методом, который может достичь этой цели. Предполагая сценарий встречи компании, каждый участник использует клиент для предварительного сбора небольшого количества голосов, а весь контент встречи будет записан и загружен на сервер. На стороне сервера эти разговоры делятся на разные записи выступающих с использованием обученной модели, а затем транскрибируются в текст. Для серверных систем основная проблема, которую необходимо решить, — это быстрое и экономичное создание новых моделей, необходимых для предсказания новых добавленных категорий без повторного изучения контента, связанного с распознаванием речи.
Благодаря быстрому развитию транскрипции аудио уже доступно несколько больших общедоступных наборов данных. LibriSpeech ASR Corpus — это большой набор данных английской речи. В этой работе мы просто разбиваем аудиофайл на интервалы в одну секунду (частота дискретизации 48000 Гц) и помечаем каждый аудиосегмент идентификатором говорящего, таким образом получая обучающие образцы. Этот интервал является гиперпараметром, который мы называем выборками на наблюдение. Ниже представлена визуализация 10 таких наблюдений, объединенных вместе. Быть
Разделив базу данных, мы преобразуем каждое наблюдение в спектрограмму. Поскольку распознавание изображений является одной из самых быстрорастущих областей машинного обучения, использование спектрограмм дает возможность использовать сверточные нейронные сети (CNN) и множество других передовых методов.
Очень легко построить нейронную сеть, которая хорошо предсказывает данные, следующие за распределением обучающей выборки. Например, следующий пример с использованием библиотеки Keras может обеспечить точность проверки 97% для 5 классов после 15-25 эпох. Конечно, модель также не может делать прогнозы для классов, которые она никогда раньше не видела, после обучения.
Теперь давайте представим трансферное обучение, метод продолжения обучения с помощью сгенерированной базовой модели на новом наборе данных (этот метод может ускорить процесс обучения последующих моделей). Из-за ограничений аппаратных ресурсов и размера данных обучающего набора создание более сложной модели, чем приведенная выше, займет больше времени. Наша цель — максимизировать повторное использование базовой модели, и фреймворк Keras может легко добиться этой функции — просто зафиксируйте параметры некоторых слоев, а затем измените размер последнего слоя для обучения на небольшом количестве данных.
Возможность повторного использования базовой модели связана с использованием базовой модели, которое можно подсчитать, выведя сводку модели Keras.
Увеличение использования напрямую влияет на стоимость последующего создания моделей переноса, поскольку во время обучения необходимо оптимизировать больше параметров.
БытьБыть
Важно отметить, что чем выше загрузка, тем быстрее мы можем обучить модель с точностью более 85% при использовании 4%, 21%, 47%. Требуется 15, 10 и 5 эпох соответственно. CNN с распознаванием изображений обычно заканчиваются плотными слоями со многими параметрами, и переобучение этих параметров может серьезно снизить использование. Мы нашли несколько простых способов эффективно замедлить эти эффекты:
Более ранние слои объединения использовались для уменьшения размера более поздних матриц параметров.
Добавьте дополнительные сверточные слои, чтобы уменьшить размерность нисходящих данных.
Используя методы трансферного обучения, мы можем прогнозировать новые классы и можем значительно сократить время, необходимое для обучения модели.
Мы собрали разговоры на YouTube, систематизировали и пометили их, в результате чего получился контролируемый набор данных о реальных сценариях. Используя метод трансферного обучения, описанный выше, мы можем добиться точности 60% в диалоговых сценах с 3-4 говорящими, например SciShow. Наши объяснения этого явления таковы: первое может быть связано с тем, что аудио диалога в реальной сцене более сложное, чем набор данных LibriVox, а другое может быть связано с неточной отметкой времени на YouTube. В настоящее время результаты трансферного обучения идеально подходят для задач бинарной классификации или относительно простых ситуаций, таких как разговоры с двумя говорящими. и. Простые методы увеличения данных могут сделать модель более устойчивой к изменениям разборчивости звука.
Для задачи разделения говорящих мы выпустили протоколы. Мы надеемся повысить скорость обучения распознаванию говорящего за счет повторного использования как можно большей части базовой модели. Следите за библиотекой Minutes Python и набором данных на нашей странице в Facebook.
Посмотреть исходный английский текст:
https://medium.com/@ubclaunchpad/speaker-diarisation-using-transfer-learning-47ca1a1226f4