summaryrefslogtreecommitdiffstats
path: root/normalization.md
blob: 31e73aa5ddc0b88c337db1045499e0104e3c67fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[[!meta title="Normalizing audio"]]
[[!meta copyright="Copyright © 2026 Dhruv Kadam"]]

## Classifying Audio

Before getting started normalizing, you should quickly check what kind
of audio you have. I find that it can be broken into four basic types.

### Ideal Audio

This is the kind you want. This audio has a consistent volume (Low
distance between peaks and valleys), and little to no background noise.

### Semi-Ideal Audio A

Audio with consistent background noise, yet consistent volume. This will
look like Ideal Audio for the most part, but the areas without speech
won't be silent. Consistent background noise means something like a fan
going in the background, or the noise of a highway audible in the
recording.

### Semi-Ideal Audio B

Audio with no background noise, but not consistent volume. This can be
identified by large distances between peaks and valleys.

### Sub-Ideal Audio

Audio with background noise and no consistent volume. Combines the worst
traits of Semi-Ideal A and B.

### Note

All of the above assume that the speaker is audible throughout. If the
audio includes noises that overpower the speaker, or the speaker cutting
out, then you should attempt to get a re-recording if possible. I
suppose you can use an AI tts solution as well, but that depends on if
you have the original script.

## Audio Normalization

### Ideal Audio

For basic normalization of Ideal Audio (recorded at a mostly consistent
volume and good quality), you can use FFMPEG.

``` example
ffmpeg -i input.opus -af "loudnorm=I=-14:TP=-2.5:LRA=10" output.opus
```

::: center
Apply loudness normalization filter and target for -14 LUFTS, -2.5 true
peak, with the distance between the quietest and loudest points being at
most 10 decibles
:::

I find that this is the optimal range, with lower LRAs sounding tinny.
Keep in mind the true peak means that anything above it will be cut off
abruptly. Better than clipping, but not by much.

You can also use the loudness normalization filter in [Audacity. Linked
is a short
guide](https://www.youtube.com/watch?v=RR7fCquUDAM&pp=ygUfYXVkYWNpdHkgbG91ZG5lc3Mgbm9ybWFsaXphdGlvbg%3D%3D).
If you do this, make sure to use the legacy limiter filter to set a true
peak.

### Semi-Ideal Audio A

- First, normalize the audio to something high, such as **-6** or **-5**
  LUFTS. This makes the background noise profile much more obvious.
- Secondly, open Audacity and use the [Noise reduction
  filter.](https://www.youtube.com/watch?v=bMefnFkCanE&pp=ygUYYXVkYWNpdHkgbm9pc2UgcmVkdWN0aW9u)
- Then, follow the steps for Ideal Audio.

### Semi-Ideal Audio B

- Open Audacity and determine the peaks and valleys.
- Use the **Normalize** tool (Not *Loudness* normalize!) to bring the
  valleys down to the median. You don't have to target your desired
  LUFTS level. In fact, I would recommend targeting about 6 DB above it.
- Utilize the Compressor tool, I find that the Podcast/Radio preset
  works well.
- Now follow the steps for Ideal Audio.

### Sub-Ideal Audio

- First, normalize the audio to something high, such as **-6** or **-5**
  LUFTS. This step can optionally be skipped if the noise is loud
  enough. This makes the background noise profile much more obvious.
- Secondly, open Audacity and use the [Noise reduction filter.](https://www.youtube.com/watch?v=bMefnFkCanE&pp=ygUYYXVkYWNpdHkgbm9pc2UgcmVkdWN0aW9u)
- Follow the steps for Semi-Ideal Audio B.

# Additional Notes

- The filter curve EQ, as well as Bass and Treble boost or any other
  volume-based Audio "Touch ups" should be used after normalization.
  Using them before would defeat their purpose.
- The point where noise reduction is used is the best time to use other
  distraction reducing tools, such as click reduction.
- Do not use the legacy compressor in Audacity, as I find it lowers
  audio quality. Legacy limiter is okay though.
- You can use the "Fix Clipping" tool under the analyze section to,
  you guessed it, find clipping.
- I've had mixed results with the clip fix tool, but it's worth a shot
  if there's no other options.
- If you use an AI "voice cloning" tts solution, remember that any
  noise that shows up in the sample clip will be added in the tts.