我是音频世界的新手,我被分配了一项任务,我不知道如何处理。 我需要显示一个表示WAV文件音高的图表。 WAV文件可以是复音,然后我需要显示显性(读取:具有最强音量)乐器(或人声唱歌)的音高图。 我对.NET很熟悉,在C,C ++,Java方面几乎一无所知。

我开始在网络上进行研究,从我理解的复音WAV文件的音高检测是一个未解决的问题,但我不需要精确的音高,只是为了知道下一个是否更高,并且它的长度是多少。

我的问题是:

  1. 我应该从哪里开始学习这项任务背后的理论?有没有推荐的书?

  2. 是否有任何API /工具可以做到这一点?

  3. 谢谢,

    ML

有帮助吗?

解决方案

您可以使用傅立叶分析来提取波的组成频率。这是一个相关的SO问题: C#中的快速傅立叶变换

其他提示

我开始使用数字信号处理进行信号处理。您可以购买约30美元的书籍,或免费下载PDF格式。它是为非科学家编写的,包含大量信息,可以帮助您使用各种信号处理技术。

FFT(快速傅里叶变换)将时间与幅度信号转换为频率(频段)与强度(能量)。您可以通过很多网站上的标准图表从频率转到笔记。

我一直在做一个有点相关的项目。您将要研究快速傅里叶变换。我可以推荐这个用C#编写的项目 - 它是用吉他写的调谐器,但它可以很容易地修改为您的目的。

然而,这不会做多音调。有一种名为“ celemony ”的产品声称具有使用“Direct Note Access(DNA)”的这种能力的人。他们的技术可以理解为封闭源,但您可以以合适的价格获得许可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top