Try a squirt bottle of water. When he barks say,"ssssst" and then squirt him, preferably in the face. Usually works if you keep at it. I hate the thought of shock collars. In my opinion they are inhumane. There are better ways. Contact your local vet or dog trainer if you need advice. Another trick is to make some little bags with gravel, beans, or rice in them, about 3-4 inches square, trimming corners. When the dog barks throw one at it. They don't really hurt but redirects the dog's attention. Then say "ssst" so he knows you don't want him to do that again. The trick is to stay at it until the dog gets the message that you will react EVERY time he does it.