Uma maneira de resolver isso é usando a compressão de faixa dinâmica (DRC).
O algoritmo DRC basicamente funciona da seguinte maneira: para sons de baixo decibel (dB), o sinal de saída corresponde ao sinal de entrada, mas depois de algum limite de dB, o som é artificialmente limitado. Os sons altos ainda soam "mais altos" do que outros sons, mas o seu dB máximo é bastante reduzido.
Aqui está uma figura simples ilustrando o conceito: Compressão de intervalo dinâmico ( credits )
Você pode aprender uma maneira de fazer isso com o Windows através da seguinte postagem no fórum: link
A idéia principal é usar um cabo "virtual" para direcionar o sinal de saída de áudio para um programa, fazer o programa aplicar o DRC ao sinal e então direcionar o sinal alterado para os alto-falantes.