

Making it too small causes the filter to be inaccurate and 'leak' frequencies. Making it equal to the sample rate makes the filter's effect range ☑ second. The length shouldn't be too long since the filter effect should be local in time. *) How you choose the length N, is by balancing two factors. (you may want to prepend and append N samples of silence to your signal before filtering, to make sure nothing gets lost) I hope you have a library function for this. How you actually filter any lengthy signal is by convolving the signal with the impulse response to obtain the equalized signal. This ensures that the next step doesn't change the overall volume of the signal. Be sure to scale/divide the values so silence is 0 and the max-volume value is 1 (the actual values will be very small numbers). Now filter this entire waveform by your equalizer, and the result is your impulse response (at very low volume).Įxport this impulse response and somehow import it in python as an array of float values. In Audacity, you start by creating a silent mono 32-bit per sample waveform of length N samples (say 100). You have to choose a length parameter N here, and I'll give you a heuristic for this later on*. You create an impulse response by first filtering a Dirac delta function by the filter you wish to apply to your audio. I suspect, based on your requirements, that you need an 'impulse response' instead (also called a Filter Kernel in the context of FIR filters, or a Convolution Kernel). I thought I was familiar with signal processing, but I haven't heard of a transfer function.

I would greatly appreciate any help you could provide me, thanks! Furthermore, as it is the first time I am working with python I have very limited knowledge on how to implement this process in a python script. However I have no clue how I would go about converting the curve into a Transfer-function.

If my limited understanding of signal processing is correct I would need to convert the continous curve into a discrete transfer function and then apply this transfer function to the input signal. I constructed the required filter curve eq in audacity: The needed filter curve constructed in Audacity which would not fit my needs as I have a specific eq manipulation in mind. Researching the topic I found some ways to process a signal via transfer functions in python, however I only found functions like a low-pass filter etc. I am trying to write a script where I would feed a voice recording into it, internally apply an eq and have the modified signal returned.
