Ejemplo n.º 1
0
    def _extractFeatures_(self):
        print('Extraction des features ...')
        mfcc_feat = []
        filter_feat = []
        spectrum = []

        for i in range(len(self.rate)):
            mfcc_feat.append(
                mfcc(self.data[i], self.rate[i], self.winlen, self.winstep,
                     self.numcep, self.nfilt, self.nfft, self.lowfreq,
                     self.highfreq))
            filterFeat, energy, spectrum0 = fbank(self.data[i], self.rate[i],
                                                  self.winlen, self.winstep,
                                                  self.nfilt, self.nfft,
                                                  self.lowfreq, self.highfreq)
            filterFeat = 10 * np.log10(filterFeat)
            #filterFeat -= (numpy.mean(filterFeat, axis=0) + 1e-8)
            #filterFeat /=numpy.std(filterFeat, axis=0)
            spectrum0 = 10 * np.log10(spectrum0)

            #spectrum0 -= (numpy.mean(spectrum0, axis=0) + 1e-8)
            #spectrum0 /=numpy.std(spectrum0, axis=0)

            filter_feat.append(filterFeat)
            spectrum.append(spectrum0)
        self.features = {
            'mfcc': mfcc_feat,
            'filter': filter_feat,
            'spectrum': spectrum
        }
        print('Extraction des features terminée ...')
Ejemplo n.º 2
0
    def comp_feat(self, sig, rate):
        """
        compute the features

        Args:
            sig: the audio signal as a 1-D numpy array
            rate: the sampling rate

        Returns:
            the features as a [seq_length x feature_dim] numpy array
        """

        # snip the edges
        sig = snip(sig, rate, float(self.conf['winlen']),
                   float(self.conf['winstep']))

        if 'scipy' in self.conf and self.conf['scipy'] == 'True':
            feat = base.angspec_scipy(sig, rate, self.conf)
        else:
            feat = base.angspec(sig, rate, self.conf)

        if self.conf['include_energy'] == 'True':
            if 'scipy' in self.conf and self.conf['scipy'] == 'True':
                _, energy = base.fbank_scipy(sig, rate, self.conf)
            else:
                _, energy = base.fbank(sig, rate, self.conf)
            feat = np.append(feat, energy[:, np.newaxis], 1)

        return feat