class Sound(BaseModel):
    """
    An audio processing pipeline that computes a frequency domain representation
    of the sound that follows a geometric scale
    """
    bark = zounds.ArrayWithUnitsFeature(zounds.BarkBands,
                                        samplerate=samplerate,
                                        stop_freq_hz=samplerate.nyquist,
                                        needs=BaseModel.fft,
                                        store=True)

    long_windowed = zounds.ArrayWithUnitsFeature(
        zounds.SlidingWindow,
        wscheme=zounds.SampleRate(frequency=zounds.Milliseconds(358),
                                  duration=zounds.Milliseconds(716)),
        wfunc=zounds.OggVorbisWindowingFunc(),
        needs=BaseModel.resampled,
        store=True)

    long_fft = zounds.ArrayWithUnitsFeature(zounds.FFT,
                                            needs=long_windowed,
                                            store=True)

    freq_adaptive = zounds.FrequencyAdaptiveFeature(
        zounds.FrequencyAdaptiveTransform,
        transform=np.fft.irfft,
        scale=scale,
        window_func=np.hanning,
        needs=long_fft,
        store=False)

    rasterized = zounds.ArrayWithUnitsFeature(lambda fa: fa.rasterize(64),
                                              needs=freq_adaptive,
                                              store=False)
Esempio n. 2
0
class Document(BaseModel):
    bark = zounds.ArrayWithUnitsFeature(zounds.BarkBands,
                                        samplerate=samplerate,
                                        stop_freq_hz=samplerate.nyquist,
                                        needs=BaseModel.fft,
                                        store=True)

    long_windowed = zounds.ArrayWithUnitsFeature(
        zounds.SlidingWindow,
        wscheme=zounds.SampleRate(frequency=zounds.Milliseconds(500),
                                  duration=zounds.Seconds(1)),
        wfunc=windowing_func,
        needs=BaseModel.resampled,
        store=True)

    dct = zounds.ArrayWithUnitsFeature(zounds.DCT,
                                       scale_always_even=True,
                                       needs=long_windowed,
                                       store=True)

    mdct = zounds.FrequencyAdaptiveFeature(zounds.FrequencyAdaptiveTransform,
                                           transform=scipy.fftpack.idct,
                                           scale=scale,
                                           needs=dct,
                                           store=True)