没有项目描述
zounds的Python项目详细描述
动机
Zounds是一个处理声音的python库它的主要目标是 致:
- 在numpy上对有语义意义的音频操作进行分层 数组
- help to organize the definition and persistence of audio processing pipelines and machine learning experiments with sound
音频处理图和机器学习管道使用 featureflow
一个简单的例子
importzoundsResampled=zounds.resampled(resample_to=zounds.SR11025())@zounds.simple_in_memory_settingsclassSound(Resampled):""" A simple pipeline that computes a perceptually weighted modified discrete cosine transform, and "persists" feature data in an in-memory store. """windowed=zounds.ArrayWithUnitsFeature(zounds.SlidingWindow,needs=Resampled.resampled,wscheme=zounds.HalfLapped(),wfunc=zounds.OggVorbisWindowingFunc(),store=True)mdct=zounds.ArrayWithUnitsFeature(zounds.MDCT,needs=windowed)weighted=zounds.ArrayWithUnitsFeature(lambdax:x*zounds.AWeighting(),needs=mdct)if__name__=='__main__':# produce some audio to test our pipeline, and encode it as FLACsynth=zounds.SineSynthesizer(zounds.SR44100())samples=synth.synthesize(zounds.Seconds(5),[220.,440.,880.])encoded=samples.encode(fmt='FLAC')# process the audio, and fetch features from our in-memory store_id=Sound.process(meta=encoded)sound=Sound(_id)# grab all the frequency information, for a subset of the durationstart=zounds.Milliseconds(500)end=start+zounds.Seconds(2)snippet=sound.weighted[start:end,:]# grab a subset of frequency information for the duration of the soundfreq_band=slice(zounds.Hertz(400),zounds.Hertz(500))a440=sound.mdct[:,freq_band]# produce a new set of coefficients where only the 440hz sine wave is# presentfiltered=sound.mdct.zeros_like()filtered[:,freq_band]=a440# apply a geometric scale, which more closely matches human pitch# perception, and apply it to the linear frequency axisscale=zounds.GeometricScale(50,4000,0.05,100)log_coeffs=scale.apply(sound.mdct,zounds.HanningWindowingFunc())# reconstruct audio from the MDCT coefficientsmdct_synth=zounds.MDCTSynthesizer()reconstructed=mdct_synth.synthesize(sound.mdct)filtered_reconstruction=mdct_synth.synthesize(filtered)# start an in-browser REPL that will allow you to listen to and visualize# the variables defined above (and any new ones you create in the session)app=zounds.ZoundsApp(model=Sound,audio_feature=Sound.ogg,visualization_feature=Sound.weighted,globals=globals(),locals=locals())app.start(9999)
在examples folder中找到更多灵感, 或者在blog上。
安装
libsndfile问题
安装当前要求您从中生成lbiflac和libsndfile 来源,因为an outstanding issue将 当apt包更新为libsndfile 1.0.26时更正。 下载并运行this script 来处理这一步。
纽比和希比
Python 强烈建议分发
佐恩斯
最后,只要:
pip install zounds