我想给一个音频wav文件(乐器-小提琴等)作为输入,我想检测所有的频率音调,并在文本序列中按顺序更新它们已播放。我想我应该用fft频谱在固定的间隔得到它们的频率值。
这是一个非常困难的问题,为了获得任何可用的结果,您将需要良好的信号处理知识。你是对的,FFT是一个很好的起点,但你应该阅读这里的其他一些帖子和网络上的论文。搜索"音调估计"。"音高检测"或"音乐转录"。你需要理解一个复杂的声音是如何由多个相关频率的正弦波("谐波")组成的,以及如何获得FFT的峰值并不一定会给你音高(一些乐器的频谱中基频(即音高)不是最大的峰值)。
关于音高检测的维基百科页面提供了一个很好的起点。我建议阅读一些关于自相关方法和谐波和谱的论文。
- https://stackoverflow.com/search?q=pitch +估计