My experience is that Aqua voice does a good job of this with custom dictionary and replacements.