My Audiobook Process for Removing A/C Fan Noise

Unless you’re in Audacity. Audacity doesn’t use 16-bit sound internally. It uses 32-bit floating. It does this in order to avoid damage during production.

Look no further than Audiobook Mastering. Mastering applies Loudness Normalization and only then peak limiting. It’s totally possible that Normalization can cause volume peaks and tips louder than 0dB or 100%. Except Audacity doesn’t overload at 100%. It just hangs on to the work until you decide what you want to do.

What you do is peak limiting which gently squashes the tips and peaks to quieter than -3.5dB. Limiting is not the diesel bulldozer that Normalization is. It just makes teensy, gentle corrections here and there, so it doesn’t significantly affect the overall loudness.

And just to bring this home, the first tool applied in Mastering is 100Hz high-pass filter—the rumble filter. This idea was taken from outside broadcast and the movie industry. This gets rid of thunder, earthquakes, wind, and that Metrobus going by—non-show sounds—before the other tools get to work. This is one reason you can’t add tools to Mastering or take any away. They clean up after each other.

The question immediately comes up when you correct your mistakes and mouth noises. Generally, before Mastering. The show applied to mastering should be clean and correct. If you recorded in a quiet, echo-free room, Mastering and maybe Noise Reduction will produce a submittable chapter.

Really side note that there’s no such thing as Macro Noise Reduction. Current Noise Reduction tools always take two passes, Profile and then Actual Reduction.

Koz

Excellent feedback, Koz.

This comes back to my needing “a little goal management”. Background noise just bugs me and I want to minimize it! I know, I know…

I didn’t even know there was an On-Line ACX Audiolab, lol.

I’m getting there. Thanks.

Zash

https://www.acx.com/audiolab

It’s one of the branches of Audio Submission Requirements.

https://help.acx.com/s/article/what-are-the-acx-audio-submission-requirements

ACX used to offer personal evaluations for a submitted short test recording. Not any more. Now your choices are submit the whole book…or not. My submitted file was practically perfect in every way but my voice sucked. I decided not to give up the day job.

Koz

Without reading through the whole post again, Audacity offers ACX-Check which quickly and easily checks all three of the submission requirements.

Screen Shot 2024-04-22 at 6.33.52 PM

Koz

This is a New User problem. Many people are horrified the first time they hear themselves. “Do I really sound like that?”

And my staffing arrangement. You are three people: Producer, Audio Engineer, and Performer. It’s the Producer that says things like: “Get this !@#$% thing out of the !@#$% studio and for sale!”

Koz

Right. I am familiar with Audacity ACX-Check, and with the ACX Audio Submission Requirements webpage. I hadn’t known about ACX Audio Lab, but I do now. Thank you.

So now I have a question about “Noise Reduction To” instead of “Noise Reduction By”.

I have appended two raw WAV files, the first with the A/C unit at the building next door running, and the second with it not running, so just my room noise:

I tried mixing the noise profile for both, then using that as a Noise Reduction profile. Of course, after Noise Reduction the noise level for the appended file (“just room noise”) ended up much lower than for the “A/C noise”. This is because in Audacity Noise Reduction, the “Noise reduction (dB)” parameter is a “Noise Reduction By” setting.

Is it possible to do a “Noise Reduction To” a specified dB level, when the noise level is changing throughout the file?

I do understand that this is more complicated, because after setting the Noise Profile, a “Noise Reduction By” process can just process the entire waveform. Whereas a “Noise Reduction To” process would have to identify the noise level in each “slice” and apply the appropriate amount of reduction to that slice.

This would only work if the noise content is similar, which I believe it is in my case. Or, I guess, a very clever algorithm could set noise profiles by the noise dB level in each slice.

I’m thinking it should be possible, because I can look at my spectral waveforms and see where the A/C fan is on or off. Of course, I look between words, so the algorithm would need to do something similar.

And yes, I realize I could mark these sections and apply separate noise reduction. Or even split into two tracks, one with A/C fan and one without, then reduce then mix. I would have to be careful to match the resulting noise level.

Another possibility is to use the spectral gate approach (such as Audacity Noise Gate “Gate frequencies above (kHz)”) with a “Noise Reduction To” setting.

So, long story short, is there a way to do “Noise Reduction To”?

If not with stock Audacity, maybe with a plugin or something like EaseUS “AI-driven background noise remover” or Adobe Podcast AI? (I know, I know, everybody’s latching on to the “AI” buzz word… drives me nuts.)

Thank you.

Zash

Update: I’ve been playing with applying scaled noise reduction (“by”) to different sections of the appended file. Because of the higher frequencies present in the A/C noise, in the end the spectral noise still looks very different in the different sections. So I’m guess a “Noise Reduction To” effect wouldn’t be effective.

I’ve had better luck using spectral gating. But it puts me in a dilemma…

I use spectral gating above 860Hz to reduce the volume (by -18dB) of my breath noises (I don’t want them completely removed because it sounds unnatural).

But to match the noise content with and without A/C noise, I want to hit hard (like by -30dB) between 100Hz and 860Hz, but only gated so as not to wreck my voice.

That puts me back to wishing for a gated band-stop filter. Ho hum…

And I realize this would leave different noise levels behind my voice to with and without A/C noise. I’m not sure if that would matter to ACX.

This all stems from my inability to control the on/off of the outside A/C unit in an adjacent building (I found a sneaky way to turn off the A/C booster fans in my building). So late at night, I’ve been doing narration when the outside unit cycles off – a real PIA.

So now you know why the specification for a mastered chapter is to start with a quiet, echo-free room. If you can’t do that, then the “work” of creating the book isn’t announcing. It’s generating the filters, effects, corrections, and mods to get rid of the air conditioning fan noise from the next building over.

