For offline processing (but also to play in real time trough ffplay) ffmpeg can be used, you may apply dynamic compression to only center channel (usually dialogs) and left remain part not affected by dynamic compression, also you can use DynamicAudioNormalizer written by LoRd_MuldeR
https://www.ffmpeg.org/ffmpeg-filters.html#dynaudnorm .
Some examples how to manipulate audio channels in ffmpeg are here:
https://trac.ffmpeg.org/wiki/AudioChannelManipulation