I was suggested to cross post this question of mine from Stack Overflow. Hopefully my question is within the bounds of this question board!

I am searching for a method of determining the similarity between an audio segment and a human voice, which is expressed numerically.

I've searched quite a bit, but what I've found so far (detailed below) doesn't really fit what I need:

  • One method is to use speech recognition software to obtain words from an audio segment. However, this method is unable to come up with how "similar" audio is to human speech; it can often tell whether or not there are words in the audio, but if there are no definite words, it can't tell close the audio is to having such words.
    Examples: CMU Sphinx, Dragonfly, SHoUT

  • The more promising method is referred to as Voice Activity Detection (VAD). However, this tends to have the same problems: the algorithms / programs using VAD tend to just return whether or not the activity threshold has been reached, and no "similarity" value before or after such threshold. Alternatively, many just look for volume, not similarity to human speech.
    Examples: Speex, Listener, FreeSWITCH

Such a method seems extremely complex, so I'm not looking for an algorithm I can implement myself--I'm searching for some type of free software. Any ideas?

  • 1
    By "similarity between an audio segment and a human voice", I presume you mean a probability that the given segment came from a human vocal tract and not a synthesizer? With sufficient input, something could probably be trained to generate probabilities to a reasonable criterion, though real accuracy is expensive.
    – jlawler
    Commented Jun 16, 2012 at 2:03
  • I will actually be using such a theoretical similarity program to digitally create human-like sound from scratch, so I already know that the sound has been synthesized. I just wish to see how close the created sound is to its ultimate goal of sounding human. Commented Jun 16, 2012 at 2:10
  • 1
    Pertaining to "trained," I assume you're referring to something along the lines of a neural network: en.wikipedia.org/wiki/Artificial_neural_network#Learning. It's definitely an option I have considered, but training would be a great deal of work and probably more than I would wish for, so I'm looking for a solution that has already been created. Commented Jun 16, 2012 at 2:10
  • When you say 'similar to human speech', do you mean any language, or similar to one language in particular. Either way, the best instrument for this (presently) is a human being. Commented Jun 16, 2012 at 3:01
  • Primarily English, but because the sounds of English are so drastically different from, lets say a piano, but very close to other languages, other languages would have high similarity values compared to other sounds; therefore, I don't think it really matters too much what language I'm matching audio against. Commented Jun 16, 2012 at 3:05


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.