I ran into something similar with my experiments recording in my garage. That worked remarkably well—cardboard boxes make terrific soundproofing—except for the Metrobus and occasional noisy car. Turns out Metro publishes bus schedules…and record at night.

Koz

Did you try the kitchen table sound studio?

Koz

I don’t remember where I posted this, but the forum limit for posting sound files is 2MB, not 4MB. I went back and changed the published forum sound test instructions.

Koz

Sort of. I’m surrounded by heavy drapes. It would be very difficult to reduce that A/C noise substantially. And I have to remove anything I put up by morning. I guess I could try to disable the other building’s A/C, but I don’t think recording from a jail cell would be much quieter. For now I guess I’ll record when their A/C is off.

I played around a little bit with Adobe Podcast. Their “Studio (beta)” didn’t help at all, and actually raised the noise level. Their “Enhance Speech” was somewhat effective in matching the noise levels with and without A/C, but I’m not comfortable not knowing what they’re doing to the waveform. So Adobe Podcast is a bust for me. And I’m also not sure I’d want to upload chapters of my audiobook.

I don’t know of a goal-oriented Noise Reduction. “Do whatever you need to do to give me a reduction of 26dB.”

That’s a very close design goal of “Make this pass ACX-Check Noise.”

That was a similar design goal for Audiobook Mastering. “Make that pass ACX RMS (Loudness) and ACX Peak. Call me when you’re done.”

That’s works remarkably well, but you can’t do that with noise. You still have to record in a quiet, echo-free room.

Koz

Right. Though what I was looking for was something like, “Do whatever you need to do to give me a reduction to -70dB.”

btw, I tried the CrumplePop plugins; no joy on the with/without A/C noise.

btw, I tried Auphonic; no luck on the with/without A/C noise.

I think I’m close now. I’m separating out everything between words and hitting that with a Filter Curve EQ. It’s very fast and easy. And I plan to append all of my chapters and process them together, then separate the chapters, so that everything sounds the same.

Here is my process:

I started the test by appending the three conditions I faced:

  1. With my building’s booster fans running (which I have since worked around, but I wanted to see how well this was handled)
  2. Boosters off, but the outside A/C unit for the adjacent building running
  3. Boosters off, outside A/C unit off – so just my room noise

You can easily see the different spectral content of the three noise profiles.

Applied Noise Gate with threshold -39dB with level reduction of -100dB to get just the speaking. Then inverted this and mixed it with the original waveform, to get just the parts between words.

Then apply a Filter Curve EQ to squash the booster and A/C noise from 140Hz to 860Hz by -96dB, and soften my breaths from 860Hz to 4700Hz by -18dB.

I see the stopband ripples but haven’t noticed any artifacts yet.

I put this into a macro.

FilterCurve:f0=“120” f1=“160” f2=“840” f3=“880” f4=“4680” f5=“4720” FilterLength=“8191” InterpolateLin=“0” InterpolationMethod=“B-spline” v0=“0” v1=“-96” v2=“-96” v3=“-18” v4=“-18” v5=“-96”

I mix this with the original gated waveform (with just the speaking), then get the Noise Profile and apply my macro with NR(6,6,6).

SelectAll:
ZoomSel:
NoiseReduction:Use_Preset=“”
FilterCurve:Use_Preset=“Factory Preset:Low rolloff for speech”
LoudnessNormalization:DualMono=“1” LUFSLevel=“-23” NormalizeTo=“1” RMSLevel=“-20” StereoIndependent=“0”
Low-passFilter:FREQUENCY=“6300” ROLLOFF=“dB24”
Limiter:GAIN-L=“0” GAIN-R=“0” HOLD=“10” MAKEUP=“No” THRESH=“-3.5” TYPE=“SoftLimit”
AcxCheck:Use_Preset=“”

ACX Check

Questions/Thoughts:

A. I realize this spectral gating process leaves the different-level noise profiles “beneath” the spoken words (at least above 140Hz), but I haven’t been able to notice any differences.

B. I wonder if ACX will reject based on almost no noise content other than breaths above 140Hz.

C. Can I set the Noise Reduction parameters in the macro? I’ve read the Github entry and the Auto Profile in Noise Reduction? topic. In the latter, Steve says,

“The main consideration regarding Noise Reduction in Macros, is that there are no settings available.”

I don’t mind selecting the Noise Profile before running the macro, but I’d like to be able to set the parameters (Noise reduction (dB), Sensitivity, and Frequency smoothing (bands); e.g. 8,6,6) in the macro. The Github entry and this topic make it sound like some people are able to set these parameters within a macro–though I may be misinterpreting their discussions.

I’d appreciate all thoughts and comments. Thank you.

Zash

We should not lose the requirement of No Distractions. Do you get pulsing background noise or noisy words? ACX is pretty good about picking that kind of thing out of a submission.

By far the worst thing ACX did in the last bunch of years was eliminate the short evaluation. You won’t know if you succeeded in your noise dance until you submit the book. The forum can offer an opinion, but there was nothing like the Actual ACX People telling you what you did wrong.

Also I don’t remember if I mentioned it in this post, but I seem to have gotten an apparent noise reduction with some simple sound processing. I would swear noise reduction was working perfectly, except it wasn’t.

Hi Koz,

I’m not sure what you are saying here:

I’m not hearing any artifacts. Here is the original appended raw wav file, split in two for upload. Again, the first reading is with booster fans; the second with outside A/C unit; the third with just room noise.

Original Raw Part 1 of 2

Original Raw Part 2 of 2

And here is the processed file.

Spectral Gated Part 1 of 2

Spectral Gated Part 2 of 2

This is produced per my discussion in post #37 above.

Zash