UNKNOWN
Project description
|Build Status| |Coverage Status|
Usage
=====
Zounds is a dataflow library for building directed acyclic graphs that
transform audio. It uses the
`featureflow <https://github.com/JohnVinyard/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.
.. code:: python
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:
.. code:: python
>>> import requests
>>> req = requests.Request(method = 'GET', url = 'https://example.com/audio.wav')
>>> _id = doc = Document.process(meta=req)
>>> 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`` <https://github.com/bastibe/PySoundFile/issues/130>`__.
| Download and run `this
script <https://raw.githubusercontent.com/JohnVinyard/zounds/master/setup.sh>`__
to handle this step.
Numpy and Scipy
---------------
The `Anaconda <https://www.continuum.io/downloads>`__ python
distribution is highly recommended.
Zounds
------
Finall, just:
.. code:: bash
pip install zounds
.. |Build Status| image:: https://travis-ci.org/JohnVinyard/zounds.svg?branch=master
:target: https://travis-ci.org/JohnVinyard/zounds
.. |Coverage Status| image:: https://coveralls.io/repos/github/JohnVinyard/zounds/badge.svg?branch=master
:target: https://coveralls.io/github/JohnVinyard/zounds?branch=master
Usage
=====
Zounds is a dataflow library for building directed acyclic graphs that
transform audio. It uses the
`featureflow <https://github.com/JohnVinyard/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.
.. code:: python
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:
.. code:: python
>>> import requests
>>> req = requests.Request(method = 'GET', url = 'https://example.com/audio.wav')
>>> _id = doc = Document.process(meta=req)
>>> 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`` <https://github.com/bastibe/PySoundFile/issues/130>`__.
| Download and run `this
script <https://raw.githubusercontent.com/JohnVinyard/zounds/master/setup.sh>`__
to handle this step.
Numpy and Scipy
---------------
The `Anaconda <https://www.continuum.io/downloads>`__ python
distribution is highly recommended.
Zounds
------
Finall, just:
.. code:: bash
pip install zounds
.. |Build Status| image:: https://travis-ci.org/JohnVinyard/zounds.svg?branch=master
:target: https://travis-ci.org/JohnVinyard/zounds
.. |Coverage Status| image:: https://coveralls.io/repos/github/JohnVinyard/zounds/badge.svg?branch=master
:target: https://coveralls.io/github/JohnVinyard/zounds?branch=master
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.
Source Distribution
zounds-0.1.2.tar.gz
(48.9 kB
view hashes)