I have a large number of audio files and I'd like to make lists of which do and don't have vocals. There is lots of information online on how to remove vocals, but I haven't been able to find anything about detecting them, though I suspect the same principles apply. It's okay to have a little bit of classification error. I don't know any commercial audio manipulation programs so the lower tech the answer is the better. Thanks!
I don't know of any tools to do this, but I can see a possible approach. Note that as @Brad said this is a difficult problem and not likely to be 100% susceptible of an automated solution.
This approach assumes stereo tracks. What vocals often have in common is that they occupy a particular frequency range and are well correlated between the two tracks (they tend to be centered).
Construct a filter environment that passes the range of (say) 800-3000 Hz. This reduces lower frequencies that may also be centered. Then test the correlation in the result. One Q & D way to do this is to invert one channel and sum them. The amount of energy loss is proportional to the degree of similarity.
While you may not catch all vocals, anything that shows little correlation probably doesn't have a vocal component. I'd be interested to know what results this yields. (-:
This isn't really possible, at least not with any accuracy. Think of all the cases where you have melodic sounds in similar ranges that can have similar timbre, such as synthesizer leads and even electric guitars depending on how they are used.
If I had a project like this where accuracy mattered, I would use Mechanical Turk. If your material is common, you might also be able to use the song metadata to look up lyrics online. If you find some, then you know there are vocals. If not, further analysis may be needed.