Noise Reduction Automation Suggestions

Help for Audacity on macOS.
Forum rules
ImageThis forum is for Audacity on macOS 10.4 and later.
Please state which version of macOS you are using,
and the exact three-section version number of Audacity from "Audacity menu > About Audacity".


Audacity 1.2.x and 1.3.x are obsolete and no longer supported. If you still have those versions, please upgrade at https://www.audacityteam.org/download/.
The old forums for those versions are now closed, but you can still read the archives of the 1.2.x and 1.3.x forums.
Post Reply
RobGrafrath
Posts: 1
Joined: Sun Aug 09, 2020 6:43 pm
Operating System: macOS 10.15 Catalina or later

Noise Reduction Automation Suggestions

Post by RobGrafrath » Sun Aug 09, 2020 8:32 pm

My platform: macOS Catalina v10.15.5, Audacity v2.4.2

I'm new to Audacity (and sound engineering in general) but have been educating myself on best practices, specifically for the purposes of audiobook creation. As a programmer, I automatically gravitated towards the ability to apply a sequence of macros to a raw recording, to help streamline the standard steps I will be taking before diving into the detailed manual cleanup of a track. This wiki page was particularly helpful: https://wiki.audacityteam.org/wiki/Audiobook_Mastering.

Frustratingly, I cannot apply a macro to Noise Reduction, though with a few minor enhancements to Audacity or a new plug-in, I think this would be possible. I have read the forums and found people requesting "one-click" solutions. I understand that the complication is that Noise Reduction needs to get a noise profile from a specific section of the sample (room noise) before it can apply that saved profile to the rest of the sample. I believe this could be accomplished via a macro, if a minor change were made to the functionality of the Noise Reduction effect. I have two suggestions which would solve this problem:

Suggestion #1: Take the code behind the Noise Reduction "Get Noise Profile" button and copy it into new effect which just performs that step.
That would allow the user to automate noise reduction via a macro. The user would first manually select the room noise sample section, then run a Noise Reduction macro, consisting of the steps:
1) Get Noise Profile: the new stand-alone effect I'm suggesting
2) Select All
3) Noise Reduction. As a side note, it's frustrating that the only macro option for noise reduction is Use Preset "Factory Defaults", which is a separate issue that warrants improvement. The user should be able to create and save presets, or select from predefined presets (i.e. Noise Reduction of the Beast), and use a preset in their macro.

I have found that I actually can use a macro to do the aforementioned steps, since running the Noise Reduction filter in a macro will first Get Noise Profile if one is not already in memory, and then running it again will apply the noise reduction using my most recent settings. That only works the first time it is performed within an Audacity instance, due to the noise profile being stuck in memory; every rerun of Noise Reduction only performs step 2, meaning I have to close and reopen Audacity between every run of my standard macro. That leads me to the second idea.

Suggestion #2: Create a new "Forget Noise Profile" effect plug-in.
If you don't want to touch the code behind the built-in Noise Reduction effect then perhaps a new plug-in could be created which clears the previously stored noise profile from memory. That would allow the user to run a macro which uses the existing Noise Reduction effect twice; once to get the noise profile, the second time to apply it. As in the first use case, the user would first select a small section of room noise, then run a macro with these steps:
1) Forget Noise Profile: the new plug-in I'm suggesting, which would clear the noise profile from memory (if there is one in memory, otherwise it would do nothing).
2) Noise Reduction: running this when there is no stored noise profile automatically performs the Get Noise Profile action using the current selection.
3) Select All
4) Noise Reduction: running this when there is a stored stored noise profile automatically applies to profile to the selection using the most recent settings.

As a final thought, ACX standards require 0.5-1 seconds of silence at the beginning of a recording and 1-5 seconds at the end. Anyone who follows that standard practice could fully automate the Noise Reduction process by adding a Select Time step to the beginning of the Noise Reduction section of their macro chain with the options Start Time 1, End Time 2, Relative To Project End. I'd avoid starting at 0 (the absolute end) because you could pick up your bodily movement as you hit the stop button.

kozikowski
Forum Staff
Posts: 68881
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: Noise Reduction Automation Suggestions

Post by kozikowski » Sun Aug 09, 2020 9:32 pm

your bodily movement as you hit the stop button.
I had not thought through completely automating the recording or mastering process that far, mostly because that's not likely to work. I do admire your effort to get around that "editing takes five times the length of the show" thing.

It's perfectly possible to record with a well-behaved microphone in a quiet, echo-free room and not need Noise Reduction. I'm not guessing. That's how I submitted my ACX Audition which passed technical testing. But you're right. Noise Reduction is tough to automate.

You are going to be stopping, starting, and editing anyway because nobody can read multiple chapters with no mistakes. That's over and above suppressing gasping and other mouth noises. Yes, there is Audacity DeEsser, DeClicker, and Noise Gate. There is also an ACX failure called "Overprocessing" which you can get if you pile too many fixes on top of your reading.

The ACX metaphor is listening to somebody tell you a fascinating story over cups of tea—not over a smartphone.

You can semi-automate the Room Tone sequences. There is a technique where you record and save matching room tone in a separate file and jack it in to the show where needed. The trick is matching. If you do it at the end of production, it has to be mastered. If you do it at the beginning, it must be raw. If you don't do that, then the bookend Room Tones will not match the spaces between your spoken words.


Do you have your book all picked out? Are you the author? Is your book available on Amazon in eBook or Paper? That's one of the newer ACX requirements.

ACX no longer offers the Audition Service where they will evaluate your work and offer suggestions. But you can post a short test here.

Read down the blue links. They're very short.

https://www.kozco.com/tech/audacity/Tes ... _Clip.html

No effects. Don't do anything to it.

Koz

