sr=sr, feature_type='signal', title='Clean Speech', subprocess=True) ########################################################## # Filter the noisy speech # ^^^^^^^^^^^^^^^^^^^^^^^ ########################################################## # Wiener Filter # ~~~~~~~~~~~~~ ########################################################## # Let's filter with a Wiener filter: noisy_wf, sr = sp.filtersignal(noisy, sr=sr, filter_type='wiener') # default ########################################################## ipd.Audio(noisy_wf, rate=sr) ########################################################## sp.plotsound(noisy_wf, sr=sr, feature_type='signal', title='Noisy Speech: Wiener Filter', subprocess=True) ################################################################# # Wiener Filter with Postfilter # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def test_filtersignal_bandsubtraction_simple_doesitrun_uselibrosa_False(): signal, sr = sp.filtersignal(test_noisyfile, filter_type = 'bandsubtraction', use_scipy=True, remove_dc=False, control_vol = True) sig_expected, sr_expected = librosa.load(test_filtered_bandsub,sr=sr) assert np.allclose(signal, sig_expected) assert sr == sr_expected
sp.feats.plot_vad(y_snr05, sr=sr, beg_end_clipped=True, percent_overlap=percent_overlap, win_size_ms=win_size_ms) ###################################################### clipped_samples, vad_matrix = sp.feats.get_samples_clipped( y_snr05, sr=sr, percent_overlap=percent_overlap, win_size_ms=win_size_ms) sp.feats.plot(clipped_samples, sr=sr, feature_type='signal', subprocess=True) ipd.Audio(clipped_samples, rate=sr) ###################################################### # Improves with Wiener filter and padding? # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ y_snr05_wf, sr = sp.filtersignal(y_snr05, sr=sr, apply_postfilter=True) sp.feats.plot_vad(y_snr05_wf, sr=sr, beg_end_clipped=True, percent_overlap=percent_overlap, win_size_ms=win_size_ms, extend_window_ms=300) ###################################################### clipped_samples, vad_matrix = sp.feats.get_samples_clipped( y_snr05_wf, sr=sr, percent_overlap=percent_overlap, win_size_ms=win_size_ms, extend_window_ms=300)
def test_filtersignal_wiener_posfilter_simple_doesitrun_uselibrosa_False(): signal, sr = sp.filtersignal(test_noisyfile, filter_type = 'wiener_pf', use_scipy=True, remove_dc=False, control_vol = True) sig_expected, sr_expected = librosa.load(test_filtered_wiener_postfilter, sr=sr) assert np.allclose(signal, sig_expected) assert sr == sr_expected