不错的DSP甜点:重采样,FFT卷积。所有这些都有Pythorch,可微的和CUDA支持。

julius的Python项目详细描述


Julius,基于快速Pythorch的音频和1D信号DSP

tests badgecov badge

Julius包含不同的数字信号处理算法 使用Pythorch,因此它们是可微的,并且在CUDA上可用。 注意,这里实现的所有模块都可以与TorchScript一起使用。在

目前,我已经实施了:

此外,您还可以在以下位置找到有用的实用程序:

安装

julius需要Python3.6。要安装:

pip3 install -U julius

使用

参见Julius documentation了解朱利叶斯的用法。以后你会发现一些例子 快速入门:

^{pr2}$

算法

重采样

这是juliuso.Smith的sinc resample algorithm的实现。 它与resampy中使用的算法相同,但要在GPU-It上高效运行 仅限于采样率的微小变化。如果新老样本率 除以他们的GCD后就变小了。例如从2000到3000的采样率(去除GCD后为2,3) 会非常快,而从20001到30001则不会。 重采样比你的CPU重采样要快得多 (当然除了奇怪的情况,比如从20001到30001的抽样率)。在

FFTConv1d

用非常大的核(>;=128)和1的步长计算卷积可以快得多 使用FFT。这实现了与torch.nn.Conv1dtorch.nn.functional.conv1d相同的API 但是有了FFT后端。不支持膨胀和组。 即使对于相对较小的张量(几十个通道,内核大小),FFTConv在CPU上也会更快 共128页)。在CUDA上,由于较高的并行性,正则卷积在许多情况下可以更快, 但是对于大于128的内核大小,对于大量通道或批处理大小,FFTConv1d 最终会更快(基本上当你不再有闲置的核心可以隐藏 操作的真正复杂性)。在

低通

经典有限脉冲响应加窗sinc低通滤波器。它将自动使用FFT卷积 如果过滤器尺寸足够大。在

波段

在波形域的频带上信号的分解。这对 实例来执行参数EQ(参见上面的Usage)。在

基准

您可以在上找到速度测试(以及与参考实现的比较) benchmark。CPU基准测试运行在MacBookPro2020上,频率为2GHz 四核intel CPU。GPU基准测试运行在Google Colab Pro上(例如V100或P100 NVidia GPU)。 我们还比较了我们的实现与参考实现的有效性,比如resampytorch.nn.Conv1d。在

运行测试

那么,克隆这个存储库

pip3 install .[dev]'
python3 tests.py

要运行基准:

pip3 install .[dev]'
python3 -m bench.gen

许可证

julius是根据麻省理工学院的许可证发布的。在

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

推荐PyPI第三方库


热门话题
java如何按顺序显示父节点属性值和关联的子节点属性值?   java Zip 2在Spring Webfux中的不同Mono   java Twitter oauth_签名创建   SpringBoot中未标识java自定义依赖项   如何使用Java访问netbeans中的json Post方法值   在Java中查找数字的位数之和   java Hibernate使用date where子句过滤单列数据   java Spring@ExceptionHandler未捕获AccessDeniedException   java如何知道bean是否有一些值   javavaadin谷歌描述   javafx如何修复“java未命名模块从y和z读取程序包x”   Java generictyped方法返回错误的类型   java Android从应用程序发送电子邮件崩溃电子邮件强制关闭   Java与C版本的相同算法   Java编程异常   java动态生成收据   java使用ACRCloud将音频记录保存在文件中   java在注册到web应用程序后激活帐户   Java数组删除最后存储的元素