Реализация алгоритмов диаризации речи в зашумленных каналах связи
Выделение из аудиофайла сегментов речевой активности. Характеристика современных направлений развития диаризации речи. Выбор интегрированной среды разработки. Особенность описания программного кода. Проведение экспериментов с распознаванием диктора.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 17.08.2020 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Проект ВКР представляется студентом в срок до |
«30» ноября 2020 г. |
|
Первый вариант ВКР представляется студентом в срок до |
«1» апреля 2020 г. |
|
Итоговый вариант ВКР представляется студентом руководителю до загрузки работы в систему «Антиплагиат» в срок до |
«17» мая 2020г. |
Аннотация
В современном мире существует множество технологий, работающих с человеческой речью, одна из наиболее используемых - диаризация речи. Она заключается в разделении аудиофайла на источники звуков. В данной выпускной квалификационной работе были рассмотрены основные сферы применения диаризации речи, её основные задачи, и существующие инструменты диаризации. Также были рассмотрены основные методики построения таких систем и распознавания известных дикторов по голосу. Кроме того, был представлен алгоритм диаризации речи с возможностью распознавания дикторов и на его основе была создана система на языке программирования Python 3, c использованием различных библиотек, а именно, «numpy», «scipy», «scikit-learn» и так далее. В итоге были произведены измерения различных метрик точности созданной программы для диаризации речи, в том числе точность и полнота распознавания дикторов, а также ошибка диаризации DER.
Результаты ВКР могут быть использованы для создания систем диаризации и анализа речи. В дальнейшем планируется дополнить получившуюся систему другим методом определения сегментов активной речи, что может привести к повышению точности диаризации речи.
Пояснительная записка содержит 41 страницы, 15 рисунков, 9 источников и 1 приложение.
In the modern world, many technologies work with human speech, one of the most used is speech diarization. It consists of dividing an audio file into sound sources. In this paper, the main areas of application of speech diarization, its main tasks, and existing diarization tools were considered. The main methods of building such systems and recognizing known speakers by voice were also considered. Also, an algorithm for speech diarization with the ability to recognize speakers was introduced and a system was created based on it in the Python 3 programming language, using various libraries, namely, "numpy", "scipy", "scikit-learn" and so on. As a result, various accuracy metrics were measured for the created speech diarization program, including the accuracy and completeness of speaker recognition and the DER diarization error.
The results can be used to create speech diarization and analysis systems. In the future, it is planned to Supplement the resulting system with another method for determining segments of active speech, which may lead to an increase in the accuracy of speech diarization.
Explanatory note contains 41 pages, 15 figures, 9 sources and 1 annex.
Содержание
Введение
1. Сферы применения диаризации
2. Основные задачи
3. Существующие инструменты
4. Существующие методы для решения задач
4.1 Извлечение признаков из аудиофайла
4.2 Выделение из аудиофайла сегментов речевой активности
4.3 Сегментация
4.4 Кластеризация
4.5 Распознавание известного диктора
5. Метрики ошибок диаризации речи
6. Современные направления развития диаризации речи
7. Описание используемых методов
8. Разработка алгоритма
9. Программная реализация
9.1 Выбор языка программирования
9.2 Выбор интегрированной среды разработки
9.3 Описание используемых библиотек
9.4 Описание программного кода
10. Эксперименты
10.1 Эксперименты с распознаванием диктора
10.2 Эксперименты с диаризацией речи
10.3 Выводы по итогам экспериментов
Заключение
Список литературы
Приложение
Введение
В современном мире появляется все больше и больше технологий для работы с аудиоинформацией. Такие технологии работают с метаданными, полученными из аудиофайла. Чтобы получить такие данные используется множество технологий. Одной из важнейших таких технологий является разделение аудиофайлов на источники звука, например, аудиодорожка в фильмах содержит в себе звуки различных источников: речь актеров, шум, музыкальные композиции и так далее.
Существует две разновидности задач маркировки сегментов аудиофайла [1]. Первая из них разделяет на сегменты всего двух классов: «речь» и «не речь». Вторая должна отмечать изменение говорящего, кластеризировать сегменты речи различных дикторов. Такая задача называется - диаризацией речи. Такие задачи решаются во многих сферах, обрабатывающих человеческую речь, например: системы автоматического распознавания речи, индексация аудиофайлов, анализ фильмов, маршрутизация вызовов и так далее.
Выделяют 3 основных типа задач диаризации речи, а именно [1, 2]: «телефонный разговор», «теленовости» и «встреча». Они отличаются природой шумов, количеством дикторов, частотой перекрытий речи и так далее. Наиболее актуальной из них является тип задач «встреча».
Зачастую системы диаризации речи состоят из 4 основных этапов [1, 2]: извлечение признаков из аудиозаписи, выделение сегментов звуковой активности, сегментация и кластеризация. На первом этапе мы получаем различные признаки, из которых наиболее используемыми являются мел-частотные кепстральные коэффициенты. На втором этапе мы классифицируем сегменты на два класса, а именно: «речь» и «не речь». Далее, на третьем этапе мы обнаруживаем точки смены дикторов. На последнем этапе происходит кластеризация сегментов, создаются кластеры дикторов. Также, выделяют онлайн и офлайн диаризацию, первая из них работает, не имея всю аудиозапись, вторая же имеет доступ ко всей аудиозаписи, поэтому может использовать стандартные методы иерархической кластеризации.
В данный момент наиболее актуальными направлениями для исследований в сфере диаризации речи являются обнаружение перекрытий, использовании просодических признаков, её ускорение и аудиовизуальная диаризация [1].
Сейчас системы диаризации речи с идентификацией известного диктора слабо распространены для широкой публики, поэтому целью моей выпускной квалификационной работы будет создание системы диаризации речи с возможностью идентификации известных дикторов. Для достижения данной цели мною будут решены следующие задачи: реализовать модуль для выделения, реализовать модуль для определения активности речи, реализовать модуль для сегментации аудиофайла и кластеризацию сегментов. Также мне надо будет реализовать модуль для определения известного диктора. Более того, нужно провести тестирование разработанных модулей на различных метриках, проверить на влияние шума.
1. Сферы применения диаризации
Диаризация речи используется во многих сферах, работающих с человеческой речью. Ниже будут проведены основные сферы [1]:
Анализ фильмов:
Область анализа фильмов включает в себя различные задачи, такие как обнаружение диалога, определение действующего лица.
Богатая транскрипция:
Данная область занимается добавлением метаданных в устные документы, которые помогают в последующей обработке или поиске информации. Примерами метаданных могут служить личность диктора и граница предложений.
Системы автоматического распознавание речи:
В таких системах используются алгоритмы сегментации, разделяющие аудиозапись на маленькие сегменты, которые используются в этих системах. Кроме того, алгоритмы диаризации используются для кластеризации источников звука на входных аудиозаписях, это может повысить точность системы.
Индексация аудиофайлов:
В этой области применяют системы диаризации речи для индексации аудиофайлов по определенным дикторам или их количеству.
Подсчет выступающих:
Данная область занимается подсчетом выступающих, в основном без какой-либо информации о них.
Маршрутизация вызовов:
Основной задачей этой области является автоматическая маршрутизация вызовов на основе идентификации вызывающего абонента. Абонент может быть определен как известный или новый диктор.
2. Основные задачи
Обычно выделяют три типа аудиофайлов, предназначенных для диаризации речи [1, 2]: «телефонный разговор», «теленовости» и «встреча». Каждая из них обладает различными свойствами и отличается подходами.
«Телефонный разговор» - запись известного количества говорящих (двух или более), характеризуется короткой продолжительностью и средней частотой смены говорящего. Сегменты, не относящиеся к речи, обычно являются шумом. Иногда речи дикторов перекрываются, часто происходит искажение речи.
«Теленовости» - запись большого неизвестного количества говорящих, характеризуется обычно длинной продолжительностью и редкой частотой смены говорящего. Сегменты, не относящиеся к речи, обычно являются шумом, музыкой или рекламой. Речь дикторов редко перекрывается, редко происходит искажение речи.
«Встреча» - запись неизвестного количества говорящих с частой сменой говорящего. Сегменты, не относящиеся к речи, обычно являются различными шумами. Речь часто перекрывается, иногда происходит искажение речи. Существуют два вида записи: моноканальные и мультиканальные. При работе со вторым случаем возможна на начальных этапах обработка записи для выделения признаков, которые в будущем помогут повысить точность диаризации речи.
Наиболее сложной и актуальной задачей является анализ аудиофайлов типа «встреча», записанные на моноканальные системы.
3. Существующие инструменты
Для исследования диаризации речи доступны некоторые пакеты инструментов, распространяемых по лицензиям с открытым кодом. Ниже приведены основные из них [1, 3]:
LIUM - набор утилит с открытым кодом, в основном подходящих для решения задачи «теленовостей». Её первая публичная версия появилась в 2010 году, а последнее обновление вышло в марте 2019 года. Данный пакт работает на основе иерархической кластеризации, а именно алгоритмах BIC и CLR, а также ILP алгоритма кластеризации. Он также включает в себя детектор звуковой активности и инструменты для построения мел-частотных кепстральных коэффициентов.
AudioSeg - набор утилит, распространяемых по GPL лицензии, появился в 2005 году, последнее обновление появилось в 2014 году. Данный инструмент включает в себя детектор звуковой активности, утилиты сегментации и кластеризации на основе алгоритмов BIC, GLR и KL2. Он работает на основе мел-частотных кепстральных коэффициентов, но не включает в себя инструмент для их построения.
ALIZE - библиотека с открытым кодом для распознавания диктора, также включает в себя пакеты для диаризации речи. Реализована на основе метода E-HMM. Данный инструмент лучше всего подходит для решения задач типа «телефонный разговор» и «встреча». Была впервые представлена в 2017 году, последнее обновление появилось в мае 2019 года.
SHoUT - утилита для распознавания пользователя, которая включает в себя детектор звуковой активности и инструменты для диаризации речи. Первая версия появилась в 2007 году, а последнее обновление датируется 2010 годом.
DiarTK - набор утилит для решения задачи типа «встреча», разработанных в 2012 году, последний раз обновлялся в феврале 2016 года.
pyAudioAnalysis - библиотека с открытым кодом для анализа аудиофайлов, включает в себя инструменты для распознавания диктора, диаризации речи и так далее. Последний раз обновлялась 20 марта 2020 года. Существуют некоторые проблемы с использованием на Python 3 версии.
Почти все существующие системы диаризации давно не обновлялись или разработаны для решения определенной задачи.
4. Существующие методы для решения задач
В основном системы для диаризации речи состоят из 4 основных частей [1, 2]: выделение признаков из аудиофайла, разделение аудиофайла на сегменты сегментов звуковой активности, сегментация и кластеризация.
4.1 Извлечение признаков из аудиофайла
В первую очередь происходит извлечение признаков из аудиосигнала, это очень важная часть, она может сильно повлиять на точность диаризации. Признаки должны быть устойчивы к шуму, заметно отличаться у различных дикторов, также они должны легко и быстро рассчитываться из аудиосигнала [1]. Для подготовки признаков исходный аудиофайл нарезают на 20-40 миллисекунды. Далее применяются преобразования, основанные на параметрах сигнала, ниже приведены три основных из этих параметров: спектральные, временные и кепстральные параметры. В основном используется метод мел-частотных кепстральных коэффициентов.
4.2 Выделение из аудиофайла сегментов речевой активности
Цель данного этапа заключается в поиске частей аудиозаписи относящихся к «речевым» и «неречевым» сегментам. К «неречевым» относятся много различных звуков, таких как тишина, различные шумы, музыка и так далее. Наиболее часто встречающийся подход - это классификация по методу правдоподобия с использованием модели смеси Гауссовых распределений, обученной на обучающей выборке [4]. На практике отличается количеством моделей и их задачами. Главным недостатком такого подхода является зависимость от обучающих данных, сильным влиянием на изменения акустических условий записи [1]. Для решения этой проблемы были созданы гибридные схемы, когда сначала создается обучающая выборка с помощью классификации на основе энергии сигнала, а потом она используется для обучения в методе правдоподобия с использованием модели смеси Гауссовых распределений.
4.3 Сегментация
В следующем шаге происходит сегментация. Существует множество методов сегментации дикторов, они объединяются в пять групп [1]:
Методы, основанные на обнаружении тишины:
Данные методы основаны на предположении, что между высказываниями дикторов существует область молчания. Точность этих методов довольно низкая, они основываются на пороге краткосрочной энергии.
Сегментация на основе моделей:
В этой группе методы основаны на моделях, которые обучаются на различных пользователях из обучающей выборки. Затем аудиопоток классифицируется на основе этих моделей, границей между сегментами будет точка изменения диктора в сегментации. Поэтому наличие обучающей выборки является обязательным для данного метода. Одной из самых популярных методов на основе моделей является универсальная фоновая модель [5].
Методы, основанные на расстоянии:
Эта группа методов наиболее распространена и часто используема. В таких методах функции расстояния между двумя последовательными сегментами являются мерой для определения точки изменения дикторов. Для этих методов порог изменения должен детектировать изменения типа и характеристик звука. Методы, основанные на расстоянии, не гарантируют точность в различных средах и приложениях, и настройка их параметров является одним из главных препятствий для достижения надежной производительности сегментации. Метрические методы не требуют каких-либо предварительных знаний о количестве дикторов.
Гибридная сегментация:
Гибридные алгоритмы сочетают в себе методы, основанные на расстоянии, и сегментацию на основе моделей. Обычно сегментация на основе расстояния используется для предварительного сегментирования входного аудиофайла. Полученные сегменты затем используются для создания набора моделей дикторов. Затем пересегментация на основе моделей дает более точную сегментацию.
Для оценки точности сегментации есть две основные метрики: отзыв (RCL) и точность (PRC). Они определяются следующим образом [1]:
Отзыв - процент правильно обнаруженных границ дикторов.
Точность - процент возможных границ дикторов, которые действительно являются точкой изменения дикторов.
Также, в качестве метрики F (1) используется среднее гармоническое значение точности и отзыва:
,
Чем выше метрики RCL, PRC и F, тем лучше производительность сегментации.
4.4 Кластеризация
Последним этапом диаризации речи является кластеризация, ее целью является объединение сегментов одного и того же диктора в один кластер. В идеале для каждого диктора создается кластер, и все сегменты этого диктора лежат в данном кластере. Существует два типа кластеризации: офлайн и онлайн [1]. Первая работает с полной информации, а вторая работает в реальном времени, не имея доступ к последующей аудиоинформации.
Офлайн алгоритмы кластеризации требуют всю аудиозапись для корректной работы. В основном такие алгоритмы работают иерархическим образом, когда кластеры итеративно сливаются или дробятся, пока не будет достигнуто оптимальное числа кластеров, названия этих подходов дивизионные и агломеративные. В любых подходах кластеризации должны быть определены функция расстояния между кластерами и критерий останова. Функция расстояние между кластерами - метрика, означающая различие одного кластера от другого. Критерий останова - критерий для остановки слияния или дробления кластеров, при достижении оптимального количества кластеров. Агломеративный подход сейчас наиболее популярен, его алгоритм выглядит следующим образом:
Создание кластеров
Расчет расстояния между кластерами
Слияние ближайших кластеров
Повторение шагов 2-3, пока не наступит критерий останова.
Вычисления в дивизионном подходе намного объемнее, так как все варианты дробления должны быть сопоставлены. Онлайн алгоритмы кластеризации должны создавать метки дикторов, не имея всю аудиозапись, эти ограничения не позволяют использовать стандартные иерархические подходы.
Существует несколько метрик оценки кластеризации, ниже приведены основные из них:
Средняя частота кластеров acp (3) и средняя частота дикторов asp (5):
Хороший алгоритм кластеризации должен учитывать обе метрики. Критерий acp основывается на частоте кластера, вычисляется следующим образом:
,
,
где S - количество дикторов, C - количество кластеров, - количество сегментов в кластере i, относящихся к диктору j, - количество сегментов в кластере i. Критерий asp основывается на частоте диктора, вычисляется следующим образом:
,,
где - количество сегментов, относящихся к диктору j. Высокое значение acp значит, что почти все сегменты в каждом кластере относятся к одному диктору. Высокое значение asp значит, что сегменты, относящиеся к одному диктору, лежат преимущественно в одном кластерах. Также часто используется метрика (6), которая является геометрическим средним метрик acp и asp:
,
Значения acp, asp и лежат между нулем и единицей.
Уровень ошибочной классификации MR (7):
Пусть каждому диктору сопоставляется кластер, тогда если любой сегмент диктора j не относится к его кластеру, то считается ошибкой.
,
где общее количество сегментов, относящихся к диктору j, которые не определены в соответствующий кластер. Значение критерия лежит между нулем и единицей.
4.5 Распознавание известного диктора
В моей работе кластеризация дополняется распознаванием известных дикторов. Одним из наиболее популярных подходов для распознавания диктора по голосу, не зависящих от произносимого текста, является модели смеси Гауссовых распределений.
Можно выделить 3 основных этапа процесса распознавания дикторов [6]: выделение признаков, обучение моделей, классификация. Первый этап зачастую идентичен выделению признаков для диаризации речи. На втором этапе для каждого диктора обучают модель смеси Гауссовых распределений на полученных признаках. В классификации используется подход максимального правдоподобия.
В системах, основанных на них распределение векторов признаков, которые были извлечены из речи дикторов, моделируются взвешенной суммой k смешанных компонент (8), которые можно определить как [7, 8]:
,
где - краткое обозначение смеси Гауссовых распределений, а - вектор признаков.
Компонента смеси (9) обозначает Гауссову функцию плотности распределения со средним вектором и матрицей ковариации .
,
где - размерность вектора .
Для серии наблюдений , правдоподобие принадлежности к диктору (10) определяется как:
,
Для определения диктора используется следующие выражение (11):
,
где - идентифицированный диктор, который имеет наибольшее значение правдоподобности среди всех дикторов.
5. Метрики ошибок диаризации речи
Основной метрикой ошибок является Diarization Error Rate (DER), она определяется как [1, 2]:
,
Ошибка неправильной классификации диктора () - процент времени, отнесенного к некорректному диктору.
Ошибка ложного срабатывания () - процент времени, отнесенного к дикторам, которое фактически относилось к классу «не речь».
Ошибка пропущенной речи () - процент времени, когда речь была определена, как «не речь».
Ошибка пересечения дикторов () - процент времени, в течении которого некоторые из дикторов в сегменте не назначены ни к одному из дикторов.
6. Современные направления развития диаризации речи
В данном разделе будут рассмотрены основные направления современных исследований в диаризации речи, которые в перспективе могут повысить ее точность и скорость. Они приведены ниже [1]:
Обнаружение перекрытий:
Именно наличие участков в аудиозаписи с фрагментами речи нескольких дикторов зачастую не позволяют повысить точность диаризации, поэтому все большее количество исследований появляются в этом направлении. Перекрытие речи нередко появляются в задачах типа «встреча».
Многие современные системы присваивают сегмент только к одному диктору. Такие сегменты введут к пропущенным ошибкам, так как они не должны относиться к определенному диктору. Иногда сегменты пересечений мешают определить различные шумы, эхо и другие внешние факторы.
Алгоритмы, которые будут создаваться для решения этой проблемы, должны показывать хорошую скорость работы, чтобы их использование было возможно в приложениях с онлайн диаризацией.
Использование просодических признаков:
Несмотря на все положительные стороны мел-частотный кепстральных коэффициентов, иногда их бывает недостаточно. Иногда использование долгосрочных признаков, в том числе просодических, позволяет получать различные характеристики голоса диктора, которые невозможно получить, если работать с краткосрочными признаками. Примером таких признаков может служить индивидуальные особенности голоса. Совместное использование краткосрочных и долгосрочных признаков позволяет улучшить точность диаризации.
Аудиовизуальная диаризация:
Хотя на данный момент существует уже большое количество аудиовизуальных систем, в данной сфере все еще встречаются плохо изученные области.
Ускорение диаризации:
Одна из важнейших характеристик системы диаризации - это ее временная сложность. Она особенно важна для систем, которые реализуют диаризацию в реальном времени. Поэтому все больше современных исследований направлены на уменьшение времени работы систем диаризации речи.
7. Описание используемых методов
В работе были использованы различные методы выделения признаков из аудиосигнала, определения активности голоса, сегментации, кластеризации и распознавания пользователей. Ниже будут приведены основные из них.
Основные признаки аудиосигнала, которые были использованы в работе, это - мел-частотные кепстральные коэффициенты. Они являются наиболее подходящими для многих систем, работающих с речью. Ниже приведет алгоритм выделения мел-частотных кепстральных коэффициентов [9]: аудиофайл речевой диаризация программный
Аудиосигнал разбивается на фреймы длинной 20-40 миллисекунд
К каждому фрейму применяют дискретное преобразование Фурье
Далее вычисляется периодограмма для каждого фрейма
Применяется блок мел-фильтров и результаты суммируются
Применяется логарифмирование к полученным энергиям
В конце, применяя дискретное косинусное преобразование, получаем мел-частотные кепстральные коэффициенты
Мел-частотные кепстральные коэффициенты были выбраны в связи с их популярностью и простотой вычисления. Также данные признаки имеют заметные отличия у различных дикторов.
Для определения активности голоса использовался линейный бинарный классификатор, основанный на методе опорных векторов. Для его обучения выделялись десять процентов фреймов с наименьшей энергией и десять процентов фреймов с наибольшей энергией. Далее удалялись слишком маленькие фреймы.
Данный подход является гибридным, он позволяет избавиться от потребности в обучающих данных для выделения сегментов с активной речью.
В своей работе я решил выбрать метод сегментации, когда моментом смены диктора считается тишина. У этого подхода существует ряд недостатков, но есть явные преимущества. Например, главным недостатком является невысокая точность при наличии перекрытия речи дикторов. Такое часто происходит при анализе аудиофайлов типа «встреча». Но главным достоинством этого подхода является легкость вычислений. Если в аудиофайле перекрытия речи дикторов отсутствуют, такой метод может показать схожую точность с другими методами.
Для извлечения из сегментов аудиофайлов признаков, подходящих для сегментации, используется универсальная фоновая модель. В данном подходе мы обучаем модель смеси Гауссовых распределений на полной аудиозаписи, потом подгоняем эту модель под каждый сегмент и получаем вектор сдвигов. Для подгонки используется метод MAP adaptation. В нем рассчитываются апостериорные вероятности, медианы и дисперсия для каждого Гауссового распределения, далее полученные значения комбинируются со значениями универсальной фоновой модели.
Основным достоинством данной системы является простота ее вычисления и точность, сопоставимая с другими методиками.
Для кластеризации был выбран метод спектральной кластеризации, она использует матрицу сходства, а именно её собственные значения. Этот метод прост в реализации и показывает высокую точность.
Для распознавания известных дикторов использовались обученные модели смеси Гауссовых распределений с 16 компонентами. Далее используется алгоритм, который оценивает правдоподобие принадлежности сегмента к каждому диктору. Потом при выполнении порогового условия, сегмент относиться к диктору с наибольшим значением правдоподобия принадлежности сегмента.
Данная методика в основном была выбрана в связи с её высокой точностью классификации.
8. Разработка алгоритма
В данной главе будет сформулирован и описан алгоритм для решения задачи диаризации речи с возможностью распознавания известных дикторов. Ниже приведен разработанный алгоритм:
Поиск подходящих данных для работы алгоритма (подходящими данными является аудиозапись в формате wav);
Данные загружаются в программу;
Если у аудиофайла два звуковых канала, то они с помощью написанной функции трансформируются в один;
Данные передаются в функцию, которые определяет сегменты с активной речью. Далее эти сегменты записываются в определенную директорию «segments» в формате wav;
Если проводится диаризация с распознаванием известных дикторов, то все аудиозаписи из директивы «segments» поочередно проверяются на принадлежность к известным дикторам, если аудиозапись была отнесена к диктору, то она переноситься в директиву этого диктора.
Далее для всех аудиозаписей из директивы «segments», подгоняется универсальная фоновая модель алгоритмом MAP adaptation, на выходе получаются векторы сдвигов.
После этого векторы сдвигов передаются в функцию, в которой производится кластеризации.
9. Программная реализация
9.1 Выбор языка программирования
Для реализации поставленной задачи был выбран язык программирования Python версии 3.7.6, так как я знаю его синтаксис и у меня был опыт написания подобных систем. Также существует множество готовых библиотек с открытым исходным кодом, которые помогают ускорить разработку программ.
9.2 Выбор интегрированной среды разработки
В качестве интегрированной системы разработки была выбрана Spyder в виду ее кроссплатформенности, удобства использования, опыта взаимодействия с ней и интеграция консоли iPython.
9.3 Описание используемых библиотек
Для реализации своей программы я использовал готовые библиотеки для языка программирования Python, ниже будут приведены основные из них:
«Os» - библиотека, которая позволяет работать с операционной системой, создавать, удалять директивы, получать список файлов, находящихся в определенной директиве, и так далее. В своей программе я использовал ее для доступа к файлам по адресу и создания директив для хранения готовых сегментов.
«Pickle» - библиотека, позволяющая сохранять объекты со сложной структурой и считывать их. В моей работе используется для записи и считывания обученных моделей смеси Гауссовых распределений дикторов.
«Numpy» - библиотека с открытым исходным кодом, который облегчает работу с массивами, она предоставляет доступ к множеству готовых высокоуровневых функций и операций линейной алгебры. В моей работе она используется для получения среднего значения массива, обработки неизвестных элементов массива и так далее.
«Scipy» - библиотека с открытым исходным кодом, содержащая в себе множество готовых функций, которые облегчают расчеты, предоставляют инструменты для обработки аудио и изображений и так далее. В своей работе я использовал эту библиотеку для считывания и записи аудиофайлов в формате wav.
«Scikit-learn» - библиотека, включающая в себя многие готовые алгоритмы машинного обучения, а именно классификация, регрессия и так далее, метрики их оценивания, функции для разбиения данных на обучающую и тестовую выборку. Для своей программы из этого модуля я использовал предобработку данных, спектральную кластеризацию модель смеси Гауссовых распределений и так далее.
«pyAudioAnalysis» - библиотека с открытым исходным кодом, предоставляющая инструменты для анализа аудиофайлов. В своей работе я использовал этот модуль для выделения сегментов с активной речью.
«Sounddevice» - модуль, позволяющий записывать и воспроизводить аудиофайлы в формате wav. Я использовал этот модуль для создания функции, позволяющий воспроизводить как всю запись, так и части, относящиеся к отдельным дикторам.
«Pyannote.metrics» - библиотека с открытым исходным кодом для оценивания точности распознавания речи, сегментации аудиофайла и так далее. В своей выпускной квалификационной работе использовал для оценки диаризации речи.
«?Matplotlib» - библиотека для визуализации данных в виде графиков, различных диаграмм и так далее. В моей работе данная библиотека использовалась для визуализации результатов экспериментов.
9.4 Описание программного кода
Для выделения мел-частотных кепстральных признаков из аудиозаписи я использовал готовую библиотеку «python_speech_features», а именно функцию «mfcc».
Далее я использовал библиотеку «scikit-learn» для обучения моделей смеси Гауссовых распределений с 16 компонентами, так как такие модели показывали наилучшую точность классификации. Полученные модели я записывал в директиву для их хранения с помощью библиотеки «pickle» в формате gmm.
Для определения активных сегментов аудиозаписи, я применял функцию «silence_removal» с параметрами веса равными 0.2 из библиотеки «pyAudioAnalysis». Все параметры функции были подобраны во время экспериментов, именно при таких значениях удавалось получить наибольшую точность.
Для нахождения известных дикторов, я загружал ранее обученные модели смеси Гауссовых распределений с помощью модуля «pickle». Для каждой модели были получены значения правдоподобности, определена модель с максимальным значением. При выполнения порогового условия идентификации диктора, сегмент определялся как относящийся к диктору с максимальным значением. Иначе он определялся как относящийся к неизвестному диктору. Далее аудиозапись сегмента переносится в директиву определенного диктора или неизвестного диктора, в зависимости к кому он был отнесен.
Для сегментации сегментов я обучил универсальную фоновую модель смеси Гауссовых распределений на всем аудиофайле, потом подогнал под каждый сегмент с помощью реализованного алгоритма MAP adaptation. Полученные вектора передались в функцию «fit_predict» класса «?SpectralClustering» из модуля «scikit-learn», которая выполняет спектральную кластеризацию.
В итоге был создан класс на языке Python, который реализовывал весь процесс диаризации речи. Также была возможность выбрать один из двух типов диаризации речи: с использованием обученных моделей смеси Гауссовых распределений для идентификации известных дикторов или без их использования. Есть возможность передавать классу уже обученные модели или обучать на аудиофайлах. Существует возможность воспроизведения, как всего аудиофайла, так и сегментов, отнесенных к определенному диктору. Также были реализованы методы для автоматической проверки точности диаризации и идентификации диктора, построения графиков.
10. Эксперименты
10.1 Эксперименты с распознаванием диктора
В этом разделе приведены результаты выполнения выпускной квалификационной работы. Первым был проведен эксперимент с распознаваем известных и неизвестных дикторов, которые были представлены в соотношении 60 на 40 процентов. В качестве данных были скачены аудиозаписи различных актеров озвучки. Для эксперимента были обучены модели смеси Гауссовых распределений на четырнадцати известных дикторах.
В ходе эксперимента были получены такие метрики, как точность бинарной классификации известных и неизвестных дикторов, точность классификации известных дикторов, доля известных дикторов, определенных к классу известных (TP), доля неизвестных дикторов, определенных к классу известных (FP), доля неизвестных дикторов, определенных к классу неизвестных (TN), доля известных дикторов, определенных к классу неизвестных (FN), точность (precision) бинарной классификации (класс известных и неизвестных дикторов) и ее полнота (recall). Ниже приведены графики зависимости этих метрик от T порога определения пользователя известным.
В результате по полученным значениям метрик было решено использовать в дальнейшем реализацию с порогом определения пользователя равным 0.8, так как при данном значении была получена наибольшая общая точность бинарной классификации, хорошие значения классификации известных дикторов и полнота классификации равнялась 0.95.
Рис. 1. а) Точность бинарной классификации известных и неизвестных дикторов.
б) Точность классификация известных пользователей.
Рис. 2. а) Доля известных дикторов, определенных к классу известных.
б) Доля неизвестных дикторов, определенных к классу известных.
Рис. 3. а) Доля неизвестных дикторов, определенных к классу неизвестных. б) Доля известных дикторов, определенных к классу неизвестных.
Рис. 4. а) Полнота бинарной классификации (recall).
б) Точность бинарной классификации (precision).
Также были проведены эксперименты с распознаванием дикторов для аудиозаписей с добавлением шума. Модели смеси Гауссовых для определения известных дикторов также были обучены на аудиозаписях с добавлением шума. На аудиозаписи был добавлен белый шум, и в зависимости от него были построены графики идентичные графикам без шума. Дисперсия шума изменялась от 1 процента до 5 процентов от дисперсии сигнала.
В результате по графикам видно, что даже небольшой шум заметно снижает качество распознавания дикторов. Точность классификации известных дикторов упала с 0.91 при дисперсии шума равной 1 проценту от дисперсии сигнала до 0.73 при дисперсии равной 5 процентам от дисперсии сигнала. Ниже приведены получившееся графики.
Рис. 5. а) Точность бинарной классификации известных и неизвестных дикторов.
б) Точность классификация известных пользователей.
Рис. 6. а) Доля известных дикторов, определенных к классу известных.
б) Доля неизвестных дикторов, определенных к классу известных.
Рис. 7. а) Доля неизвестных дикторов, определенных к классу неизвестных.
б) Доля известных дикторов, определенных к классу неизвестных.
Рис. 8. а) Полнота бинарной классификации (recall).
б) Точность бинарной классификации (precision).
10.2 Эксперименты с диаризацией речи
Для проведения эксперимента были скачены данные, включающие аудиозапись с различными метаданными. Из метаданных была выделена информация об временных границах каждого сегмента, содержащего речь, и принадлежности этого сегмента. Всего на аудиозаписи длинной 6.5 минут присутствовало пять дикторов. Далее были проведены различные измерения ошибки диаризации DER и других метрик для этой аудиозаписи.
В первом эксперименте проводилась диаризация без обученных моделей дикторов. Ошибка составила DER составила 0.62, правильно были распределены 163 секунды из 367 секунд. Далее проводились эксперименты с обученными моделями. Количество обученных моделей дикторов менялось от 2 до 5, в результате были построены графики, которые приведены ниже.
Рис. 9. а) Количество секунд, которые были корректно определены.
б) Количество секунд, не относящихся к речи, определенных как речь.
Рис. 11. а) Количество секунд речи, определенных как «не речь».
б) Количество секунд, которые были некорректно определены к диктору.
Рис. 12. Ошибка диаризации DER.
В дальнейшем были проведены эксперименты с точностью диаризации в зависимости от длины аудиофайла. Для этого были взяты аудиофайлы длинной 5, 10 и 15 минут. На этих аудиозаписях также присутствовало 5 дикторов, по полученным результатам были построены графики идентичные эксперименту зависимости точности диаризации от количества известных дикторов. Для данного эксперимента я использовал модели смеси Гауссовых распределений, обученных на аудиофайлах четырех дикторов. Ниже представлены полученные графики.
Рис. 13. а) Количество секунд, которые были корректно определены.
б) Количество секунд, не относящихся к речи, определенных как речь.
Рис. 14. а) Количество секунд речи, определенных как «не речь».
б) Количество секунд, которые были некорректно определены к диктору.
Судя по данным эксперимента, получилось добиться хорошей точности классификации известных дикторов и бинарной классификации для классов известных дикторов и неизвестных. При установлении порога определения пользователя известным равным 0.8, обе метрики показывали точность на уровне 90 процентов. Также получилось снизить количество неизвестных дикторов определенных известными с 40 процентов до 5 процентов относительно общего количества дикторов определенных известными. В итоге полнота бинарной классификации выросла с 60 процентов до 95 процентов.
Рис. 15. Ошибка диаризации DER.
10.3 Выводы по итогам экспериментов
Были проведены эксперименты с добавлением белого шума, которые показали, что даже белый шум с небольшой дисперсией может заметно повлиять на точность классификации дикторов.
Результаты экспериментов с диаризацией речи показали следующие результаты: минимальную ошибку DER равную 0.38 система показала при 4 известных дикторах. При 4 известных дикторах программа смогла правильно соотнести 258 секунд из 391 секунды. При этом 72 секунды были ошибочно определены к классу «не речь».
По полученным графикам с зависимостью ошибки диаризации DER от длины аудиофайла заметно, что наилучший результат равный 0.35 система показала на аудиозаписи длинной 10 минут.
Заключение
В ходе выполнения выпускной квалификационной работы были изучены основные этапы диаризации речи, а также методики построения систем для её реализации. Были разобраны методы распознавание диктора с помощью модели смеси Гауссовых распределений.
Также были выбраны методы и на их основе создана система диаризации речи с возможностью детектирования известных дикторов. Экспериментально были подобраны наиболее подходящие параметры для системы, с которыми измерены основные метрики качества и сделаны выводы.
Получилось добиться хорошей точности распознавания дикторов, готовый классификатор с высокой точностью разделял дикторов на классы известных и неизвестных. Также были проведены эксперименты с зависимостью точности распознавания дикторов от уровня шума. Получилось построить систему диаризации речи, которая могла детектировать известных дикторов, или проводить диаризацию речи без их определения. Были проведены эксперименты и на их основании построены графики зависимости ошибке DER от количества известных дикторов и длины аудиозаписи. Данная система показала наименьшую ошибку DER равную 0.38 при четырех известных дикторах на аудиозаписи длинной 6,5 минут и 0.35 на аудиозаписи длинной 10 минут.
Невысокую точность диаризации разработанной программы я связываю с использованием метода сегментации на основе тишины. В дальнейших работах планируется заменить данный метод на более эффективный, а также доработать методику определения активности речи.
Список литературы
1 Moattar M., Homayounpour M. A review on speaker diarization systems and approaches // Speech Communication. 2012. Vol. 54, number 10. P. 1065-1103.
2 Basu J. et al. An overview of speaker diarization: Approaches, resources and challenges // 2016 Conference of The Oriental Chapter of International Committee for Coordination and Standardization of Speech Databases and Assessment Techniques (O-COCOSDA), 2016.
3 Рогов А.А., Петров Е.А. АНАЛИЗ СУЩЕСТВУЮЩИХ СВОБОДНО РАСПРОСТРАНЯЕМЫХ СИСТЕМ РАЗДЕЛЕНИЯ ДИКТОРОВ НА ФОНОГРАММЕ // Фундаментальные исследования. - 2015. - № 6-1. - С. 67-72
4 Tranter S., Reynolds D. An overview of automatic speaker diarization systems // IEEE Transactions on Audio, Speech and Language Processing. 2006. Vol. 14, number 5. P. 1557-1565.
5 Ting Yao Wu et al. UBM-based incremental speaker adaptation // 2003 International Conference on Multimedia and Expo. ICME '03. Proceedings (Cat. No.03TH8698), 2003.
6 Cherifa S., Messaoud R. New technique to use the GMM in speaker recognition system (SRS) // 2013 International Conference on Computer Applications Technology (ICCAT), 2013.
7 Weng Z., Li L., Guo D. Speaker recognition using weighted dynamic MFCC based on GMM // 2010 International Conference on Anti-Counterfeiting, Security and Identification, 2010.
8 Lin Lin, Shuxun Wang. Genetic Algorithms and Fuzzy Approach to Gaussian Mixture Model for Speaker Recognition // 2005 International Conference on Natural Language Processing and Knowledge Engineering, 2005.
Приложение
Код программы в spyder ide
Размещено на Allbest.ru
...Подобные документы
Цифровая обработка сигналов и ее использование в системах распознавания речи, дискретные сигналы и методы их преобразования, основы цифровой фильтрации. Реализация систем распознавания речи, гомоморфная обработка речи, интерфейс записи и воспроизведения.
дипломная работа [1,1 M], добавлен 10.06.2010Задачи при передаче речи и данных. Цифровая передача речи. Категории методов цифрового кодирования речи. Кодеры формы сигнала. Вид амплитудной характеристики компрессора. Дискретная модель речеобразования. Особенности метода кратковременного анализа.
контрольная работа [56,6 K], добавлен 18.12.2010Преимущества радиоканальных охранных систем. Основные направления кодирования речи: кодирование формы (Waveform coding) и источника сигнала (Source coding). Структурная схема процесса обработки речи в стандарте GSM. Оценка качества кодирования речи.
реферат [46,8 K], добавлен 20.10.2011Реализация операторами сотовой подвижной связи (СПС) услуг с добавленной стоимостью (VAS-услуг). Способ идентификации абонента с использованием кода, вводимого с клавиатуры. Классификация биометрических параметров человека. Определение параметров речи.
реферат [70,1 K], добавлен 23.10.2014Разработка системы климат-контроля автомобиля. Расчет и выбор основных компонентов электрической схемы, микроконтроллера для управления устройством. Написание программного обеспечения с использованием интегрированной среды разработки MPLAB 8.30.
реферат [545,6 K], добавлен 09.03.2012Модемная связь в информационных сетях. Классификация и устройство современных модемов, поддержка протоколов. Типовая система передачи данных. Характеристика модемов, использующих различные типы передающей среды. Схема модема для телефонной линии.
реферат [456,6 K], добавлен 05.02.2013Кодирование речи RPE – LTP – кодер на 16 кбит/с. Структура декодера речи в стандарте GSM. Коэффициенты отражения кратковременного предсказания по методу Берга для РФ 8-го порядка. Спектральная характеристика постфильтра. Формирование формантных областей.
реферат [300,5 K], добавлен 15.11.2010Обоснование подходов к разработке математических моделей речевых сигналов. Детерминированный подход к построению математической модели (сигнала, содержащего вокализованные участки речи), основанной на теории модуляции. Коэффициенты разработанной модели.
курсовая работа [836,0 K], добавлен 26.12.2014Описание выявленных функциональных каналов утечки информации. Методологические подходы к оценке эффективности защиты речевой информации. Расчет возможности существования естественного акустического канала утечки информации по методу Н.Б. Покровского.
курсовая работа [3,6 M], добавлен 06.08.2013Технологии построения локальных проводных сетей Ethernet и беспроводного сегмента Wi-Fi. Принципы разработки интегрированной сети, возможность соединения станций. Анализ представленного на рынке оборудования и выбор устройств, отвечающих требованиям.
дипломная работа [6,6 M], добавлен 16.06.2011Выбор типа передачи информации, категории системы, характера помехозащиты, составление формата кода. Расчет формата кода синхроимпульса, номера контролируемого пункта, характеристического кода. Выбор многочленов кода, составление проверочных равенств.
курсовая работа [663,5 K], добавлен 15.04.2015Сущность и значение радиосвязи, ее применение. Проблемы организaции трaнкинговых систем. Конвенционaльные рaдиосистемы: непaрaметрическое кодирование речи. Специфика общего алгоритма скремблирования. Пример простых алгоритмов скремблирования данных.
курсовая работа [509,5 K], добавлен 25.06.2011Зарождение концепции многоуровневой иерархической структуры сети телефонной связи. Электронная технология, позволившая перевести все средства телефонии на элементную базу. Развитие IР-телефонии, обеспечивающей передачу речи по сетям пакетной коммутации.
реферат [25,4 K], добавлен 06.12.2010Упрощенная модель системы регулировки. Стандартный конструктив Ардуино с платами расширения. Внешний вид Ардуино Uno. Среда разработки Arduino. Встроенный текстовый редактор программного кода. Программа управления шаговым двигателем в однофазном режиме.
курсовая работа [4,5 M], добавлен 02.06.2015Принципы формирования линейных кодов цифровых систем передачи. Характеристика абсолютного и относительного биимпульсного кода, а также кода CMI. Выбор конкретного помехоустойчивого кода, скорость его декодирования и сложность технической реализации.
лабораторная работа [37,4 K], добавлен 21.12.2010Методические рекомендации для выполнения анализа и оптимизации цифровой системы связи. Структурная схема цифровой системы связи. Определение параметров АЦП и ЦАП. Выбор вида модуляции, помехоустойчивого кода и расчет характеристик качества передачи.
курсовая работа [143,9 K], добавлен 22.08.2010Исследование процесса разработки цифрового регистратора речевой информации с твердотельной памятью. Характеристика оцифровки звука и его хранения на цифровом носителе, выбора модуля микроконтроллера. Расчет необходимого объема памяти на 10 часов записи.
дипломная работа [468,6 K], добавлен 12.12.2011Анализ принципов построения сети цифровой связи и структуры комплекса "Обь-128Ц". Принципы построения групповых каналов, схемы их организации и программного обеспечения. Разработка алгоритмов программирования диспетчерских и промежуточных пунктов.
дипломная работа [7,0 M], добавлен 05.03.2011Мешающие влияния. Импульсные помехи. Внутрисистемные помехи асинхронно-адресных систем связи. Классификация мешающих влияний в линиях связи. Искажения сигнала. Внешние источники естественных помех. Тропосферные радиолинии. Космические линии связи.
реферат [44,8 K], добавлен 11.02.2009Системы радио и проводной связи, цифровые устройства. Схема формирования входного двоичного кода, преобразования кодов и управления. Индикация выходного двоичного кода, состоящая из светодиодов. Схема индикации десятичного эквивалента преобразуемого кода.
курсовая работа [857,0 K], добавлен 10.02.2012