Введение

Распознавание говорящего можно определить как метод автоматического определения говорящего по идее индивидуальной информации, заключенной в речевых сигналах. Задачу распознавания говорящего можно выполнить двумя способами:

Зависит от текста (проверка говорящего)

Независимость от текста (идентификация говорящего)

Идентификация говорящего указывает, какая из обученных моделей (зарегистрированный говорящий) обеспечивает выражение от данного набора знакомых говорящих. С другой стороны, проверка докладчика подтверждает, что заявление о личности говорящего принято или отклонено - говорящий является лицом в списке? Из-за ограниченного доступа к ограниченным службам технология распознавания говорящих широко используется в различных приложениях в различных секторах, таких как банковское дело, голосовая почта, управление базами данных и домашняя безопасность. Эти технологии требуют регистрации пользователя в системе, то есть регистрации своей речи в системе для обучения и понимания ее вокальных паттернов.

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

Метод Идентификация говорящего берет только образец голоса неопознанного говорящего и определяет, какая из обученных моделей (зарегистрированных говорящих) лучше всего соответствует данной речи. Для обучения и тестирования используются разные данные для идентификации говорящего. В отличие от проверки говорящего, ее можно назвать системой распознавания 1: N, поскольку одна личность проверяется с помощью N зарегистрированной базы данных идентификаторов.

Центральная идея

Для каждого формата неструктурированных данных речевые данные имеют два или три этапа предварительной обработки, которые необходимо выполнить, прежде чем они будут представлены для изучения. Здесь мы получим инстинкт, почему это нужно делать. Первым шагом является действительно сложение информации в машинно-понятный формат. Для этого мы, по сути, берем значения после каждого временного шага. Например, в двухсекундном речевом файле мы разделяем характеристики (значения) на половину значения в секунду. Это известно как выборка речевых данных, а скорость, с которой они проверяются, известна как частота выборки.

Другой метод представления речевых данных - преобразование их в отдельную область представления данных, а именно. частотная область. При сборе речевых данных требуется больше точек данных, чтобы составить полный набор данных, и частота дискретизации также должна быть достаточно высокой, чтобы это стало возможным. Однако, если частотная область используется для представления данных, будет использоваться сравнительно меньше вычислительного пространства. Аудиоданные также могут быть представлены другими способами, такими как Mel Frequency Cepstrum.

Сбор данных

Эта модель может быть создана с использованием любого набора аудиоданных с открытым исходным кодом, бесплатного для публичного использования, например наборов данных openslr, наборов данных VoxForge. Я создал свой собственный набор данных с нуля, собрав образцы голоса в различных форматах, таких как mp3, ogg, mpeg и т. Д. Набор данных был записан на языке хинди.

Ссылка на специально созданный набор данных - https://github.com/shivam-shukla/Speech-Dataset-in-Hindi-Language

Этот набор данных был создан путем сбора 600 аудиосэмплов от 100 динамиков, в результате чего получился набор данных размером 600 МБ за 1 час 40 минут. Которая разделена на два сегмента; обучающее аудио и тестовое аудио, где обучающее аудио содержит 5 речевых образцов каждого говорящего, которые можно обучить с помощью любой модели, а тестовое аудио содержит один звук, который можно использовать для проверки модели. Набор данных записан на языке хинди и дает хорошие результаты, которые можно считать одним из наших достижений.

Предварительная обработка данных

Созданный набор данных должен быть предварительно обработан для достижения лучших результатов и результатов прогнозирования. Предварительная обработка необходима для обучения модели с минимальным количеством ошибок. К голосовым образцам были применены методы шумоподавления и удаления тишины. Шум приводит к нарушению работы системы идентификации говорящего. Процесс шумоподавления может быть выполнен с помощью техники вейвлет-разложения. Он состоит из разложения исходного сигнала, определения пороговых значений коэффициентов детализации и восстановления сигнала. Конвертируйте все файлы mp3 в формат .wav. Модуль Scipy.iofile.wav читает только файлы .wav.

Извлечение функций

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

В разделе Feature Extraction мы сосредоточимся на двух основных функциях MFCC и их производных, таких как Delta-MFCC. Мы рассчитали MFCC и Delta-MFCC. Итак, в полной мере у нас были все возможности. Дельта MFCC была рассчитана с помощью пользовательской функции в модуле featureextrction.py.

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

Основная причина MFCC - имитация поведения человеческого уха. MFCC сосредотачивается вокруг организации вычислений, которые используют Cepstrum с нелинейной осью частот, следующей за шкалой Mel. Чтобы получить мелцепструм, голосовой сигнал сначала обрабатывается с использованием окна анализа, а затем обрабатывается дискретное преобразование Фурье. Оценка MFCC включает следующую процедуру. Процесс MFCC разбит на шесть этапов или квадратов.

Обучение модели (с помощью модели гауссовой смеси)

Для обучения модели реализован подход GMM. Front-end подготовка осуществляется как на стадии подготовки, так и на стадии тестирования. Целью внешней обработки является изменение аудиосигнала с целью сделать его все более подходящим для анализа выделения признаков. Целью выделения признаков является определение свойств артикуляции, которые имеют акустические связи со звуковым сигналом, то есть параметров, которые можно так или иначе вычислить или оценить путем подготовки формы волны сигнала.

Модели Gaussian Mixture включаются пакетом sklearn.mixture в python. Модель GMM работает с вероятностью и генерирует все точки данных из смеси конечного набора гауссовых распределений с неизвестными параметрами. Можно рассматривать смешанные модели как обобщающую кластеризацию k-средних для объединения данных о ковариационной структуре информации, а также о центрах скрытых гауссиан. Scikit-learn выполняет различные классы для оценки моделей гауссовой смеси, которые относятся к различным методологиям оценки.

Тестирование

После обучения каждого говорящего создается файл «.gmm» для каждого говорящего, который представляет собой обученную модель говорящего и сохраняется в другом месте, чтобы его можно было использовать для проверки. Эти модели будут использоваться для тестирования файла gmm динамика 1: N. Выбирается и идентифицируется говорящий с наивысшим баллом или наибольшим сходством.

Результат

Набор данных предоставлен с точностью 96,66666666666667%. В целом дает отличный результат и, таким образом, позволяет достичь удовлетворительного результата комбинации MFCC + GMM.

Репозиторий GitHub: https://github.com/shivam-shukla/Speaker-Recognition-Using-GMM-MFCC-Python3

Как установить

Системные Требования:

Windows 7 или выше, Ubuntu 14/15, MacOS

ОЗУ: 8 ГБ или больше

Python 3.6 или более поздней версии

  • Скачайте или клонируйте репозиторий проекта с Github
  • Добавьте аудиофайлы в папку Voice_Samples_Training (формат .wav) и в отношении аудиофайлов добавьте каталог в файл Voice_Samples_Training_Path.txt.
  • Обучите свои аудиосэмплы созданию модели gmm, запустив modeltraining.py в IDLE или любом редакторе.
  • После обучения модели они будут сохранены в папке Trained_Speech_Models для каждого докладчика в виде файла .gmm.
  • Добавьте все образцы аудио для тестирования в папку testing_Audio и укажите путь к ней в файле Testing_audio_Path.txt.
  • Теперь вы можете протестировать свою модель, запустив файл main.py.