用VB.net获得灵感

时间:2011-04-11 16:56:43

标签: vb.net audio mp3 wav

我想在任何时候获得一首歌的音高。我打算稍后存放球场。我如何阅读说...一个mp3文件或wav文件,以获得在某一点播放的音调?

这是一个直观的例子: enter image description here 说我想在这个歌曲的这一点上得到音调。

谢谢,如果可以的话!

1 个答案:

答案 0 :(得分:1)

这件事情比你预期的要复杂得多。

虽然存在时域方法(即直接使用PCM数据的方法),但频域音调检测将更加准确。您可以阅读非常简化的概述here

您可能想要的是Fourier Transform,它可用于将信号块从时域转换为频域(即,在给定信号范围内的频率内容分布) 。从那里,您需要分析该块内的频谱。问题变得更加困难,因为在一般情况下,没有最佳方法来从采样频谱中推断出音调。前面提到的维基百科文章应该为您提供查看这些算法的基础。

最后,值得注意的是,这确实是一个与语言无关的问题,除非您的主要兴趣在reading WAV file专门使用VB.NET。