kozikowski
Forum Staff
Posts: 68881
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: Noise Reduction Automation Suggestions

Post by kozikowski » Mon Aug 10, 2020 12:14 am

It's a total new user error to read the whole book and only then stop to find if it's OK. Home readers are doing the jobs of Actor, Recording Engineer, and Producer. You can't leave any out.

Koz

billw58
Forum Staff
Posts: 5565
Joined: Wed Aug 12, 2009 2:10 am
Operating System: macOS 10.15 Catalina or later

Re: Noise Reduction Automation Suggestions

Post by billw58 » Mon Aug 10, 2020 7:56 pm

Thanks for your suggestions. I'll pass them on to the development team.
-- Bill

kozikowski
Forum Staff
Posts: 68881
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: Noise Reduction Automation Suggestions

Post by kozikowski » Tue Aug 11, 2020 1:38 am

You've been automating the existing process. I wonder if you didn't do it that way.

Noise does have a recognizable personality. For the most part, it's the only sound that stays constant for the whole presentation. You can test for that. That's how cellphones do it, only their restriction is needing to do it very, very quickly. That gives you noise processing that hates music, but this isn't a cellphone. This is a three minute song or spoken word with hiss, hum or buzz in the background. A lot easier than having to do it while a watchdog process is standing there with a stopwatch.

You can even see this on timeline Spectrogram view, so some of the analysis is already done. That continuous left-to-right band at 120Hz? That's power hum (in the US). Get rid of it.

I have a very old program that used to do completely automated noise reduction. This was back when we didn't have microphones and had to use rocks.

There is a very old Noise Reduction Request that I think settled way down at the bottom of the basket.

Save/Load Noise Profile.

You can simulate that now by carefully saving a chunk of noise as a high quality sound file and repeatedly using it as Profile. But what would happen if you didn't have to go through all that?

Macro command of noise reduction might reduce to Noise Reduction: 14, 6, 6, 6. Load profile number 14 and apply Noise Reduction of the Beast.

And to extend that. Noise Reduction: Auto

Koz

waxcylinder
Forum Staff
Posts: 14571
Joined: Tue Jul 31, 2007 11:03 am
Operating System: Windows 10

Re: Noise Reduction Automation Suggestions

Post by waxcylinder » Thu Aug 13, 2020 5:34 pm

RobGrafrath wrote:
Sun Aug 09, 2020 8:32 pm
Suggestion #1: Take the code behind the Noise Reduction "Get Noise Profile" button and copy it into new effect which just performs that step.
That would allow the user to automate noise reduction via a macro. The user would first manually select the room noise sample section, then run a Noise Reduction macro, consisting of the steps:
1) Get Noise Profile: the new stand-alone effect I'm suggesting
2) Select All
3) Noise Reduction. As a side note, it's frustrating that the only macro option for noise reduction is Use Preset "Factory Defaults", which is a separate issue that warrants improvement. The user should be able to create and save presets, or select from predefined presets (i.e. Noise Reduction of the Beast), and use a preset in their macro.
I quite like this suggestion. 8-)

But I think what you have here is a bug. It seems that you can set the 6,6,6 "mark of the beast" with but when you Edit parameters - but when you go back to the Macro it shows "Factory Defaults" as the setting. But if you re-edit the parameters they show as 6,6,6.

So I think I'll be logging this as a bug. Anybody disagree ?

Peter
________________________________________FOR INSTANT HELP: (Click on Link below)
* * * * * FAQ * * * * * Tutorials * * * * * Audacity Manual * * * * *

steve
Site Admin
Posts: 80659
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Noise Reduction Automation Suggestions

Post by steve » Thu Aug 13, 2020 7:23 pm

waxcylinder wrote:
Thu Aug 13, 2020 5:34 pm
So I think I'll be logging this as a bug. Anybody disagree ?
It's not really a "bug", but I think it could be logged on bugzilla as an anomaly.

Quite some time ago, effects were updated to a new, consistent base class which supports presets and some other features that were previously missing. Unfortunately, the developer that was working on Noise Reduction at the time moved on to other things, leaving this one effect (and associated clutter) as the one effect left over from the "old style" effects.

The "bug" (enhancement) is to update the effect to the same "new style" as all the other built-in effects.
Better still would be to update to a "real-time-preview" effect.


I also like the idea to allow the user to automate noise reduction via a macro.
If we were to have a stand-alone "Get Noise Profile" effect, then I see no reason why it needs to be limited to only one noise profile. It could support multiple profiles that could be stored on disk for future use. The "Noise Removal" effect could then be set to use any of the existing profiles, or in the absence of any profiles it could use an "auto" option that could either attempt to automatically extract a suitable noise profile, or use a generic profile.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

kozikowski
Forum Staff
Posts: 68881
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: Noise Reduction Automation Suggestions

Post by kozikowski » Thu Aug 13, 2020 7:55 pm

I also like the idea to allow the user to automate noise reduction via a macro.
If we were to have a stand-alone "Get Noise Profile" effect, then I see no reason why it needs to be limited to only one noise profile. It could support multiple profiles that could be stored on disk for future use. The "Noise Removal" effect could then be set to use any of the existing profiles, or in the absence of any profiles it could use an "auto" option that could either attempt to automatically extract a suitable noise profile, or use a generic profile.
What a terrific idea.

Koz

cfaber
Posts: 1
Joined: Fri Sep 11, 2020 1:59 pm
Operating System: Linux *buntu

Re: Noise Reduction Automation Suggestions

Post by cfaber » Fri Sep 11, 2020 2:01 pm

This is a great idea, it would also be amazing if this new plugin could be configured and accessed via scripting. There's a few podcasts I listen to which I would _love_ to use noise reduction trained against the bumper music in an automated / scripted fashion

Post Reply