UNKNOWN
Project description
Usage
Zounds is a dataflow library for building directed acyclic graphs that transform audio. It uses the featureflow library to define the processing pipelines.
For example, here’s the definition of a pipeline that computes a sliding short-time fourier transform of some audio, and then computes spectrograms on the bark and chroma scales.
import featureflow as ff
import zounds
windowing = zounds.HalfLapped()
samplerate = zounds.SR44100()
class Settings(ff.PersistenceSettings):
id_provider = ff.UuidProvider()
key_builder = ff.StringDelimitedKeyBuilder()
database = ff.FileSystemDatabase(path='data', key_builder=key_builder)
class AudioGraph(ff.BaseModel):
meta = ff.JSONFeature(
zounds.MetaData,
encoder=zounds.AudioMetaDataEncoder,
store=True)
raw = ff.ByteStreamFeature(
ff.ByteStream,
chunksize=2 * 44100 * 30 * 2,
needs=meta,
store=False)
ogg = zounds.OggVorbisFeature(
zounds.OggVorbis,
needs=raw,
store=True)
pcm = zounds.ConstantRateTimeSeriesFeature(
zounds.AudioStream,
needs=raw,
store=False)
resampled = zounds.ConstantRateTimeSeriesFeature(
zounds.Resampler,
needs=pcm,
samplerate=samplerate,
store=False)
windowed = zounds.ConstantRateTimeSeriesFeature(
zounds.SlidingWindow,
needs=resampled,
wscheme=zounds.HalfLapped(),
wfunc=zounds.OggVorbisWindowingFunc(),
store=False)
fft = zounds.ConstantRateTimeSeriesFeature(
zounds.FFT,
needs=windowed,
store=False)
bark = zounds.ConstantRateTimeSeriesFeature(
zounds.BarkBands,
needs=fft,
store=True)
chroma = zounds.ConstantRateTimeSeriesFeature(
zounds.Chroma,
needs=fft,
store=True)
bfcc = zounds.ConstantRateTimeSeriesFeature(
zounds.BFCC,
needs=fft,
store=True)
class Document(AudioGraph, Settings):
pass
Data can be processed, and later retrieved as follows:
>>> _id = doc = Document.process(meta='https://example.com/audio.wav')
>>> doc = Document(_id)
>>> doc.chroma.shape
(321, 12)
Installation
Libsndfile Issues
Installation currently requires you to build lbiflac and libsndfile from source, because of an outstanding issue that will be corrected when the apt package is updated to libsndfile 1.0.26. Download and run this script to handle this step.
Numpy and Scipy
The Anaconda python distribution is highly recommended.
Zounds
Finall, just:
pip install zounds
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.