CRUSADE
Conversion of Raw-audio Using Spikes Analog Digital Encoders
This repository contains implementations of different analogue-to-spike converters for raw audio signal.
Features
This project contains Python implementations of various methods and neural models used to transform audio signals into spike/event trains, using JAX. It includes: - Standalone ADM. - Filterbank with ADM. - Filterbank with Resonate and Fire neurons. - Filterbank with phase encoding (under development).
Installation
Recommended version for installation is using uv
Or with pip
Example
Example for use filterbank_ADM:
import jax.numpy as jnp
import matplotlib.pyplot as plt
from scipy.signal import chirp
from crusafe.conversion_methods import filterbank_ADM
sr = 44100
duration = 0.1
t = jnp.arange(int(sr * duration)) / sr
audio = chirp(t, f0=200, f1=2000, t1=duration, method="linear")
fb = filterbank_ADM(
num_neurons=16, freq_min=200, freq_max=2000, freq_distribution="linear"
)
event_time, event_address, event_magnitude = fb(audio, sampling_rate=sr)
plt.figure()
plt.scatter(x=event_time, y=event_address, c=event_magnitude, cmap="bwr")
plt.show()
Tests
- On pc
To check if the models are working:
or if you are in the envirnomentTo check before commit:
to install the pre-commit (only forst time): once installed it runs automatically for every commit- On git
It does automatically runs all the tests