Нейронная сеть учится слышать вместо человека

Дэлянь Вэн написал статью о том, как машинное обучение позволит слуховым аппаратам воспринимать речь наравне с человеческим ухом. GreatData публикует перевод.

Об авторе: Дэлянь Вэн, профессор кафедры информатики и вычислительной техники, сотрудник Центра изучения мозга и когнитивных наук Университета штата Огайо в Коламбусе. Заведует лабораторией восприятия и нейродинамики, в которой разрабатываются алгоритмы для решения проблем, связанных с машинным восприятием. Вэн получил степень доктора наук в Университете Южной Калифорнии в Лос-Анжелесе в 1991 году после защиты степеней бакалавра и магистра в Пекинском университете. Является шеф-редактором журнала [Neural Networks](https://www.journals.elsevier.com/neural-networks).

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

Трудности, с которыми столкнулась моя мама, отражают общую проблему слуховых аппаратов. Человеческий слух может выделять отдельные голоса в людном месте, а аппарат — нет. Британский специалист в области когнитивных исследований Колин Черри в 1953 году первым сформулировал «проблему коктейльной вечеринки» (“cocktail party problem”).

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

Но пришло время разобраться с этой проблемой. В лаборатории Университета Огайо мы применили метод машинного обучения для того, чтобы искусственно различать источники звука. Испытали множество цифровых фильтров, которые не только усиливают звук, но могут также изолировать звук речи от фонового шума и автоматически регулировать громкость каждого звука.

Мы считаем, что этот подход позволит полностью восстановить способность слабослышащего человека воспринимать звуковое окружение, или даже улучшить эту способность по сравнению со здоровыми людьми. Первые эксперименты показали, что у некоторых испытуемых способность различать человеческую речь на фоне шума возрастала с 10 до 90%.

Во всем мире отмечается увеличение числа людей, страдающих потерей слуха. По оценкам Всемирной организации здравоохранения, около 10% взрослого населения, или 766 миллионов человек, испытывают проблемы со слухом. И их число будет расти с увеличением численности населения и ростом числа пожилых людей.

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

Существует рынок с огромным потенциалом. Мировая индустрия по производству слуховых аппаратов оценивается в 6 миллиардов долларов. Согласно прогнозу фирмы MarketsandMarkets, отрасль будет ежегодно расти на 6% до 2020 года. Однако, чтобы удовлетворить всех потенциальных потребителей, нужно решить «проблему коктейльной вечеринки». В этом могут помочь нейронные сети и глубинное обучение.

Инженеры и программисты десятилетиями безуспешно пытались изолировать речь при обработке звукового сигнала. Самый распространенный метод заключался в попытке определить паузы между фразами с помощью выявления активности голоса. При таком подходе компьютер маркирует паузы как «шум». Затем шум убирается и – в идеале – остается чистая речь.

К сожалению, на практике эта техника, известная как «спектральное вычитание», плохо применима: стирает много речи и мало шума. Часто получается неприятный эффект «музыкальный шум», когда запись звучит словно из-под воды. Даже за много лет не удалось добиться улучшения этой методики.

Мы понимали, что нужно менять подход. И взяли за основу теорию, предложенную в 1990 году психологом Университета МакГилла в Монреале, Канада. Он предположил, что человеческий слух организует звуки в отдельные потоки. Каждый поток относится к одному источнику звука, например, к говорящему рядом человеку. Каждый поток уникален частотой, громкостью и направлением.

 

В совокупности все потоки – например, когда кто-то пытается говорить с вами во время хоккейного матча – составляют то, что Бергман называет «звуковой сценой». Если разные звуки одновременно занимают одинаковый диапазон частот, то побеждает тот звук, который громче. Этот полезный эффект называется слуховой маскировкой. Например, человек не сможет расслышать тиканье часов во время дождя. Этот принцип, среди прочего, используется при создании файлов формата MP3. Файл можно сжать до десятой доли от первоначального размера за счет удаления замаскированных звуков (в данном случае — за счет удаления звука часов) без ущерба для восприятия человеком.

Человеческий слух воспринимает звуки в диапазоне между 20 и 20 000 Герц. Мы решили создать такой фильтр, который бы различал потоки речи и шума в этих диапазонах. Это стало бы первым шагом на пути к отделению одного от другого.

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

Этот первоначальный фильтр представляет собой идеальную битовую маску. Он маркирует шум и речь, которые обнаруживает в пределах звуковых сегментов, называемых частотно-временными блоками. Это короткие отрезки определенных диапазонов. Фильтр анализирует каждый частотно-временной блок в записи речи на фоне шума и помечает его «единицей» или «нулем». 1 ставится там, где «целевой» звук (в данном случае речь) громче шума, а 0 – там, где шум преобладает над речью. Результатом является последовательность нулей и единиц, которая отражает преобладание шума или речи в каждый момент записи. Затем фильтр отбрасывает все блоки, помеченные нулем, и реконструирует речь из блоков, помеченных единицей. Чтобы воссоздать разборчивую речь из засоренной шумом записи, нужно, чтобы определенная часть блоков была помечена единицами.

Мы начали тестировать идеальную битовую маску в 2006 году в исследовательской лаборатории ВВС США в Огайо. Примерно в то же самое время группа исследователей из Сиракузского университета в Нью-Йорке независимо от нас провели испытание своей битовой маски. Во время этих испытаний люди с нарушениями слуха и люди с нормальным слухом смогли лучше расслышать речь на фоне шума.

Нам удалось создать речевой фильтр, который безупречно работал в лабораторных условиях. У нашей разработки было одно несомненное преимущество. Мы намеренно предоставили компьютеру образцы речи и шума по отдельности, а затем «дали послушать» их смешанными. В силу того, что фильтру заранее дали ответы (вот почему это называется «идеальной» битовой маской), он знал, когда речь была громче шума и наоборот. На практике фильтр должен самостоятельно и на ходу определять речь на фоне общего шума.

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

Примерно в то же время, когда мы создавали свой звуковой классификатор, группа ученых Университета Карнеги-Меллон в Питтсбурге разработала похожий метод, основанный на машинном обучении, для классификации частотно-временных блоков, но с другой целью: чтобы улучшить технологию автоматического распознавания речи. Позже группа Техасского университета в Далласе под руководством покойного Филипоса Лоизу использовала другой метод классификации и первой добилась успехов в распознавании речи здоровыми людьми при монауральном восприятии (в отличие от бинаурального, когда звук воспринимается двумя ушами).

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

Добившись многообещающих результатов с нашими первыми алгоритмами классификации, мы решили предпринять следующий шаг, а именно развить систему до такого состояния, чтобы она была способна функционировать в шумовом окружении реального мира. При этом мы не хотели специально натаскивать систему на отдельные звуки речи или специфические шумы. И это подтолкнуло нас к тому, чего не делал еще никто: к созданию программы машинного обучения, которая задействует нейронную сеть и научится распознавать речь после прохождения сложного процесса обучения. Программа должна использовать идеальную битовую маску для тренировки нейронной сети. И это сработало. Во время испытания с участием 24 слабослышащих людей мы добились улучшения восприятия речи на 50%.

Изначально, нейронная сеть — это программная система, состоящая из сравнительно простых элементов, которая может решать сложные задачи, задействовав все свои элементы. (Система организована подобно тому, как нейроны и их сети организованы в мозге). Когда нейронной сети предъявляется новый пример, она, подобно человеческому мозгу, может «учиться», определяя значимость связей между разными элементами. Нейронные сети могут быть разных форм и размеров, как и разного уровня сложности. Глубокие (или многослойные) нейронные сети имеют как минимум два «скрытых» слоя, которые не связаны напрямую с входным и выходным слоем. Каждый «скрытый» слой улучшает результат, полученный от другого слоя, основываясь на полученном ранее знании.

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

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

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

Второй этап был обучением с учителем. То есть мы загрузили образцы шумной речи и их очищенные варианты. При этом мы дали программе и «ключ» к задаче – последовательность нулей и единиц, которая описывает отличие шума от речи в каждом образце. Таким образом мы хотели улучшить способность машины распознавать разные звуки.

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

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

Еще одним полезным дополнением является создание второй глубокой нейронной сети, которая получает результаты работы первой и улучшает их. Пока первая сеть занята тем, что определяет признаки каждого частотно-временного блока, вторая проверяет признаки ближайших блоков, прилегающих к первому.

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

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

Чтобы испытать разработку на людях, мы попросили 12 человек с нарушениями слуха и 12 человек с нормальным слухом прослушать записи речи на фоне различных шумов. Записи давались попарно. Первая – речь с шумом, как она была записана изначально. Вторая – после обработки нашей программой, работающей на нейронной сети.

Предложения наподобие «Здесь становится холодно» и «Они ели лимонный пирог» были искажены шумами двух видов – равномерным гулом и множеством одновременно говорящих голосов. Равномерный гул напоминал звук работающего холодильника, при котором звуковые волны повторяются, а форма частотного спектра не меняется со временем. А гомон множества голосов мы изобразили, наложив друг на друга четыре мужских и четыре женских голоса, повторяющих разные фразы. Таким образом мы добились эффекта коктейльной вечеринки.

Испытуемые в обеих группах продемонстрировали значительное улучшение восприятия речи в тех записях, что были обработаны нашей программой. Люди с нарушениями слуха могли распознать лишь 29% речи с шумом, но после обработки они начинали понимать уже 84%. Некоторые испытуемые начали с показателя в 10% и впоследствии пришли к понимаю 90% речи. Такие же результаты люди с нарушенным слухом показали при прослушивании записей с речью на фоне равномерного гула – с 36% распознавание выросло до 82%. Даже люди с обычным слухом отмечали улучшение восприятия после того, как запись была обработана. Это означает, что наша программа будет полезна гораздо большему количеству людей, чем мы изначально предполагали. Испытуемые с нормальным слухом понимали до 37% сказанного на фоне ровного гула, и 80% — после обработки. В случае с речью на фоне других голосов восприятие улучшалось с 42 до 78%.

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

Конечно, есть пределы возможности и у нашей программы. Например, шум на записях, которые использовались в экспериментах, все еще сильно похож на те шумы, на которых программа училась. Чтобы функционировать в реальных условиях, программа должна уметь быстро распознавать и вычленять более разнообразные шумы. Ведь, например, звук вентиляции отличается от звука холодильника. Кроме того, в наших экспериментах мы не учли звуки эха и другие отраженные звуки. И это тоже часть «проблемы коктейльной вечеринки».

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

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

Мы зарегистрировали несколько патентов и начали работать с партнерами над коммерциализацией разработки. Среди них – компания Starkey Hearing Technologies, ведущий производитель слуховых аппаратов в США.

Сегодня «проблема коктейльной вечеринки» выглядит не такой неразрешимой, как еще несколько лет назад. Теперь мы можем создать программное обеспечение, которое полностью преодолеет эту проблему путем долгого обучения в различных звуковых ситуациях. В действительности же мы склонны видеть в этом процессе подобие того, как ребенок на раннем этапе жизни учится распознавать речь среди шума окружающего мира – постоянно пребывая среди шума и речи. С накоплением опыта растет и понимание. В этом вся красота метода. Как и в случае с воспитанием ребенка – время на нашей стороне.