Реализация AI-шумоподавления аудио (Noise Reduction)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Реализация AI-шумоподавления аудио (Noise Reduction)
Простой
~2-3 дня
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    859

Реализация AI-шумоподавления в аудио

AI-шумоподавление убирает фоновые шумы (HVAC, трафик, клавиатура, гул) из речевых записей. В отличие от спектрального вычитания, нейросетевые модели не создают «музыкального шума» и сохраняют естественность голоса.

Инструменты и подходы

noisereduce — библиотека на основе спектрального вычитания с адаптивным профилем шума:

import noisereduce as nr
import soundfile as sf
import numpy as np

def denoise_audio(input_path: str, output_path: str) -> None:
    audio, sr = sf.read(input_path)

    # Статистика шума из первых 0.5 секунд (тишина/фон)
    noise_sample = audio[:int(sr * 0.5)]

    reduced = nr.reduce_noise(
        y=audio,
        sr=sr,
        y_noise=noise_sample,
        prop_decrease=0.75,  # степень подавления: 0=нет, 1=максимум
        stationary=False      # False = адаптивный шум
    )

    sf.write(output_path, reduced, sr)

RNNoise — легковесная рекуррентная сеть от Mozilla, работает в реальном времени:

import subprocess

def rnnoise_denoise(input_wav: str, output_wav: str) -> None:
    # Требует 48 kHz моно
    subprocess.run([
        "ffmpeg", "-i", input_wav,
        "-af", "arnndn=m=/usr/share/rnnoise/rnnoise-models/beguiling-drafter-2018-08-30/bd.rnnn",
        output_wav
    ], check=True)

DeepFilterNet — SOTA модель для улучшения речи, DNSMos > 3.8/5:

from df import enhance, init_df

model, df_state, _ = init_df()

def deepfilter_enhance(audio_array: np.ndarray, sr: int) -> np.ndarray:
    enhanced = enhance(model, df_state, audio_array)
    return enhanced

Применение в пайплайне

Сценарий Рекомендация Задержка
Post-processing записей DeepFilterNet не критична
Realtime VoIP RNNoise < 10 мс
Подготовка данных для STT noisereduce офлайн
Студийный ремастер Demucs + DeepFilterNet офлайн

Шумоподавление перед Whisper снижает WER на 15–40% для записей с SNR < 10 dB. Сроки интеграции в существующий аудиопайплайн — 3–5 дней.