使用sox for bob和python的音频读写器
xbob.sox的Python项目详细描述
这个包是一个简单的python包装器,用于在sox<;http://sox.sourceforge.net>;中读写功能。 github版本可以在这里找到:https://github.com/bioidiap/xbob.sox
安装
您只需将xbob.sox对setup.py的依赖添加到 自动下载并在卫星上提供此软件包 包裹。如果bob安装在您的机器的中央,那么这很好。如果没有,您还需要安装bob-dev。
在ubuntu上,你需要像这样的东西:
$ sudo apt-get install bob bob-dev sox libsox-dev
在mac osx上,您需要以下内容:
$ sudo port install bob bob-dev sox libsox-dev
否则,您需要告诉buildout如何在本地构建包 以及如何找到鲍勃。为此,只需在你的构建中添加一个将 获取包并在本地编译它,设置buildout变量 prefixes安装bob的位置(构建目录也可以工作)。为了 示例:
[buildout] parts = xbob.sox <other parts here...> prefixes = /Users/elie/work/bob/build/debug ... [xbob.sox] recipe = xbob.buildout:develop ...
开发
要开发这些绑定,需要在某处安装开源库Bob和Sox。这个附属包在bob 1.2.x版、sox 14.3.x版和14.4.x版以及osx和ubuntu 10.x和12.x上进行了测试。 如果您自己编译了bob和sox并将其安装在非标准位置,则需要记下指向该安装根目录的路径。
只需键入:
$ python bootstrap.py $ ./bin/buildout
如果bob安装在非标准位置,请编辑文件buildout.cfg,将根设置为bob的本地安装路径。记住使用与编译bob时使用的python解释器相同,然后执行相同的步骤 如上所述。
用法
要阅读,请执行以下操作:
import xbob.sox infilename='xbob/sox/data/sample1.sph' audio = xbob.sox.reader(infilename) (rate, data) = audio.load() print rate print data
这允许读取比scipy.io.wavfile模块更多的wave格式。输出数据与Matlab^{TT7}$函数相同,与^{TT6}$模块相当(仅乘以2^15)。可以使用单元测试来比较3种实现。只需运行:
$ bin/nosetests -vs
要写作,请执行以下操作:
outfilename='out.wav' writer=xbob.sox.writer(outfilename, rate) writer.save(data)
xbob.sox.writer方法接受更多参数来选择编解码器和每个样本的位数(如果编解码器允许)。请参阅其内置的。默认情况下,它使用与文件扩展名关联的默认编解码器和每个示例的位数。
支持的编码和扩展
编码:
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.
扩展名:
.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.