2014-11-24 20 views
1

我正在为班级申请(作为团队的一部分),其中的想法是帮助您学习弹钢琴。乐器的图像显示在屏幕上,我们有一些课程Octave,你在钢琴的某个八度音阶,这样你可以突出显示适当的琴键。例如,您会告诉highlight该方法的注意事项,并且它知道要突出显示图像的哪个部分,因为始终存在要检查的活动Octave对象,该对象通过距图像开头的距离来查找该关键点。到目前为止,这部分没有问题,我知道(这是我的团队成员的责任)。如何检测声音文件中的某些声音并执行与其同步的操作?

我想要完成的是在用户选择适当的选项后播放声音文件(例如音阶或歌曲),但是键应该在屏幕上与正在播放的正确音符同步地突出显示。这正是我的问题;我不知道如何解决这个问题,并且对类似案例的搜索并没有帮助。

所以我问的是,如果有人可以建议我应该如何做到这一点?理想情况下,它应该是通用的(获得高质量的声音文件并突出显示正确的音符,而不是为每个要添加的文件编码),因此可以通过某种方式来检测正在播放的音符和音高用来确定哪个音符在哪个八度音阶中,然后我可以很容易地将这些信息与其他类一起使用。这只是我的想法,我认为它可能会得到解决,但我愿意接受其他可能更好的解决方案。预先感谢您的任何建议!

+0

是否要求声音文件是现有文件,或者您是否可以创建歌曲作为钢琴音符列表? – FlyingPiMonster 2014-11-24 05:12:38

+0

@ kittycat3141不,这不是要求,所以这将是完全可以接受的。 – user3424612 2014-11-24 16:56:49

回答

3

你在问什么可以是真的很难,特别是在一般情况下。

实际上,你要求的是Automatic Music Transcription。时下,自动音乐转录精度is similar to text-to-speech:不是很好。

你应该做的

什么音乐学习应用程序,你应该考虑使用一个已经写好的转录。例如,您只需阅读描述歌曲中的音符的a midi file,然后使用MIDI文件中的信息高亮显示钢琴的音符。

如果你真的想自动音乐转录

然后,你应该通过reading papers of folks who did it启动,并接受accuracy of about 80%...

+0

谢谢你的回应。我不知道你可以使用MIDI文件来获取所需的信息。我们会尝试这种方法,看看它是怎么回事! – user3424612 2014-11-24 17:00:11