首页 > 编程知识 正文

python有什么用,python3

时间:2023-05-06 11:58:25 阅读:59294 作者:4484

来自librosa的librosa是音频和音乐处理的Python软件包,我用它提取音频的特征。 但是,在使用过程中,我们发现librosa.load在将音乐文件按时间顺序转换的过程中,无法承受速度,cpu跑得非常快,程序似乎处于假死状态。

检查官方文档时,默认情况下,librosa使用scipy.signal对音频信号进行重新采样。 这个如果实际使用的话就晚了。 要获得高性能,官方要求libsamplerate和其相应的python模块scikits.samplerate

也就是说,在Windows上安装时,请先编译libsamplerate以获得相应的lib和dll文件,然后再安装python接口模块。

我尝试了在linux上安装,但过程很顺利。 因为使用apt-get可以很容易地安装libsamplerate。 在pip上安装scikits.samplerate后,系统可以直接找到用libsamplerate编译的lib文件。

虽然这个软件比较小众,但如果有读者遇到相同的问题,希望能对你有所帮助。

在Windows上编译lib样本速率lib样本速率官方帮助

编译步骤:

将libsamplerate压缩包转换为C: 解压缩到libsamplerate-0.1.8目录下载libsndfile的二进制安装包,然后单击libsndfile的libsndfile-1.dll、 安装和复制libsndfile-1.1.lib sample rate-0.1.8目录中的副本libsndfile的include/sndfile.h到C:libsamplerate-0.1.8

MSVCDir=(您的安装目录(Microsoft visual studio 11.0 ) VC cflags变量将添加到Microsoft SDKs的Include文件夹中。 例如,我的是cflags=/no logo/MD/w1/GX/ood include”/I“c :program filesMicrosoft sdkswindows v6.0a n include”/I./I“win32”/I“src”/d“win32”/d“_ usr dll”/yx/FD/zm 1000 Prog _ link _ flags变量为Microsoft libpath :”$ (msvc dir ((lib )/libpath :”c : (pr rog ) )。lib”/pdb :”lib sample rate-0.pdb”/machch 将exetype : dynamicdll _ link _ flags变量添加到Microsoft SDKs的lib文件夹中我的是dll _ link _ flags=/no logo/dll/incremental 3360 ntal libpath 3360 " c : " lib "/pdb : " lib sample rate-0.pdb "/implib : ".lib sample rate-0.lib "/machine 3360 I 键入Make.bat进行编译,使用make check进行程序测试,最终得到libsamplerate-0.dll、libsamplerate-0.lib,并与src目录下的sample进行绑定

下载scikits.samplerate源包后,必须配置site.cfg文件,为samplerate库创建lib文件名和位置目录,然后成功安装。 否则有时也会失败。

在scikits.samplerate目录中,打开site.cfg文件,然后修改以下内容:

[ sample rate ] library _ dirs=c : (lib sample rate-0.1.8 libraries=lib sample rate-0至此,python setup.py install的安装

这里还要注意,安装成功之后,在python的第三方库文件夹中找到scikits.samplerate,在scikitssamplerate文件夹中将libsamplerate编译好的dll文件放进去,这样就可以使用了。

补充:音频的重采样频率对应时间轴,振幅对应电平轴。 波浪无限光滑,弦线可以看作是由无数个点组成的。 由于存储空间比较有限,在数字编码过程中必须对弦线点进行采样。 的过程是提取某一点的频率值。 很明显,一秒钟提取的点越多,获得的频率信息就越丰富。 为了恢复波形,一次振动需要两点采样,人耳能感觉到的最高频率为20kHz。 因此,至少需要每秒40kHz的采样才能满足人耳的听觉要求。 用40kHz表示的话,这个40kHz是采样率。

采样率转换技术是非常必要的,以便降低计算复杂度和存储复杂度,并且可以使用音频重采样算法来实现音频信号的任意采样率之间的转换。

当以采样率为Fs且长度为m个采样点的音频信号x[n]的采样系数P/Q进行重新采样时,该信号的采样数目可以增大或减小。 该过程分为以下三个步骤[17]。

(1)上采样)在原信号的相邻两点插入P-1个零点。 即,生成具有p(m-1 )个采样点信号Xu(n ),在n=1,2,m的情况下,Xu(p(n-1 )1)=x(n ); 否则,墟xu[n]=0。

(2)将插值) xu[n]与低通滤波器h[n]进行卷积) xi[n]=xu[n]h[n]。

(3)下采样)每隔Q-1点提取一个点,即生成具有q点的信号xd[n],如果n=1,2,…,1,则xd[n]=Xi[1q(n-1] ),信号y [ n ]=xd (符号表示整数向下)

不同类型的重采样算法都可以分为上述三个过程,唯一的区别在于步骤2采用的插值滤波器的不同。

注意事项:

1 .上采样时,会导致镜像信息,因此需要用低通滤波器进行滤波。 (线性插值本身是低通滤波器,因此不需要额外的处理。

2 .因为下采样的情况下频谱可能被混淆,所以在下采样之前用低通滤波器进行滤波以便移除。

3 .重采样算法非常耗时,并且可以使用多相滤波器和一些条件限制来大大提高运算速度。

转载请注明作者Jason Ding及其出处

GitCafe博客主页(http://jasonding1354.gitcafe.io/) )。

Github博客主页(http://jasonding1354.github.io/() ) ) ) ) ) )。

CSDN博客(http://blog.csdn.net/jasonding 1354 )。

简单的主页(3358 www.Jian Shu.com/users/2 bd9 b 48 F6 ea8/latest _ articles )百度搜索jasonding1354进入我的博客主页

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。