Это началось в 2018 году, когда я присоединился к своей нынешней компании. Мы обсуждали обработку речи в приложении, где эта технология может улучшить жизнь людей. Но проблема заключалась в том, что я не изучал его раньше, у меня нулевые знания в области обработки речи и только некоторое полезное понимание глубокого обучения. Также была пара парней, которые начали. Но это также позволило мне исследовать новые вещи. Я часто слишком много играл с табличными данными, такими как профиль клиента, транзакция данных, журнал веб-событий. Но я не видел, как выглядят речевые данные. Месяцы за месяцами я входил в эту сферу, я многому научился из бесплатных курсов, видеолекций, руководств и блогов. Был момент, когда я подумал, что знаю, как работать с такими данными. Я не буду здесь говорить о внедрении технологии, потому что это чертовски скучно.

Обнаружение голосовой активности

Начнем с этого. Обнаружение голосовой активности играет важную роль в системе автоматического распознавания речи. Он обнаруживает присутствие человеческого голоса. Если есть человеческий голос, то система начала записывать и отправлять данные в систему. Это полезно, потому что мы не должны отправлять все данные в систему.

Для начала я использовал это программное обеспечение от мудреца на github.com здесь.

Улучшение речи

Эта задача была поручена мне на год раньше, я не знаю почему, потому что у меня нет подхода, чтобы довести ее до глубокого обучения. Я начал исследования, когда это стало критичным для акустической модели. Среда, которую мы хотим реализовать, не чистая, шум повсюду и динамичный. шум влияет на акустические характеристики модели. Следовательно, задача должна повысить точность акустической модели для предсказания от речи к тексту.

Сначала я попытался использовать Generative Adversarial Network, которая в основном предназначена для обработки изображений. В нем используются две модели глубокого обучения, одна действует как генератор (генерирует изображения), а другая действует как дискриминатор. Я изучил GAN тяжело (перейти к коду), вы можете скачать здесь. Я понял, что это не то, чего я хотел. Но, прежде чем я закрыл глаза на GAN, я обнаружил расширенную концепцию GAN, это условно-генеративно-состязательная сеть (C-GAN), которую у вас уже есть раньше, и вы хотели бы ее контролировать (в зависимости от вашей цели). Затем я применил cGAN для улучшения речи и… это было так приемлемо для человеческого уха.

Я не остановился на этом, потому что сложно контролировать две архитектуры. и я также подумал, что целевая функция меня что-то беспокоит, я думаю, что было бы лучше иметь функцию потерь для каждой архитектуры, но я не особо углублялся в это. Нашел другой подход к решению задачи. Это сеть кодирования-декодера. Я прочитал много докладов с конференции Interspeech, специализирующейся на обработке речи. Я прочитал об этом почти сотню статей. и есть одна статья, которую я счел применимой. Это «Сверточная рекуррентная нейронная сеть для улучшения речи в реальном времени» Ке Тан и ДеЛян Ван из Университета штата Огайо. их работа опиралась на сеть сверточного кодировщика-декодера, которая, как мне кажется, не является кодировщиком-декодером (после того, как я закончу проект распознавания речи, который также использует кодер-декодер). По сути, сигнал преобразуется в STFT с 161-мерным измерением и подает его в свертку и LSTM посередине. поэтому размер ввода сначала больше, а посередине он становится меньше, и подавал его в двухслойный LSTM и обратно в дек-свертку до тех пор, пока размер не станет таким же, как и вход. Если вы спрашиваете, сработало это или нет. Могу сказать, это было лучше по сравнению с GAN.

В то время, когда было дано мне время, у меня были возможности для улучшения (он же пробовал другой метод). Кто-то пробовал использовать полный сверточный слой, а именно «Полностью сверточную нейронную сеть для улучшения речи» Се Рим Пак и Джин Вон Ли. Он использовал полный сверточный слой и STFT в качестве функции. Но у него другой подход к формированию объекта. Они используют кадр ввода, который отличается от кадра вывода. Вам лучше проверить газету.

Еще я провел «необычный эксперимент», сложил 6 слоев LSTM с 256 скрытыми размерами. Я отправил данные в сети, и это не сработало. только не пытайся, как я делал до guis! просто не лах.

Распознавание речи

Последнее, что я сделал в обработке речи, - это распознавание речи. Сначала я пробовал использовать CMUSphinx, но ничего не вышло. Наконец, я использовал сеть кодировщика-декодера для преобразования речи в текст. В этом задании я также узнаю о внимании и последовательности к последовательности отсюда. В то время я использовал PyTorch, переходя от Keras и его приятеля Tensorflow. Проблема заключалась в том, что для этого требовалось огромное количество аннотированных данных. Я использовал речевые данные из BPPT, и мы также разработали наш набор данных собственными силами! Для большинства акустических моделей требуется 80–300 часов и около 100 динамиков. Результат довольно впечатляющий, но у него были некоторые недостатки, о которых я не мог здесь рассказать.



Закрытие

Если вас интересует то, что я написал выше, вы можете связаться со мной через то, что у вас есть. Я также рад, если вы захотите провести небольшое обсуждение для дальнейших проектов. Я также начал сочинять отрывок из индонезийской песни для модели для Jakarta AI Research Project.

Если вам понравился этот пост, не стесняйтесь нажимать кнопку хлопка 👏🏽 и если вас интересуют сообщения в будущем, обязательно подпишитесь на меня в среде