• KickOff Euler Magnification for Audio Looper

    tucanae4709/23/2018 at 20:09 0 comments

    During this kickoff weekend, I started from great work from chairman at github https://github.com/chairmank/eulerian-audio-magnification and check on the theory of it, plus add spectrograms for after and before the magnification. 

    Add google colab python 2.7 notebook.

    Feel free to checkit out!


    next steps will involve set everything up in the rpi, the main part of code published here follows. Laplacian pyramids rock :-)

    this the first test results amplifying simple raw wav file with technique described

    The main piece of code for that ;-)

    window = 1024
    step = window / 4
    print "whitening spectrum"
    whitened = sp / np.sqrt(power)
    whitened = normalize_total_power(whitened, utils.total_power(sp))
    print "unwhitening spectrum"
    unwhitened = whitened * np.sqrt(power)
    unwhitened = normalize_total_power(unwhitened, utils.total_power(sp))
    print "resynthesizing from whitened-unwhitened spectrogram"
    resynth = resynthesize(unwhitened)
    wavfile.write("resynth.wav", int(2 * nyq), resynth)
    print "constructing Laplacian pyramid"
    pyr = stft_laplacian_pyramid(sp)
    print "amplifying components of Laplacian pyramid"
    passband = [0.5, 1.0]
    fs = 44100 / step
    gain = 10.0
    amplified_pyr = amplify_pyramid(pyr, passband=passband, fs=fs, gain=gain)
    print "resynthesizing spectrogram from amplified Laplacian pyramid"
    pyramid_resynth = resynthesize(amplified_pyr.sum(axis=-1))
    wavfile.write("resynth_pyramid.wav", int(2 * nyq), pyramid_resynth)
    (nyq, signal2) = slurp_wav("resynth_pyramid.wav", start=0, end=44100*10)
    plt.specgram(signal2, cmap='Spectral', Fs=framerate)