Yes - you can train to stop barking on command. The obedience class I just finished showed you how to. Their method was to first get the dog to bark on command. If there is something you know that your dog will bark at - get her to bark and say "SPEAK" when she does it - do this like 20-30 times over a week period of time.
The next week - say "SPEAK" and if they don't do it - then be prepared to do what ever it is that makes them bark (my dog will bark back if I bark at her - she will also bark at the bitter apple bottle :lol: ). When they bark give a treat - then after 2-3 times of "helping" them bark - give the "SPEAK" command and they should have put 2 and 2 together and they should know that this means to bark - treat ONLY when you have given the command and they do it. Once you have done this at least 30 times over a week and they are really reliable then move to the next step.
Say "SPEAK" - then right afterwards say "HUSH" (or QUIET- whatever you want to use). If you clicker train - click about 1 second after you say QUIET when they are not barking and then treat. Do this 20-30 times. NO LONGER TREAT FOR "SPEAK" - ONLY TREAT for "HUSH".
Once this is established - bring out what makes them bark again (ringing door bell, etc.) - say "QUIET" and when they comply - even for a second treat (click and treat if you have clicker trained). After 30 times, don't treat until they are quiet for 5 seconds, and then 10 seconds.... after about 6 weeks they will get really good.
This will take TIME - but I have seen it work over and over again with several dogs, you just have to be consistant and not move to the next step too fast.