使用sox for bob和python的音频读写器

xbob.sox的Python项目详细描述


这个包是一个简单的python包装器,用于在sox<;http://sox.sourceforge.net>;中读写功能。 github版本可以在这里找到:https://github.com/bioidiap/xbob.sox

安装

您只需将xbob.soxsetup.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

...

开发

要开发这些绑定,需要在某处安装开源库BobSox。这个附属包在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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java处理:“神奇”函数是如何工作的   java JAXB Marshaller不需要值为null或空的元素   java如何解决类案例异常?使用arraylist   如何用Java读取JSON数据   向上转换时捕获的java错误异常   多线程是受Java内存模型约束的JVM语言还是只受Java编程语言约束的JVM语言?   在java环境中,如何将进程关联到特定监视器上运行?   json在Java中解析JsonString到JsonObject   java在这个例子中,2d精灵的非光滑运动有什么原因   java我可以使用ApacheIgnite中的EntryProcessor和Spring数据吗?   java如何在Stagemonitor中使用度量   java JavaFX Timeline动画在几个小时后会结巴   当JSON值为空时,java应用程序崩溃   java使用Spel通过另一个Spring值来计算Spring值   java更高级版本的集合。频率()   如何捕获此站点以使用PhantomJsDriver和Selenium(Java)   java在抽象类中实现compareTo()   泽西岛java Show图片例外Apper   java识别处理中的特定blob   java Cassandra 2.1.3。如何提取CommitLog