我正在制作一个复音音乐转录项目。我已经阅读了一些论文,并阅读了解释类似任务的文章。我对问题领域的许多方面感到非常困惑。希望有人能够帮助我。
到目前为止,我已经从给定的mp3获得了解码音频数据流。
我已经了解起病检测是转录的第一步。 。是否有可用的java库可用于检测开始。
接下来,如我所读,使用FFT也可以检测基频。
我想知道在这些任务中使用FFT。 (我对FFT不熟悉)。是否必须执行FFT以进行起始检测和F0检测。 如果不是其他方式。 我可以在我的音频流上执行FFT,或者是否需要执行其他操作才能操作这些音频数据。
非常感谢。
答案 0 :(得分:6)
此字段称为机器侦听。
数字编码音乐的复音转录是机器收听的圣杯之一。这是一个尚未解决的问题,也是一个积极研究的领域。子字段包括:
根据项目的性质,您可能会发现探索SuperCollider编程环境很有用。 SC是一种专为此类项目设计的语言,已经拥有大量的机器监听插件(ugens),以及处理FFT,音频信号等的综合框架。
答案 1 :(得分:3)
此question about note onset detection包含许多可能对您有用的信息。
这听起来是一个巨大但非常有趣的项目,祝你好运。
答案 2 :(得分:3)
音乐转录意味着从声音(或音频数据)创建音乐符号。虽然有成就的音乐家,特别是作曲家能够做到这一点,但使用机器这是一项非常困难的任务,据我所知,迄今为止几乎没有成功 - 主要是学术实验。
基本上,要识别笔记,您需要知道它们的起点,结束位置以及它们的音高。傅里叶变换是将时域(音频数据)转换为频域(音高)的最基本方法 - 原则上。在实践中,乐器产生大量的谐波(泛音),如果我们添加复音(许多F0),那就太乱了。
您可以尝试将类似音频数据的50毫秒连续切片输入FFT。通过这种方式,您可以获得每个切片的光谱,然后检测每个切片中最强的峰值,并根据连续切片之间的情况推断出节奏。
对不起,我帮不了多少......但是只是想指出你要做的事情非常困难,严肃认真。也许你应该从更简单的东西开始,比如检测一个音符的正弦波旋律。祝你好运!
答案 3 :(得分:0)
要检测复音音乐中旋律的基频,您可以试用MELODIA鞋面插件(仅限非商业用途):http://mtg.upf.edu/technologies/melodia
如果你想自己实现一个旋律提取算法,你将不得不查看当前最先进的研究,一个好的起点可能是MIREX旋律提取年度评估活动:{ {3}}
那,或只是google“旋律提取”;)