关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
3年前关闭。
Improve this question
一个人唱出一种音调,并想将其转换为演奏相同音调的乐器。关于使用 aubio.org 处理录制的人声的 .wav 文件,我能够在不同的时间间隔获得音调/频率。但是如何从这些数据中获取要演奏的乐器的音符,或者是否有一些调音器可以帮助我做到这一点?
最佳答案
对于音高,使用 MIDI 69 = 440hz 的公式,所以(python/伪代码)
midiNote = round(12 * (log(freq/440.0), 2))) + 69
但是你会发现对于节奏来说,事情实际上可能比这更复杂,因为。我会使用一个已经制作的有节奏的“量化”包(这是你想要的谷歌搜索词),因为确定速度以及是否应该将 1.125 拍长的东西转录为四分音符或四分音符绑定(bind)到32nd note 很大程度上取决于上下文,这是一项很大的编程工作。有几个预先存在的工具包可以为您完成。我自己的python 框架music21 有一个audioSearch 模块,它应该可以处理简单的片段——至少你可以把代码放到你自己的包中,因为它是非常标准的FFT 样本转换技术。
关于performance - 需要将人声转换为音符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15379029/