コード例 #1
0
    def _prepare_example(self, example):
        """Creates an example (anchor-positive) for instance discrimination."""
        x = tf.math.l2_normalize(example["audio"], epsilon=1e-9)

        waveform_a = data.extract_window(x)
        mels_a = data.extract_log_mel_spectrogram(waveform_a)
        frames_anchors = mels_a[Ellipsis, tf.newaxis]

        waveform_p = data.extract_window(x)
        waveform_p = waveform_p + (self._noise *
                                   tf.random.normal(tf.shape(waveform_p)))
        mels_p = data.extract_log_mel_spectrogram(waveform_p)
        frames_positives = mels_p[Ellipsis, tf.newaxis]

        return frames_anchors, frames_positives
コード例 #2
0
    def _prepare_standard_example(self, example, is_training):
        """Creates an example for supervised training."""
        x = example["audio"]
        if is_training:
            x = data.extract_window(x)
            x = tf.math.l2_normalize(x, epsilon=1e-9)
        else:
            x = tf.signal.frame(x,
                                frame_length=self._n_frames * 160,
                                frame_step=self._n_frames * 160,
                                pad_end=True)
            x = tf.math.l2_normalize(x, axis=-1, epsilon=1e-9)

        x = data.extract_log_mel_spectrogram(x)
        x = x[Ellipsis, tf.newaxis]
        y = example["label"]
        return x, y