Вы можете получить то, что просите, добавив verb[0]+=(1.0-ratio)
после умножения.
Однако реверберация работает не так. Применение вашего соотношения сделает реверберации тише, но они будут длиться так же долго. В реальном мире «меньше реверберации» означает, что реверберации исчезнут гораздо быстрее.
Возможно, вы могли бы сделать что-то лучше звучащее так:
def addReverb(data, ir_data, ratio=1.0):
verb = np.abs(ir_data)
verb = np.multiply(verb, 1.0/np.max(verb)) # make sure the highest value is 1
verb = np.power(verb, 1.0/ratio) # a higher power makes the reverb die out more quickly
verbed_data = signal.convolve(data, verb, method='fft')
return verbed_data
Эта процедура немногоизворотливый. Он предполагает, что реверберация вызвана задержанным резким эхом, и применяет ваше отношение ко всем этим эхо.
Было бы действительно лучше вернуться к процессу, который сгенерировал ir_data
, и повторить его с другими параметрами.