A person can recognise a large variety of sounds and fairly subtle differences in sound, even if they have only heard the sound once. Is it possible to recreate this with software, and how?
Consider these two problems:
(1) You have a recording of a dog bark and a cat meow (same volume). You then record another bark, how would you go about comparing the sounds in order to tell them apart?
(2) A person says "Yay" and "Tray". Similar, but we can all tell the difference.
I have already investigated the following:
(1) Fingerprinting: Does not work unless the sounds you are comparing are identical. So it does not work if a different dog barks. --- Dejavu Python Package and its GitHub repo
(2) Generic Voice recognition: Very inaccurate if the recorded word does not come with context. Also, dogs and cat's don't speak English. --- Python Speech recognition package, CMU speech recognition
(3) Phonetics/ phonemes: The breakup of a (speech) sound into constituent pieces. E.g: "word"
becomes w ə r d
. It returns rubbish if a sound is just taken out of context. --- Python pocketsphinx library and example code