...Sounds like DSP to me!
I know there's an FFT library, but I've never done any DSP.
What you are trying to do is not that easy. For example, every time the dog barks you get a slightly different sound at a different volume.
It can probably be done... There is voice recognition and speech recognition. But, I don't know if it can be done on an Arduino. And there will be "false alarms" (false positives) and "misses" (false negatives). So, it becomes a matter of trying to minimize the errors, and balancing (or biasing) the remaining errors to build a useful system.