(self, speech, rir, power, fs)
| 1211 | return signal[None, :] if signal.ndim == 1 else signal.T |
| 1212 | |
| 1213 | def _get_early_signal(self, speech, rir, power, fs): |
| 1214 | predelay = 50 # milliseconds |
| 1215 | dt = np.argmax(rir, axis=1).min() |
| 1216 | et = dt + (predelay * fs) // 1000 |
| 1217 | rir_early = rir[:, :et] |
| 1218 | speech2 = scipy.signal.convolve(speech, rir_early, mode="full")[ |
| 1219 | :, : speech.shape[1] |
| 1220 | ] |
| 1221 | # Reverse mean power to the original power |
| 1222 | power2 = (speech2[detect_non_silence(speech2)] ** 2).mean() |
| 1223 | speech2 = np.sqrt(power / max(power2, 1e-10)) * speech2 |
| 1224 | return speech2 |
| 1225 | |
| 1226 | def _apply_to_all_signals(self, data_dict, func, num_spk): |
| 1227 | data_dict[self.speech_name] = func(data_dict[self.speech_name]) |
no test coverage detected