performance - 需要将人声转换为音符

标签 performance

关闭。这个问题不符合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/

相关文章:

c# - 如果与开关速度

javascript - "Stop running this script"确认框 - 如何获取有关脚本的更多详细信息?

python - 改进获取时间和该函数的性能

performance - 哪个指令序列对于将一个或另一个寄存器归零具有更好的性能?

c# - 链式 LINQ 语句的效率如何?

mysql - 索引字段+限制1与唯一字段在性能方面的比较| MySQL

java - Java 中是否有零时间、启动(无需重新编译)可切换条件标志?

mysql - 提高仅增长表(不删除)的记录计数性能

javascript - 当javascript文件全部合并到一个文件中时,它们的顺序是否重要?

c# - 为什么 ShowGridLines 这么慢?