Содержание статьи +
- Кратко
- Почему это важно
- Проблема: слушатель слышит комнату, а не только голос
- Где шумоподавление в цепочке
- Классический метод: оценить шум, затем вычесть его
- Нейросетевой метод: выучить, как звучит голос, и оставить только его
- RNNoise: гибрид, который сделал нейросетевое подавление шумов компактным
- Krisp: коммерческая модель на устройстве
- Шумоподавление NVIDIA: путь с ускорением на GPU
- Разобранный пример: насколько агрессивно подавлять?
- Как область измеряет прогресс: DNS Challenge
- Выбор шумоподавителя: практическое руководство
- Какие настройки стоит показывать, а какие – скрывать
- Где здесь Фора Софт
- Главное
- Что почитать дальше
Кратко
Шумоподавление – это часть голосовой системы, которая убирает фоновый шум: шипение, шум вентилятора, стук клавиатуры и разговоры в кафе за спиной говорящего, чтобы слушатель слышал только голос, а не помещение. Традиционный способ, который до сих пор используется в каждом браузере, анализирует, как выглядит шум в паузах между словами, и вычитает его – быстро и компактно, но при этом размывает голос и не справляется с чем-то, что не является ровным гулом. Современный подход, применяемый в RNNoise, Krisp и шумоподавлении NVIDIA, обучает нейросеть на тысячах часов записей «голос плюс шум», поэтому она способна убрать лай собаки или хлопок двери – задачи, с которыми старый метод не справится. Эта статья простым языком объясняет оба подхода, показывает, как агрессивность подавления связана с качеством голоса, называет реальные алгоритмы и где они применяются, а также помогает выбрать подходящий вариант для совещания, подкаста, контакт-центра или клиники.
Почему это важно
Если вы разрабатываете продукт для видеоконференций, контакт-центр, телемедицинскую платформу или онлайн-обучение, фраза «на звонке слишком много фонового шума» – одна из трёх самых частых жалоб, которые вы увидите. Следом идёт «фильтр шума съедает мой голос». Обе эти проблемы относятся к шумоподавлению, но требуют противоположных решений. Эта статья предназначена для продукт-менеджера, основателя или операционного руководителя, которому нужно понять суть компромисса, чтобы выбрать стратегию, заложить бюджет и задать инженеру точный вопрос – но не писать фильтр самостоятельно. Старший инженер также найдёт здесь каждое утверждение с ссылкой на оригинальную статью, исходники WebRTC, документацию вендора или соответствующую Рекомендацию ITU-T. К концу вы поймёте, почему бесплатный фильтр в браузере не убирает лай собаки, чем модель вроде Krisp или RNNoise отличается от стандартных решений, сколько это стоит по нагрузке на CPU и задержке, и где уместна каждая из технологий.
Проблема: слушатель слышит комнату, а не только голос
Начнём с того, что чувствует слушатель – ведь от этого зависит всё решение. Микрофон до невозможности честен: он фиксирует всё, что до него доходит, а не только нужный голос. Вместе с речью он улавливает вентилятор ноутбука, кондиционер, постукивание по клавиатуре, лай собаки, голоса детей в соседней комнате, работу кофемашины и гул машин за открытым окном. Слушателю приходится самостоятельно разделять эти звуки – и на продолжительном звонке это вызывает усталость. Задача шумоподавления – выполнить это разделение за него, ещё до передачи звука, чтобы голос пришёл чистым.
Нам нужно одно число, чтобы оценить сложность этой задачи – это отношение сигнал/шум, или SNR по-английски. Оно показывает разницу в децибелах между громкостью голоса и уровнем шума. Децибел (дБ) – это логарифмическая шкала: каждые 6 дБ примерно удваивают или вдвое уменьшают амплитуду сигнала. Высокий SNR – например, 30 дБ – означает, что голос чётко выделяется на фоне шума, и звонок звучит хорошо без дополнительной обработки. Низкий SNR – скажем, 5 дБ – говорит о том, что шум почти такой же громкий, как и голос, и без подавления шума слушать становится трудно. Большинство реальных видеозвонков находятся ближе к 20 дБ, чем к 0 дБ – это удобная середина, где технологии подавления шума могут эффективно работать, не создавая заметных искажений. Трудные случаи – звонок из движущейся машины, медсестра на оживлённом посту, оператор в open-space – это ситуации с низким SNR, и именно здесь старый и новый методы начинают существенно отличаться.
Ещё одна мысль перед методами, потому что она определяет каждый последующий выбор. В реальном звонке ждать нельзя. Каждый фрагмент звука – обычно 10 или 20 миллисекунд, называемый кадром (frame) – нужно обработать и отправить почти сразу, ведь человеческий разговор начинает «разваливаться», как только задержка туда-обратно превышает примерно 300–400 миллисекунд. Поэтому шумоподавителю в реальном времени разрешено «заглядывать вперёд» от текущего кадра максимум на несколько миллисекунд. Именно это ограничение – обрабатывать кадр немедленно, почти без использования информации из будущего – делает шумоподавление для звонков сложнее, чем очистку звука для подкаста, которую можно обрабатывать всю ночь. Именно по этому критерию оценивается каждый метод на этой странице.
Где шумоподавление в цепочке
Шумоподавление не работает само по себе. В цепочке обработки звука WebRTC – открытой системе очистки аудио, поддерживаемой Chrome, Edge и большинством нативных голосовых приложений – оно занимает строго определённое место в последовательности, и этот порядок не случаен. Сначала фильтр высоких частот устраняет неслышимый низкочастотный гул. Затем эхоподавление убирает голос собеседника, просачивающийся обратно через динамик – подробности об этом в статье Эхоподавление (AEC): как это на самом деле работает. Далее шумоподавление – тема этой статьи – подавляет фоновые шумы. И, наконец, автоматическая регулировка усиления устанавливает финальный уровень громкости – об этом рассказывается в статье Автоматическая регулировка усиления (AGC): ровная громкость. Полная последовательность этапов описана в материале WebRTC-конвейер аудио целиком.
Почему шумоподавление работает до регулировки усиления – это важно для жалоб в вашем ящике. Если бы каскад усиления сначала поднял сигнал, он поднял бы и шум, и подавителю ниже по цепочке досталась бы более громкая и трудная задача. Очищая сначала и усиливая потом, цепочка гарантирует, что громким для слушателя окажется голос, а не усиленный шум из кафе.
Классический метод: оценить шум, затем вычесть его
Старое семейство шумоподавителей – те, что до сих пор встроены в каждый браузер, – основано на одном умном наблюдении. Между словами и предложениями, когда никто не говорит, микрофон фиксирует чистый шум. Если система «слушает» в эти паузы, она может составить представление о том, как выглядит шум: сколько энергии он несёт на каждой частоте. Затем, когда говорящий снова заговорит, система вычитает эту модель шума из общей смеси и оставляет то, что остаётся – а это, в основном, и есть голос.
Чтобы это сделать, подавитель сначала разбивает каждый звуковой кадр на частоты – низкие, средние, высокие и всё, что между ними – с помощью математического преобразования. Представьте графический эквалайзер с десятками ползунков – по одному на каждую частотную полосу. В тихих паузах система измеряет, сколько шума присутствует в каждой полосе; это и есть спектральная оценка шума. Когда голос возвращается, она снижает уровень каждой полосы на величину оценённого шума, оставляя голос почти нетронутым.
Самую раннюю опубликованную версию этого метода – спектральное вычитание – описал Стивен Болл (Boll) в 1979 году; близкий подход – фильтр Винера – предложили Джэ Лим и Алан Оппенгейм в том же году, а более тонкую статистическую версию – оценку MMSE кратковременной спектральной амплитуды – разработали Ярив Эфраим и Дэвид Малах в 1984 году.
Шумоподавитель WebRTC – прямой потомок этих решений: он оценивает спектр шума, вычисляет коэффициент усиления для каждой частотной полосы и применяет его с настраиваемой степенью агрессивности – от мягкой до очень сильной.
Привлекательность очевидна. Он крошечный – всего несколько килобайт кода – и достаточно быстрый, чтобы незаметно работать даже на десятилетнем телефоне. Ему не нужны ни обучающие данные, ни файл модели. А для задачи, для которой он создан – ровный, монотонный шум вроде вентилятора или кондиционера, почти не меняющийся от секунды к секунде, – он работает хорошо. Дело в том, что ровный шум, зафиксированный в паузе, остаётся таким же мгновением спустя, когда человек начинает говорить.
Почему у классического метода есть предел
В саму идею заложены две ошибки, и назвать их – значит точно понять, когда вы метод переросли.
Первая неудача – нестационарный шум, то есть шум, который быстро меняется. Весь метод основан на предположении, что шум, зафиксированный в последней тихой паузе, по-прежнему актуален и сейчас. Это работает для вентилятора. Но совершенно не работает для лая собаки, хлопка двери, щелчка клавиатуры, плача ребёнка или второго человека, который начал говорить – ведь эти звуки возникают во время речи и ничем не напоминают тихий фоновый гул, измеренный мгновением ранее. У классического подавителя шума нет способа оценить такие события, поэтому он пропускает их без изменений. Вот почему бесплатный браузерный фильтр убирает шум кондиционера, но не справляется с лаем собаки – и почему ваши пользователи в целом не понимают, что на самом деле означает «шумоподавление».
Вторая неудача – артефакт, который он оставляет, называется музыкальный шум (musical noise). Когда вычитание выполняется неточно – а оно всегда неточно – отдельные полосы частот выживают, в то время как их соседи подавляются, оставляя крошечные тоны, которые мерцают, появляясь и исчезая. Слушатели описывают это как «булькающий», «подводный» звук. Увеличьте агрессивность, чтобы подавить больше шума, – получите больше музыкального шума; уменьшите, чтобы избежать артефакта, – останется больше шума. Это напряжение – резать сильнее и повредить голос или резать мягче и оставить шум – является постоянным ограничением классического подхода, и именно этот разрыв призваны закрыть нейросетевые методы.
«Ловушка, прямым текстом. Когда клиент говорит: «На звонке всё равно лает моя собака, даже с включённым шумоподавлением», он не нашёл баг – он обнаружил предел классического метода. Встроенный в браузер шумоподавитель – инструмент для стационарного шума. Лай, грохот и чужие голоса – нестационарны и требуют обученной нейросетевой модели. Это лечится не настройкой, а переходом к другому классу подавителя. Сказать клиенту «прибавьте шумоподавление» в такой ситуации – усугубить проблему: более агрессивная фильтрация приведёт к большему искажению его собственного голоса, а лай всё равно пробьётся.»
Нейросетевой метод: выучить, как звучит голос, и оставить только его
Современное семейство подходов решает задачу наоборот. Вместо того чтобы измерять шум и вычитать его, нейросетевой подавитель заранее обучается на тысячах часов записей – чистого голоса, перемешанного со всевозможными видами шума, – пока не усвоит, глубоко в своих весах, как выглядит человеческая речь и чем она не является. В процессе работы ему не нужна тихая пауза для анализа. Он обрабатывает каждый кадр, по полосам частот определяя, какая часть сигнала – это голос, который нужно сохранить, а какая – шум, подлежащий удалению. Поскольку он выучил характер лая, грохота и стука клавиш, он способен убрать их даже в середине фразы – именно в тех случаях, с которыми классический метод справиться не может.
Цена этой силы реальна, и её стоит назвать сразу. Нейросетевая модель – это не просто несколько килобайт кода вычитания; ей нужно прогонять арифметические вычисления на каждом кадре, что требует ресурсов CPU или GPU, и её необходимо обучить – а это серьёзная работа. Искусство этой области за последнее десятилетие заключалось в том, чтобы снизить эти затраты настолько, чтобы всё работало в реальном времени на обычном ноутбуке или телефоне – и это и есть история RNNoise, Krisp и шумоподавления NVIDIA.
RNNoise: гибрид, который сделал нейросетевое подавление шумов компактным
Прорыв, сделавший нейросетевое шумоподавление практичным для обычных устройств, – это RNNoise, опубликованный Жан-Марком Валеном (Valin) – одним из инженеров кодека Opus, работавшим в Mozilla и Xiph.Org, – в 2017–2018 годах. Его ключевая идея – не использовать огромную нейросеть для всей задачи, а сохранить эффективную обработку сигнала, которая и так хорошо работает, и задействовать небольшую нейросеть только для сложной части: определить, насколько подавить шум в каждой полосе частот. Вален называет этот подход гибридным DSP/глубокое обучение, и именно поэтому модель получилась настолько компактной.
Вот как это работает простыми словами. Вместо того чтобы заставлять сеть анализировать каждое из сотен частотных значений в кадре – что потребовало бы огромной и медленной модели, – RNNoise объединяет частоты в 22 полосы, распределённые так, как воспринимает человеческое ухо: шире на высоких частотах, где слуховое разрешение хуже. Задача сети – выдать для каждой полосы одно значение усиления (gain) – число от 0 до 1, которое означает: «оставить полосу полностью» (1,0), «полностью убрать» (0,0) или что-то между ними. Представьте это как эквалайзер с 22 ползунками, которые сеть корректирует много раз в секунду, чтобы пропускать голос и подавлять шум. Поскольку значения усиления ограничены диапазоном от 0 до 1, модель не может добавить звук, которого не было – это исключает целый класс ошибок.
В центре системы – рекуррентная нейросеть (RNN), обладающая короткой памятью о недавних кадрах. Это важно, потому что для различения голоса и шума необходимо учитывать временной контекст, а не единичный момент. В основе – управляемые рекуррентные блоки (GRU), представляющие собой ячейку памяти, способную удерживать паттерн на протяжении нескольких кадров. Три небольших слоя GRU выполняют основную работу: на их вход подаются 42 тщательно отобранных признака, включая энергии частотных полос, высоту тона (pitch) и степень вокализованности звука. Отдельным решением является фильтрация по высоте тона – гребенчатый фильтр, настроенный на высоту голоса говорящего. Он устраняет шум, прячущийся между гармониками, что 22 грубые полосы по отдельности уловить не могут из-за своей широкой полосы пропускания.
Числа – вот что делает RNNoise по-настоящему выдающимся. Обученная модель занимает всего около 85 килобайт – настолько мало, что её можно легко встраивать прямо в приложение, – поскольку веса хранятся в виде 8-битных значений, а не 32-битных чисел с плавающей точкой. Модель работает примерно в 60 раз быстрее реального времени на настольном CPU x86 и около в 7 раз быстрее реального времени на Raspberry Pi 3, без использования GPU. При этом она строго следует требованиям реального времени: смотрит вперёд всего на 10 миллисекунд. Исходный код доступен под разрешительной лицензией BSD. RNNoise используется как шумоподавитель в OBS Studio и во многих открытых голосовых инструментах, а его архитектура – небольшая гибридная модель с полосовым усилением и памятью GRU – стала образцом, который позже адаптировали коммерческие продукты.
Krisp: коммерческая модель на устройстве
Krisp – самый известный коммерческий нейросетевой шумоподавитель. Он продается как настольное приложение, а что важнее для продуктовых команд – как SDK, который можно встроить в собственное приложение. По сравнению с RNNoise, Krisp предлагает более высокое качество обработки за счёт более крупной модели и повышенных требований к CPU, а также добавляет функции, отсутствующие в открытой версии.
Три факта о Krisp заслуживают внимания продуктовой команды. Во-первых, он работает на устройстве, а не в облаке: звук обрабатывается локально, и, согласно документации самого Krisp, голосовые данные не загружаются на сервер. Для телемедицины и финансов, где передача необработанного аудио пациента или клиента третьей стороне – вопрос комплаенса, локальная обработка часто становится решающим фактором. Во-вторых, Krisp предлагает модели двух размеров – модель Small, которая используется по умолчанию в SDK и оптимизирована для работы на более простых устройствах, обеспечивая скорость примерно в семь раз выше, чем у модели Big, и модель Big, обеспечивающую наивысшее качество за счёт большей нагрузки на CPU. Выбор между качеством и производительностью CPU вы делаете в зависимости от класса устройства – к этому вопросу мы ещё вернёмся. В-третьих, Krisp подавляет шум в обоих направлениях: исходящем (ваш микрофон, очищенный перед отправкой) и входящем (звук собеседника, очищенный после получения, что особенно полезно, если у него нет хорошего фильтра).
По задержке документация Krisp даёт конкретное число, которое стоит привести, поскольку оно задаёт ожидания: для кадра длительностью 10 миллисекунд при частоте дискретизации 16 кГц алгоритмическая задержка составляет около 25 миллисекунд. Это задержка, которую добавляет сам подавитель, – она достаточно мала для реальных звонков, но не нулевая. Это часть бюджета «рот-ухо», которым вы управляете по всему конвейеру. Модели Krisp настроены под ближнее поле (near-field), то есть микрофон находится в пределах примерно полуметра от рта; говорящий через комнату – более сложный случай, и результат зависит от расстояния, эха и SNR. SDK работает на десктопе, мобильных устройствах и – на базе WebAssembly – прямо в браузере.
Шумоподавление NVIDIA: путь с ускорением на GPU
Третье имя, с которым сталкиваются продуктовые команды, – шумоподавление NVIDIA, и у него есть небольшая история, которую стоит знать, потому что названия менялись. В 2020 году оно вышло как RTX Voice – бета-версия, использовавшая аппаратное ускорение ИИ (тензорные ядра) на видеокартах NVIDIA RTX для обработки звука с помощью сети шумоподавления. Позже NVIDIA распространила технологию на более старые карты GTX и интегрировала её в приложение NVIDIA Broadcast как функцию «Noise Removal». Для разработчиков та же технология доступна через Maxine Audio Effects SDK (ныне Maxine входит в бренд «NVIDIA AI for Media»), который предлагает шумоподавление, удаление комнатного эха и другие аудиоэффекты в виде библиотеки для интеграции в сторонние приложения.
Отличительная черта – где оно работает. RNNoise и Krisp разработаны так, чтобы функционировать на CPU, что позволяет им работать на любой машине; путь NVIDIA использует более тяжёлую сеть на GPU, обеспечивая более крупную модель и более высокое качество обработки без нагрузки на процессор, который и так занят проведением совещания. Компромисс – переносимость: требуется видеокарта NVIDIA. Это делает его естественным выбором для стримера, вещателя или рабочей станции для создания контента, где уже есть мощный GPU, и плохим решением для телефона или тонкого ноутбука. Для продуктовой команды правило простое: если ваши пользователи используют десктопы с GPU и вам нужно наивысшее качество, путь NVIDIA выглядит привлекательно; если же пользователи работают на любой технике, модель на CPU вроде Krisp или RNNoise – более безопасный выбор по умолчанию.
Разобранный пример: насколько агрессивно подавлять?
У каждого шумоподавителя есть регулятор – назовём его уровнем агрессивности или силы подавления, – и самое важное, что нужно понимать: его увеличение не идёт без потерь. Чем сильнее подавление, тем больше шума убирается – и тем больше теряется голоса. Искусство состоит в том, чтобы найти такую настройку, при которой слушатель выигрывает от более тихого фона больше, чем теряет от чуть менее выразительного голоса. Числа делают это наглядным.
Допустим, говорящий приходит с отношением сигнал/шум 10 дБ – его голос на 10 дБ громче шума, довольно шумный звонок. Нейросетевой подавитель может спокойно уменьшить шум, скажем, на 18 дБ, оставив голос почти нетронутым. Пройдём арифметику:
новый уровень шума = старый уровень шума − подавление, применённое к шуму
= (−10 дБ относительно голоса) − 18 дБ
= −28 дБ относительно голоса
новый эффективный SNR = 28 дБ (голос теперь возвышается на 28 дБ над остаточным шумом)Звонок перешёл с напряжённых 10 дБ SNR на комфортные 28 дБ SNR – и слушатель перестаёт напрягаться. Теперь нажмите на ручку слишком сильно – и модель начнёт убирать голос вместе с шумом. Если самая агрессивная настройка снимет лишние 6 дБ шума, но при этом ослабит согласные – звуки т, к и с, несущие разборчивость, – остаточный шум окажется ниже, но голос станет глухим и хуже различимым. Слушатель поменял чистый фон на приглушённый голос – а это, как правило, плохой обмен на звонке, где главное – быть понятым. Вот почему хорошие значения по умолчанию находятся посередине и почему регулировка остаётся в руках инженера, а не конечного пользователя, который крутит ручку в моменте.
У того же компромисса есть формальный способ измерения, и его стоит назвать, потому что он встречается в каждом серьёзном сравнении. Международный метод оценки шумоподавления – Рекомендация ITU-T P.835 – предлагает слушателям оценивать три параметра отдельно: речевой сигнал сам по себе (SIG – насколько повреждён голос?), фон сам по себе (BAK – насколько навязчив остаточный шум?) и общее качество (OVRL). Подавитель, который хорош по BAK, но плох по SIG, убирает шум ценой искажения голоса – как в случае чрезмерной агрессии выше. Лучшие модели показывают высокие результаты по всем трём критериям, и именно поэтому используется тройное разделение: чтобы производитель не мог скрыть повреждение голоса за счёт впечатляющего показателя по шуму. Краудсорсинговая версия – ITU-T P.808 – развивает эту идею в масштабах, а модель машинного обучения DNSMOS P.835 автоматически предсказывает эти оценки, позволяя командам тестировать тысячи фрагментов без привлечения слушателей.
Как область измеряет прогресс: DNS Challenge
Если вам нужно одно место, чтобы увидеть передний край – это DNS Challenge (Deep Noise Suppression Challenge), которое Microsoft Research проводит как регулярное соревнование на конференциях по обработке речи Interspeech и ICASSP с 2020 года. Каждый раунд включает публикацию большого открытого набора данных с чистой речью и шумом, стандартного тестового набора и метода оценки на основе шкалы ITU-T P.835, после чего участники ранжируются. Соревнование принесло пользу не только участникам, но и всем в области: оно создало общие публичные обучающие данные, позволяющие любой команде разработать конкурентоспособную модель, и установило честную стандартизированную систему оценки, благодаря которой утверждение «наша модель лучше» стало проверяемым. Объективная метрика, которую популяризировал конкурс – DNSMOS P.835, – сегодня является повседневным инструментом для сравнения шумоподавителей в разработке. Для продуктовых команд важнее не позиция в таблице лидеров, а общий тренд: нейросетевое подавление шума улучшается год от года на публичном эталоне, и разрыв между настроенной коммерческой моделью и классическим браузерным фильтром теперь велик и хорошо задокументирован.
Выбор шумоподавителя: практическое руководство
Это самая практическая часть статьи, поэтому приведём её в виде таблицы, по которой можно действовать. Правильный выбор зависит от трёх факторов: сколько у вас CPU или GPU, насколько сложен шум и можно ли передавать звук за пределы устройства.
| Сценарий | Рекомендуемый подход | Почему |
|---|---|---|
| Обычное видеосовещание, разные устройства | Встроенное NS WebRTC или RNNoise как шаг вверх | Бесплатно, крошечно, берёт обычный ровный шум; RNNoise добавляет нестационарный за ~85 КБ |
| Контакт-центр / операторы в open-space | Коммерческий нейросетевой SDK (напр. Krisp), CPU-модель | Гул чужих голосов нестационарен; на устройстве хранит аудио клиента приватным |
| Телемедицина / финансы, критична приватность | Только нейросетевая модель на устройстве | Отправка сырого аудио пациента или клиента в облачный фильтр – риск комплаенса |
| Подкаст / запись, нет ограничения по времени | Самая большая нейромодель, какую можете, офлайн | Нет ограничения реального времени, используйте модель с большим заглядыванием вперёд |
| Стример / автор на станции с GPU | Шумоподавление NVIDIA (Maxine / Broadcast) | Мощный GPU уже есть; запустите модель крупнее и выше качеством вне CPU |
| Встраиваемое / маломощное устройство | Классическое NS или RNNoise, если CPU позволяет | Несколько килобайт и минимум CPU; RNNoise влезает там, где большая модель – нет |
| Захват музыки или инструмента | Выключите шумоподавление | Подавитель считает протяжные ноты инструмента шумом и портит запись |
Под таблицей – два правила. Первое: подбирайте инструмент под шум – ровный шум устраняется классическим методом бесплатно, а за нейромодель вы платите только тогда, когда нужно убрать внезапные нестационарные звуки. Второе: подбирайте размер модели под устройство – модель Big на тонком ноутбуке или телефоне будет быстро разряжать батарею и может «заикаться», поэтому Small или RNNoise часто являются правильным выбором по умолчанию, а Big стоит использовать только на мощных машинах. Последняя строка – ту, которую команды часто забывают: для музыки оптимальное количество шумоподавления – ноль, потому что подавитель, обученный на речи, воспримет протяжную ноту скрипки как шум и ослабит её. Отключайте шумоподавление для творческих задач так же, как отключаете Автоматическую регулировку усиления.
Какие настройки стоит показывать, а какие – скрывать
Та же дисциплина, что и при настройке усиления, применима и здесь: открывайте намерение, скрывайте механизм. Неинженер может сказать, играет ли он музыку или находится на совещании, – но он не в состоянии настроить кривую подавления на слух в нужный момент, не ухудшив ситуацию.
| Настройка | Открывать пользователям? | Почему |
|---|---|---|
| Шумоподавление вкл/выкл | Да | Нужно выключать для музыки, инструментов, профзахвата |
| Простой пресет «низко / средне / высоко» | Иногда | Допустимо как три безопасных пресета; никогда как сырая числовая ручка |
| Размер модели (Small / Big) | Нет – авто по устройству | Неверный выбор заикается на слабом железе или тратит качество на сильном |
| Сырая сила подавления (дБ) | Нет | Слишком высоко глушит голос; значение по умолчанию задаёт только инженер |
| Входящее (со стороны динамика) подавление | Иногда | Полезно, когда у собеседника нет фильтра; держите простым переключателем |
| Какой алгоритм (классический / RNNoise / Krisp / NVIDIA) | Нет | Это выбор реализации, который продукт делает под устройство, а не пользователь |
Где здесь Фора Софт
Мы интегрируем аудио в реальном времени в видеоконференции, телемедицину, онлайн-обучение, контакт-центры и лайв-шопинг с 2005 года. Проблема «слишком много фонового шума» против «фильтр заглушает мой голос» – это вызов, с которым сталкивается каждый из этих продуктов. В телемедицине главным ограничением часто становится приватность: аудио пациента не может покидать устройство для обработки в облаке, поэтому нейросетевая модель, работающая локально, – единственный допустимый вариант. Мы настраиваем её чувствительность так, чтобы тихая клиника оставалась чистой, но при этом не терялся голос врача. В контакт-центрах шум – это разговоры рядом стоящих операторов и нестабильный фоновый гул, с которым классический фильтр справиться не может, поэтому использование обученной модели оправдано с точки зрения нагрузки на CPU.
Наша задача – в первую очередь подобрать подходящий подавитель шума под тип устройства, определить, когда бесплатного фильтра WebRTC достаточно, а когда стоит внедрить коммерческий SDK, корректно вставить подавитель в цепочку обработки WebRTC – до регулировки усиления, – и заранее проверить искажение голоса по метрикам SIG/BAK/OVRL, ещё до того, как клиент это услышит. Мы не обучаем модели шумоподавления с нуля: мы адаптируем уже существующие, чтобы они эффективно работали на разнообразной комбинации помещений и устройств, которые реально используются вашими пользователями.
Главное
- Классическое подавление шума измеряет фоновый шум в паузах и вычитает его – бесплатно, почти незаметно, но только при равномерном шуме.
- Оно не справляется с лайком, звуками клавиатуры или чужими голосами – они возникают во время речи.
- Нейросетевое подавление научилось распознавать речь и оставляет только её, удаляя внезапные помехи.
- RNNoise – гибридный подход: небольшая модель (~85 КБ) на основе GRU, усиление по частотным полосам, работает на любом процессоре.
- Krisp и NVIDIA повышают качество обработки; локальная обработка на устройстве сохраняет приватность, а GPU-оптимизированные модели требуют больше ресурсов.
- Чем сильнее подавление, тем больше теряется и полезный голос; оценивайте баланс с помощью разделения P.835 по параметрам SIG/BAK/OVRL.