Changing the language model at runtime will update what language model is used by the recognizer because the lm/dic parameters are reloaded when the ~start service is called.
A specific audio source can be connected to by specifying the name of the device in the launch file. This is useful when you want to have multiple audio sources each processed by independent recognizers.