最近,我和我的合作伙伴开发了一个使用神经网络进行研究的和弦识别工具。对于输入,我们使用音高类轮廓的结果。
有12个输入作为每个音高等级的表示。输出是5个节点。我们基于以下输入训练神经网络:
for chord c major: input: 1 0 0 0 1 0 0 1 0 0 0 0 and output: 1 0 0 0 0.
当我们使用c major.wav
测试它时,音高类轮廓方法的结果的实际输入显示了良好的结果。与其他音符相比,c大调的3个基本音符更具优势,但价值太小,即:
c: 0.7123345
c#: 0.00024521
d:0.00013312
e: 0.009123
f:0.445023
f#:0.0535852
g:0.000312
g#:0.51023
a:0.0002312
a#:0.1034
b:0.003122
b#:0.000102
如果我们手动检查,我们可以看到c,f和g是应该占优势的,但是当我们使用神经网络检查时,结果并不像我们想要的那样。我们可以做些什么来改善这个?