pyroomacoustics.utilities module¶
- pyroomacoustics.utilities.all_combinations(lst1, lst2)¶
Return all combinations between two arrays.
- pyroomacoustics.utilities.angle_function(s1, v2)¶
Compute azimuth and colatitude angles in radians for a given set of points s1 and a singular point v2.
- Parameters
s1 (numpy array) – 3×N for a set of N 3-D points, 2×N for a set of N 2-D points.
v2 (numpy array) – 3×1 for a 3-D point, 2×1 for a 2-D point.
- Returns
2×N numpy array with azimuth and colatitude angles in radians.
- Return type
numpy array
- pyroomacoustics.utilities.autocorr(x, p, biased=True, method='numpy')¶
Compute the autocorrelation for real signal x up to lag p.
- Parameters
x (numpy array) – Real signal in time domain.
p (int) – Amount of lag. When solving for LPC coefficient, this is typically the LPC order.
biased (bool) – Whether to return biased autocorrelation (default) or unbiased. As there are fewer samples for larger lags, the biased estimate tends to have better statistical stability under noise.
method (‘numpy, ‘fft’, ‘time’, pra) – Method for computing the autocorrelation: in the frequency domain with fft or pra (np.fft.rfft is used so only real signals are supported), in the time domain with time, or with numpy’s built-in function np.correlate (default). For p < log2(len(x)), the time domain approach may be more efficient.
- Returns
Autocorrelation for x up to lag p.
- Return type
numpy array
- pyroomacoustics.utilities.clip(signal, high, low)¶
Clip a signal from above at high and from below at low.
- pyroomacoustics.utilities.compare_plot(signal1, signal2, Fs, fft_size=512, norm=False, equal=False, title1=None, title2=None)¶
- pyroomacoustics.utilities.convmtx(x, n)¶
Create a convolution matrix H for the vector x of size len(x) times n. Then, the result of np.dot(H,v) where v is a vector of length n is the same as np.convolve(x, v).
- pyroomacoustics.utilities.create_noisy_signal(signal_fp, snr, noise_fp=None, offset=None)¶
Create a noisy signal of a specified SNR. :param signal_fp: File path to clean input. :type signal_fp: string :param snr: SNR in dB. :type snr: float :param noise_fp: File path to noise. Default is to use randomly generated white noise. :type noise_fp: string :param offset: Offset in seconds before starting the signal. :type offset: float
- Returns
numpy array – Noisy signal with specified SNR, between [-1,1] and zero mean.
numpy array – Clean signal, untouched from WAV file.
numpy array – Added noise such that specified SNR is met.
int – Sampling rate in Hz.
- pyroomacoustics.utilities.dB(signal, power=False)¶
- pyroomacoustics.utilities.fractional_delay(t0)¶
Creates a fractional delay filter using a windowed sinc function. The length of the filter is fixed by the module wide constant frac_delay_length (default 81).
- Parameters
t0 (float) – The delay in fraction of sample. Typically between -1 and 1.
- Returns
A fractional delay filter with specified delay.
- Return type
numpy array
- pyroomacoustics.utilities.fractional_delay_filter_bank(delays)¶
Creates a fractional delay filter bank of windowed sinc filters
- Parameters
delays (1d narray) – The delays corresponding to each filter in fractional samples
- Returns
An ndarray where the ith row contains the fractional delay filter corresponding to the ith delay. The number of columns of the matrix is proportional to the maximum delay.
- Return type
numpy array
- pyroomacoustics.utilities.goertzel(x, k)¶
Goertzel algorithm to compute DFT coefficients
- pyroomacoustics.utilities.highpass(signal, Fs, fc=None, plot=False)¶
Filter out the really low frequencies, default is below 50Hz
- pyroomacoustics.utilities.levinson(r, b)¶
Solve a system of the form Rx=b where R is hermitian toeplitz matrix and b is any vector using the generalized Levinson recursion as described in M.H. Hayes, Statistical Signal Processing and Modelling, p. 268.
- Parameters
r – First column of R, toeplitz hermitian matrix.
b – The right-hand argument. If b is a matrix, the system is solved for every column vector in b.
- Returns
The solution of the linear system Rx = b.
- Return type
numpy array
- pyroomacoustics.utilities.low_pass_dirac(t0, alpha, Fs, N)¶
Creates a vector containing a lowpass Dirac of duration T sampled at Fs with delay t0 and attenuation alpha.
If t0 and alpha are 2D column vectors of the same size, then the function returns a matrix with each line corresponding to pair of t0/alpha values.
- pyroomacoustics.utilities.lpc(x, p, biased=True)¶
Compute p LPC coefficients for a speech segment x.
- Parameters
x (numpy array) – Real signal in time domain.
p (int) – Amount of lag. When solving for LPC coefficient, this is typically the LPC order.
biased (bool) – Whether to use biased autocorrelation (default) or unbiased. As there are fewer samples for larger lags, the biased estimate tends to have better statistical stability under noise.
- Returns
p LPC coefficients.
- Return type
numpy array
- pyroomacoustics.utilities.normalize(signal, bits=None)¶
normalize to be in a given range. The default is to normalize the maximum amplitude to be one. An optional argument allows to normalize the signal to be within the range of a given signed integer representation of bits.
- pyroomacoustics.utilities.normalize_pwr(sig1, sig2)¶
Normalize sig1 to have the same power as sig2.
- pyroomacoustics.utilities.prony(x, p, q)¶
Prony’s Method from Monson H. Hayes’ Statistical Signal Processing, p. 154
- Parameters
x – signal to model
p – order of denominator
q – order of numerator
- Returns
a – numerator coefficients
b – denominator coefficients
err (the squared error of approximation)
- pyroomacoustics.utilities.real_spectrum(signal, axis=-1, **kwargs)¶
- pyroomacoustics.utilities.requires_matplotlib(func)¶
- pyroomacoustics.utilities.rms(data)¶
Compute root mean square of input.
- Parameters
data (numpy array) – Real signal in time domain.
- Returns
Root mean square.
- Return type
float
- pyroomacoustics.utilities.shanks(x, p, q)¶
Shank’s Method from Monson H. Hayes’ Statistical Signal Processing, p. 154
- Parameters
x – signal to model
p – order of denominator
q – order of numerator
- Returns
a – numerator coefficients
b – denominator coefficients
err – the squared error of approximation
- pyroomacoustics.utilities.spectrum(signal, Fs, N)¶
- pyroomacoustics.utilities.time_dB(signal, Fs, bits=16)¶
Compute the signed dB amplitude of the oscillating signal normalized wrt the number of bits used for the signal.
- pyroomacoustics.utilities.to_16b(signal)¶
converts float 32 bit signal (-1 to 1) to a signed 16 bits representation No clipping in performed, you are responsible to ensure signal is within the correct interval.
- pyroomacoustics.utilities.to_float32(data)¶
Cast data (typically from WAV) to float32.
- Parameters
data (numpy array) – Real signal in time domain, typically obtained from WAV file.
- Returns
data as float32.
- Return type
numpy array