我正在做一个复调音乐改编项目。我已经阅读了一些论文,并阅读了解释类似任务的文章。我对问题领域的许多方面感到非常困惑。希望有人能帮助我。
到目前为止,我已经从给定的mp3获得了解码的音频数据流。
我知道发音检测是转录的第一步。。有没有可用于检测onset的java库?
接下来,正如我所读到的,检测基波频率也是使用FFT完成的。
我想知道在这些任务中如何使用FFT。(我不太熟悉FFT )。对于起始点检测和F0检测,是否必须进行快速傅立叶变换?如果不是,还有什么其他的方法。我可以对我拥有的音频流执行FFT吗,或者为了处理这些音频数据,是否需要进行其他操作。
非常感谢。
发布于 2009-02-28 09:50:40
此字段称为机器侦听。
数字编码音乐的复调转录是机器收听的圣杯之一。这是一个尚未解决的问题,也是一个积极研究的领域。子字段包括:
<
根据项目的性质,您可能会发现探索SuperCollider编程环境很有用。SC是为这样的项目设计的语言,已经有大量的机器监听插件(ugens),以及用于处理FFT、音频信号等的全面框架。
发布于 2009-02-28 08:43:31
此question about note onset detection包含许多可能对您有用的信息。
这听起来是一个巨大但非常有趣的项目,祝你好运。
发布于 2009-02-28 08:47:07
音乐转录是指从声音(或音频数据)创建音乐符号。虽然有成就的音乐家,特别是作曲家能够做到这一点,但这是一项用机器完成的极其困难的任务,据我所知,到目前为止,几乎没有成功-主要是学术实验。
基本上,要识别音符,您需要知道它们从哪里开始,在哪里结束,以及它们的音高是什么。傅立叶变换原则上是将时域(音频数据)转换到频域(音调)的最基本的方法。在实践中,乐器会产生许多谐波(泛音),如果我们加上复调(许多F0s),就会变得一团糟。
您可以尝试将音频数据的50毫秒连续切片输入到FFT中。这样,您将获得每个切片的频谱,然后检测每个切片中最强的峰值,并从连续切片之间发生的事情推断出节奏。
抱歉,我帮不了太多忙。但我只是想指出,你正在尝试做的事情是非常困难的,真的。也许你应该从一些更简单的东西开始,比如检测单音符的正弦波旋律。祝好运!
https://stackoverflow.com/questions/597743
复制相似问题