automate creating labels?

Version 2.0.3 Windows 7:

Can I design settings for when to begin and end a label, and have the program automatically apply those settings to an entire audio file?

Do you mean something similar to this? http://manual.audacityteam.org/o/man/regular_interval_labels.html

Similar to the regular interval labels, but using an amplitude cut-off rather than a consistent time (ie; put a marker when amplitude goes above x decibels for at least x miliseconds)

Copied from this topic: https://forum.audacityteam.org/t/export-labels-from-multiple-files-to-one-text/31436/1

I don’t think that you can accomplish the task with Audacity’s built in functions, so it sounds like you will need a custom plug-in to provide this functionality.
I think that most of what you want could be achieved by writing a “Nyquist Plug-in”. If you are interested in writing a plug-in to do this then I can probably help you.
“Nyquist” is a “scripting language” that allows you to create your own plug-in effects. There is an introduction to Nyquist plug-ins here: http://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference

So, similar to “Sound Finder”? http://manual.audacityteam.org/o/man/silence_finder_and_sound_finder.html#sound

Who is “we”?

Could you describe this some more. Is this something that can’t currently do and want to do?

Do you actually need the labels, or do you just want the text file?

Thank you, yes, soundfinder seems to be what I was looking for.

I’m a psychology graduate student, and this is for a verbal memory project my adviser and I are trying to tackle.

The speech samples come from over a 100 different people, so some people are likely to have spoken with higher or lower volume than others. Is it possible to compare the volume levels of all of (or many of) the samples, then standardize them so they all have the same minimum/maximum volumes? Alternatively, can the criteria for soundfinder use a %change rather than a specific level? (ie; mark end of sound as 20% of maximum volume)

No, the labels themselves aren’t important, just the timestamps for the beginning and ending of sounds. What would be the simplest possible way to export a text file of the timestamps?

Thank you for all your help. My advisor and I aren’t familiar with audio science, so its been a struggle to figure this out.

The “Normalize” effect will amplify the selected audio so that the biggest peak becomes a specified level.
More about the Normalize effect here: http://manual.audacityteam.org/o/man/normalize.html

If you have a lot of separate files, you could “batch process” the files so that they all have the maximum (peak) level by using a “Chain”.
More about batch processing and Chains here: http://manual.audacityteam.org/o/man/chains_for_batch_processing_and_effects_automation.html

That then leaves modifying Sound Finder so that it outputs a text file rather than labels.
The practicality of doing this depend in part on how many files you need to process.
Also, can you give some indication of the type of text file that you would like to end up with?

Thank you, if a plug-in could be written to standardize the volume across all the files, then add markers according to a specific volume criteria, that would make this task much easier. I only have a small bit of experience with scripting to create data files in an SQL database, given that, do you think it would be possible to make this plug-in in less than 10-15 hours or so?

We have roughly 500 audio files, so unless modifying Sound Finder to output text files would take more time than exporting each file’s labels, I would like to be able to do that.

The timepoints will be used as variables in statistical analyses using IBM’s program SPSS, which can read data from .txt, .dat, .csv, as well as Excel and SAS. So any format that will import into SPSS will fit our needs

“volume” is not the same as “level”.
Modifying the maximum level is relatively easy to do. Modifying the “loudness” is very much harder. “Loudness” is subjective and depends on many factors including frequency, duration, the listening environment and the person that is listening. See here for more about “loudness” http://en.wikipedia.org/wiki/Loudness

If you need equal “loudness” then that is not really a beginners project.

“Amplitude” is how “big” the signal is vertically in the track.
Let’s say that all of your audio files are mono and less than 1 million samples duration and you want to make the maximum peak level 0.5 on the vertical scale. To do this the basic piece of code is:

(setq max-amp (peak s 1000000))
(mult s (/ 0.5 max-amp))

You can try this code on a selected track by copy and pasting it into the “Nyquist Prompt” effect (in the “Effect” menu).

There is an introduction to making Nyquist plug-ins here: http://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference

Thank you, I meant “level” rather than “loudness”, so I believe the sample code you gave is what I needed.

Would it be possible to get the minimum, maximum, mean and standard deviation of level for a given sample as a text file?
I would like to use the standard deviation of a sample’s level as the criteria for adding a label; would it be possible to do this with a relatively simple plug-in command?

The minimum is always zero. Every time there is a zero crossing point the amplitude is zero. So how are you going to measure “minimum” in a meaningful way?