Skip to main content

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.

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.1, and Sox version 14.4.0. 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.

Project details


Download files

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

Source Distribution

xbob.sox-1.0.0.zip (449.5 kB view details)

Uploaded Source

File details

Details for the file xbob.sox-1.0.0.zip.

File metadata

  • Download URL: xbob.sox-1.0.0.zip
  • Upload date:
  • Size: 449.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xbob.sox-1.0.0.zip
Algorithm Hash digest
SHA256 e1a39c871774196f7d7da7c07826934c2c3dc9a68f10bed83cd76908f39526ed
MD5 70674c3294dfd0a076c78612bb622ec7
BLAKE2b-256 4811e8b0fe091a7525228f95e7704f8df8c0e9fb8fe02188ce81ea2c84e527de

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page