# Звук: шум и эхо в комнате

> Как убрать шум комнаты, гул 50 Гц и эхо с камеры DCR-PC115E: микрофон, комната, фильтры OBS
> и обработка FFmpeg. Все числа ниже — замеры на реальной записи, а не теория.

Что реально помогает, в порядке отдачи: **микрофон → комната → обработка в реальном времени → обработка после записи**.
Плагины стоят третьими, потому что любая обработка работает с тем, что уже записано: если в дорожке 25 дБ запаса речи
над шумом и 1.2 с спада эха, плагины улучшат, но не спасут. И наоборот — петличка в 20 см от рта решает почти всё сразу.

## 1. Микрофон — самая сильная мера

В DCR-PC115E **есть вход MIC**: мини-джек 3.5 мм, стерео, с питанием 2.5–3.0 В для электретного микрофона
(мануал, «Specifications», стр. 251). Значит внешний микрофон можно включить прямо в камеру, и тогда:

- звук идёт **внутри DV-потока** — синхронизация с картинкой идеальная, ничего не надо сводить в OBS;
- петличка в 15–20 см от рта даёт голос на 15–20 дБ выше комнаты — эхо и шум уходят «сами», потому что
  прямой звук начинает доминировать;
- никакого гула 50 Гц от блока питания, который ловит встроенный микрофон.

Если есть беспроводная петличка (например DJI Mic Mini): приёмник — в MIC камеры, усиление на приёмнике
выставить так, чтобы пики были около −12 дБ. Автоматическая регулировка уровня у камеры будет «качать»
громкость — это её свойство, но разборчивость всё равно несопоставима со встроенным микрофоном.

Альтернатива: приёмник по USB в Mac и отдельным источником в OBS (Audio Input Capture), а встроенный
микрофон камеры оставить как страховочную дорожку. Тогда синхронизацию подбирают один раз через
**Дополнительно → Смещение синхронизации** (хлопок в кадре помогает выставить точно).

## 2. Комната

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

## 3. OBS: обработка в реальном времени

Фильтры вешаются на источник звука: **микшер → шестерёнка у `BlackHole 2ch` → Фильтры**.
Порядок важен, OBS применяет их сверху вниз:

| # | Фильтр | Настройки | Зачем |
|---|---|---|---|
| 1 | Шумоподавление (RNNoise) | метод `RNNoise` | вентилятор, шипение, шум кондиционера |
| 2 | Экспандер | порог −38 дБ, степень 3, атака 10 мс, восстановление 200 мс | приглушает комнату в паузах (мягче, чем гейт) |
| 3 | Компрессор | порог −18 дБ, степень 3, атака 6 мс, восстановление 120 мс, усиление +4 дБ | ровнее громкость, выше средний уровень |
| 4 | Лимитер | порог −1 дБ | страховка от клиппинга |

Как подстраивать: слышно «дыхание» шума в паузах — поднять порог экспандера к −34…−36 дБ; съедается начало фраз —
опустить к −42 дБ. Компрессор с усилением +4 дБ можно выключить, если голос и так громкий.

**Чего встроенными средствами не сделать:** убрать гул 50 Гц и низкочастотный рокот.
Встроенный эквалайзер OBS делит полосы по 800 и 5000 Гц, то есть его «низ» — это и гул, и тело голоса сразу:
срезав гул, вы получите «телефонный» голос. Для этого нужен VST с полноценным фильтром высоких частот:

1. поставить бесплатный VST2-EQ — ReaPlugs (ReaEQ) с reaper.fm или TDR Nova — в `~/Library/Audio/Plug-Ins/VST`
   (прав администратора не требует);
2. в OBS добавить фильтр **VST 2.x Plugin** → ReaEQ → high-pass 70–80 Гц (12 дБ/окт), при желании узкий вырез на 50 Гц.

RNNoise гул **не убирает** — это проверено на реальной записи, см. замеры ниже.

## 4. После записи — лучший результат

Цепочка FFmpeg (проверена на реальной записи; порядок фильтров важен):

```bash
ffmpeg -i recording.mov -map 0:a:0 -af "\
highpass=f=80:poles=2,\
afftdn=nf=-45:nr=12:tn=1,\
agate=threshold=0.005:ratio=2:attack=10:release=250,\
acompressor=threshold=-20dB:ratio=3:attack=6:release=120:makeup=4,\
alimiter=limit=0.9" -c:a pcm_s16le cleaned.wav
```

- `highpass` — убирает гул и рокот (именно он, а не денойз, убирает 50 Гц);
- `afftdn` — спектральное шумоподавление с оценкой полки шума;
- `agate` — тише паузы; `acompressor` — ровнее голос; `alimiter` — страховка.

**Эхо** этим не убирается: Reverb-removal в FFmpeg нет. Простые варианты — **Adobe Podcast Enhance**
(podcast.adobe.com/enhance, бесплатно): заметно чистит и шум, и реверберацию; или платный iZotope RX
(Dialogue Isolate / De-reverb), если нужен эталон.

## 5. Как измерить свою комнату

Полка шума, запас речи и гул считаются по 20-мс окнам:

```bash
ffmpeg -i recording.mov -map 0:a:0 -t 30 -ac 1 -ar 48000 -f s16le raw.pcm
python3 - <<'PY'
import numpy as np
x = np.fromfile('raw.pcm', dtype='<i2').astype(float)/32768
f = x[:len(x)//960*960].reshape(-1, 960)
db = 20*np.log10(np.maximum(np.sqrt((f**2).mean(axis=1)), 1e-9))
noise, speech = np.percentile(db, 5), np.percentile(db, 95)
print(f"полка шума {noise:.1f} дБ, речь {speech:.1f}, запас {speech-noise:.1f} дБ")
PY
```

Ориентиры: запас 25–30 дБ — нормально для комнаты, 40+ дБ — хорошо; гул 50 Гц заметен, если он выше
полосы речи на 5 дБ и больше.

## Замеры на реальной записи

Запись 30 с, камера в 16:9, встроенный микрофон, комната без обработки:

| Метрика | До | После (FFmpeg-цепочка) |
|---|---|---|
| Полка шума | −47.6 dBFS | −50.9 dBFS |
| Речь (p95) | −22.0 dBFS | −22.0 dBFS |
| Запас речи над шумом | 25.6 дБ | **28.9 дБ** |
| Гул 50 Гц относительно речи | +9.7 дБ | **+0.8 дБ** |
| Гул 100 Гц | +5.0 дБ | +0.2 дБ |

То есть: шум в паузах тише на 3.3 дБ, запас речи +3.3 дБ, гул практически исчез.
Денойз **без** high-pass гул не убирает (50 Гц даже становится относительно громче на 1.6 дБ) — это и есть
причина, по которой в реальном времени без VST-эквалайзера гул остаётся.

## Приоритеты

| Мера | Эффект | Стоимость |
|---|---|---|
| Петличка в MIC камеры | убирает и шум, и эхо — сильнее всего | 0, если микрофон есть |
| Мягкая комната, микрофон ближе | −5…−10 дБ шума, короче эхо | бесплатно |
| OBS: RNNoise + экспандер + компрессор | −3…−5 дБ шума, ровнее голос | бесплатно, 5 минут |
| VST high-pass в OBS | убирает гул 50 Гц в реальном времени | бесплатный плагин |
| FFmpeg после записи | −3.3 дБ шума, гул −9 дБ | бесплатно |
| Adobe Podcast Enhance после записи | ещё и эхо | бесплатно, но не в реальном времени |
