加速维纳滤波器
fast-norbert的Python项目详细描述
诺伯特法斯特
Fast Norbert是https://github.com/sigsep/norbert的优化分叉。在
性能
这是过滤过程对单个核心的时间(以秒为单位):
Test case | Original Norbert | Fast Norbert |
---|---|---|
song 1 | 19.3 | 7.5 |
song 2 | 27.5 | 10.9 |
诺伯特滤波器
维纳滤波器是一种非常流行的多声道音频滤波方法,在语音增强和声源分离等领域有着广泛的应用。在
此过滤方法假设您有某种方法来估计组成混合物的所有音频源(非负)的功率或幅度谱图。如果您只有一些target源的模型,而没有其他源的模型,那么可以使用fast_norbert.residual_model
让Norbert为您创建一个残差模型。在
给定所有的源谱图和混合时频表示,此存储库可以通过优化利用多通道信息(如立体声信号)来构建和应用适合分离的滤波器。这是在一个称为Expectation Maximization的迭代过程中完成的,在该过程中,参数的过滤和重新估计被迭代。在
从初学者的角度来看,你所需要做的就是经常调用fast_norbert.wiener
和你的光谱图估计值。剩下的就交给你了。在
从更专业的角度来看,您将发现EM算法中的不同成分作为模块fast_norbert.norbert
中的函数。在
安装
pip install fast_norbert
使用
假设复杂的谱图X
,以及从谱图中提取的目标的(幅度)估计,执行多通道维纳滤波器如下所示:
importfast_norbertx=stft(audio)v=model(x)y=fast_norbert.wiener(v,x)estimate=istft(y)
作者
Artyom Palvelev(本次回购) Antoine Liutkus,Fabian Robert Stöter(原始回购)
许可证
麻省理工学院
- 项目
标签: