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

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

Когда мы разработали полностью программную технологию шумоподавления в компании 2hz.ai, возник серьезный вопрос: почему мы не можем запустить эту технологию на стороне сервера, а не на телефонах или ноутбуках?

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

Видите ли, когда выходит новый iPhoneX с лучшим шумоподавлением — это не оказывает большого влияния на таких поставщиков услуг, как Twilio, RingCentral, Fuze или WebEx. Это связано с тем, что iPhoneX составляет лишь часть их общего количества устройств. Но если бы они могли шумоподавлять (шумоподавлять) каждую коммуникацию, независимую от пользовательских устройств — в этом была бы большая ценность.

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

Звучит как ежу понятно. Однако это не так просто, как кажется. Теперь поговорим о некоторых трудностях.

Качество

Что ж, во-первых, вам нужна технология, которая работает с одним микрофонным источником звука, поскольку, очевидно, на стороне сервера вы не можете иметь доступ к двум микрофонным источникам. Ваша технология должна работать так же хорошо, как технология с двумя микрофонами. Мы (на частоте 2 Гц) думаем, что это невозможно без методов глубокого обучения.

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

Высокий параллелизм

Как шумоподавление на устройстве, так и шумоподавление на сервере технически сложны. В то время как для первого требуется высокая скорость + низкие ресурсы ЦП + потребление батареи, для второго требуется высокая скорость + высокий параллелизм + низкое энергопотребление. Для среднего поставщика услуг вы должны быть в состоянии обрабатывать 10 000 вызовов одновременно, для больших раз это может быть 100 000 одновременных вызовов. Если ваши алгоритмы основаны на глубоком обучении — может быть невозможно поддерживать такой параллелизм при выводе с процессорами. Скорее всего, вам понадобятся графические процессоры для масштабирования.

Чтобы дать вам пример, с DNN среднего размера, если новейшее ядро ​​​​ЦП Intel может параллельно устранять шум до 10 аудиопотоков, один средний графический процессор AWS может масштабироваться до 500 таких потоков. Учитывая, что графические процессоры не всегда легко доступны в центрах обработки данных и облачных сервисах, это может стать проблемой.

Вам нужно хорошо подумать, чтобы сделать такое решение экономически эффективным.

Задержка голоса

Еще одна вещь, о которой следует беспокоиться, — сквозная задержка голоса.

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

Особые гудки и музыка

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

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