Exemple #1
0
 def test_recursive_wpe(self):
     with self.test_session() as sess:
         T = 5000
         D = 2
         K = 1
         delay = 3
         Y = np.random.normal(size=(D, T)) \
             + 1j * np.random.normal(size=(D, T))
         Y = tf.convert_to_tensor(Y[None])
         power = tf.reduce_mean(tf.real(Y)**2 + tf.imag(Y)**2, axis=1)
         inv_power = tf.reciprocal(power)
         step_enhanced = tf_wpe.wpe_step(Y, inv_power, taps=K, delay=D)
         recursive_enhanced = tf_wpe.recursive_wpe(
             tf.transpose(Y, (2, 0, 1)),
             tf.transpose(power),
             1.,
             taps=K,
             delay=D,
             only_use_final_filters=True)
         recursive_enhanced = tf.transpose(recursive_enhanced, (1, 2, 0))
         recursive_enhanced, step_enhanced = sess.run(
             [recursive_enhanced, step_enhanced])
     np.testing.assert_allclose(recursive_enhanced[..., -200:],
                                step_enhanced[..., -200:],
                                atol=0.01,
                                rtol=0.2)
Exemple #2
0
 def test_batched_recursive_wpe(self):
     with self.test_session() as sess:
         Y_batch, inv_power_batch = self._get_batch_data()
         Y_batch = tf.transpose(Y_batch, (0, 3, 1, 2))
         inv_power_batch = tf.transpose(inv_power_batch, (0, 2, 1))
         enhanced_ref_1 = tf_wpe.recursive_wpe(Y_batch[0],
                                               inv_power_batch[0], 0.999)
         enhanced_ref_2 = tf_wpe.recursive_wpe(
             Y_batch[0, :self.T - 20], inv_power_batch[0, :self.T - 20],
             0.999)
         step_enhanced = tf_wpe.batched_recursive_wpe(
             Y_batch,
             inv_power_batch,
             0.999,
             num_frames=tf.convert_to_tensor([self.T, self.T - 20]))
         enhanced, ref1, ref2 = sess.run(
             [step_enhanced, enhanced_ref_1, enhanced_ref_2])
     np.testing.assert_allclose(enhanced[0], ref1)
     np.testing.assert_allclose(enhanced[1, :-20], ref2)