Adjusting signal-to-noise ratio for a speech in noise experi

Hi Audacity community!

I am a PhD student trying to adjust some speech stimuli for an experiment using Windows 10.

I am using a speech in noise task called the BKB sentence test. At this stage, audacity had enabled me to slice a large audio file into very precise trials so that I can include them in a PsychoPy experiment (open sourced program for neuroscience experiments) and align them with an eye tracker.

I now need to adjust the two channels of each trial to precise signal to noise ratios (SNRs) before inclusion in my experiment. I want to have SNRs at 4 levels: −9 dB, −3 dB, +3 dB, and 0dB.

The stimuli itself has some information regarding this and says "To present the material in a given signal-to-noise ratio (SNR), you will need to consider the leq/ref figures shown in the list of contents or use the following formula…

Dial settingspeech - dial settingnoise = SNR - leq/refspeech + leq/refnoise "

The leq/ref values for the speech and the noise channels are set at 0dB according to the list of contents.

So I assume that I just need to set the dB levels on the two channels to achieve the desired SNR, does this sound accurate and will it produce a precise SNR? Is there a way to automatically adjust the SNR by entering the desired outcome somewhere? Has anyone done this before?

Thanks in advance!

To have the same S/N ratio at all frequencies you’ll need Grey noise, ( Pink noise is close), rather than white noise.

Sorry, should have been more clear. The noise is “multi-talker babble” to simulate real-world background noise.

Is there a way to automatically adjust the SNR by entering the desired outcome somewhere?

This may be harder than you think. Most of the volume control tools in Audacity work on peak values. For example, if you Effect > Amplify and leave the settings alone, it will change the waveform peak values to 0dB. Loudness, RMS or any other value is undefined.

If I had to put two different tracks in one show, I’d just import two different tracks. Audacity will install them one above the other and try to play them at the same time. From there, you can select one track or the other for modification. If you do nothing else but export a sound file, Audacity will mix them together into one show.
Screen Shot 2018-01-17 at 21.28.50.png
I know you can measure this backwards. Perform some change on the timeline and use Analyze > Contrast: Measure Selection (write it down) > Close. That will tell you the RMS/Loudness value of the work.

You might also use RMS Normalize. That’s from the Audiobook tools. The audiobook people require submissions to conform to strict technical guidelines.



If you’re truly in the Sound Pressure Level world, you will need an actual SPL meter. There is no good way to measure SPL with Audacity and whatever Audacity generates will depend on the amplifier and speaker system to convert to moving air.


Thanks very much for your reply, Koz.

What about just using the Gain Slider on the left of the display… That seems to adjust the signal volume and displays a value in dB (+ or -). Is this not an accurate measure of SNR?

Based on your answer, it seems like it may not be as precise as it could be but perhaps it will be okay for the purposes that I intend to use it for…

Thanks again :slight_smile:

Is this not an accurate measure of SNR?

It’s a relative measurement. The new work is 3dB lower or higher than the old (for example). From my reading of your post, there’s still no good way to tell from what.

Without that, nobody can replicate your results.