Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Audio reader and writer using sox for bob and python

Project Description

This package is a simple Python wrapper to read and write functionalities in Sox <http://sox.sourceforge.net>. The github version can be found here: https://github.com/bioidiap/xbob.sox

Installation

You can just add a dependence for xbob.sox on your setup.py to automatically download and have this package available at your satellite package. This works well if Bob is installed centrally at your machine. If not done, you need also to install bob-dev.

On ubuntu, you need something like:

$ sudo apt-get install bob bob-dev sox libsox-dev

On Mac OSX, you need something like:

$ sudo port install bob bob-dev sox libsox-dev

Otherwise, you will need to tell buildout how to build the package locally and how to find Bob. For that, just add a recipe to your buildout that will fetch the package and compile it locally, setting the buildout variable prefixes to where Bob is installed (a build directory will also work). For example:

[buildout]
parts = xbob.sox <other parts here...>
prefixes = /Users/elie/work/bob/build/debug
...

[xbob.sox]
recipe = xbob.buildout:develop

...

Development

To develop these bindings, you will need the open-source libraries Bob and Sox installed somewhere. This satellite package was tested with Bob version 1.2.x, and Sox version 14.3.x and 14.4.x, and on OSX and UBUNTU 10.x and 12.x. If you have compiled Bob and Sox yourself and installed it on a non-standard location, you will need to note down the path leading to the root of that installation.

Just type:

$ python bootstrap.py
$ ./bin/buildout

If Bob is installed in a non-standard location, edit the file buildout.cfg to set the root to Bob’s local installation path. Remember to use the same python interpreter that was used to compile Bob, then execute the same steps as above.

Usage

To read, just do something like:

import xbob.sox
infilename='xbob/sox/data/sample1.sph'
audio = xbob.sox.reader(infilename)
(rate, data) = audio.load()
print rate
print data

This allows to read more wave formats than scipy.io.wavfile module. The output data are the same as for the MATLAB wavread function, and comparable with scipy.io.wavfile module (just multiplied by 2^15). Unit-tests to compare the 3 implementations are available. Just run:

$ bin/nosetests -vs

To write, do something like:

outfilename='out.wav'
writer=xbob.sox.writer(outfilename, rate)
writer.save(data)

The xbob.sox.writer method accepts more parameters to optionally select the codec and the number of bits per sample (if the codec allows). Please refer to its built-in. By default, it uses the default codec and bits per sample that are associated with the extension of the file.

Supported Encoding and Extensions

Encodings:

SIGN2, UNSIGNED, FLOAT, FLOAT_TEXT, FLAC, HCOM, WAVPACK, WAVPACKF, ULAW, ALAW, G721, G723, CL_ADPCM, CL_ADPCM16, MS_ADPCM, IMA_ADPCM, OKI_ADPCM, DPCM, DWVW, DWVWN, GSM, MP3, VORBIS, AMR_WB, AMR_NB, CVSD, LPC10.

Extensions:

.voc, .smp, .wve, .gsrt, .amr-wb, .prc, .sph, .amr-nb, .txw, .sndt, .vorbis, .speex, .hcom, .wav, .aiff, .aifc, .8svx, .maud, .xa, .au, .flac, .avr, .caf, .wv, .paf, .sf, .sox.

Release History

Release History

This version
History Node

1.1.0

History Node

1.0.1

History Node

1.0.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
xbob.sox-1.1.0.zip (450.4 kB) Copy SHA256 Checksum SHA256 Source Nov 19, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting