3

我是音频世界的新手,我被分配了一个我不知道如何处理的任务。我需要显示一个表示 WAV 文件音高的图表。WAV文件可以是和弦的,然后我需要显示主导(阅读:音量最大)乐器(或人声唱歌)的音高图。我对 .NET 非常熟悉,对 C、C++、Java 几乎一无所知。

我在网上开始了一项研究,据我了解,复音 WAV 文件的音高检测是一个未解决的问题,但我不需要确切的音高,只是想知道它是否比下一个更高,它是什么长度。

我的问题是:

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

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

谢谢,

机器学习

4

3 回答 3

2

您可以使用傅立叶分析来提取波的组成频率。这是一个相关的 SO 问题:Fast Fourier Transform in C#

于 2009-07-31T14:10:40.927 回答
1

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

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

于 2009-07-31T14:32:58.440 回答
0

我一直在做一个有点相关的项目。您需要研究快速傅立叶变换。我可以推荐这个用 C# 编写的项目- 它是作为吉他调音器编写的,但可以根据您的目的轻松修改。

然而,这不会做多音高。有一种名为“ celemony ”的产品声称使用“直接音符访问(DNA)”具有这种能力。他们的技术是可以理解的封闭源代码,但您可以以合适的价格获得许可。

于 2009-07-31T14:23:02.560 回答