8

我有一个项目需要使用 .Net(VB.Net 或 C#)以编程方式获取 wave 或 MP3 文件的 BPM。

有谁知道这个的二进制文件或库,或者有一个代码片段来引导我朝着正确的方向前进?

4

3 回答 3

2

对于您从 .NET 代码中的 WAV 或 MP3 获取示例的部分,我使用 NAudio(在 CodePlex),免费,可用于商业应用程序,没有真正的文档,只是示例代码。

于 2010-05-06T23:50:59.037 回答
2

首先,如果你想用 .Net 做声音,我会推荐 fmod,它很棒并且有一个 .Net 包装器 (http://www.fmod.org)。
接下来,要获得 BPM,有几种方法,但我发现最有效的一种是“拍频”(此处描述:http ://www.rotorbrain.com/foote/papers/icme2001/icmehtml.htm )。
该算法通过将音乐的每个短样本与其他样本进行比较来计算相似度矩阵。一旦计算出相似度矩阵,就有可能获得每个时间间隔 T 的每个样本对 {S(T);S(T+1)} 之间的平均相似度:这是拍频。拍频频谱中的第一个高峰大部分时间是拍频持续时间。最好的部分是您还可以进行音乐结构或节奏分析等操作。
如果您对此领域感兴趣,我建议您阅读其他 Jonathan Foote 论文。

于 2011-02-23T23:11:57.137 回答
1

这是具有 C# 库的商业产品。还提供试用版:http: //adionsoft.net/bpm/

于 2010-05-06T14:43:40.930 回答