如何让钢琴听起来像人声?

按下不同的琴键可以看作是音频信号的线性叠加。钢琴能弹出的声音是88个键的声音的线性组合。然后从频域来看,不同频率的分量也是线性叠加的。一般来说,大多数人至少能分辨出25个音的音高差,也就是1/4半音。人说话的频率大约是300赫兹到3400赫兹,相当于42个半音。为简单起见,认为人在听别人说话时,是在区分这42*4 = 168个不同频率的音高的振幅。如果你有一点线性代数的知识,你就会知道,88个键的线性组合是不可能覆盖168个频率的所有可能组合的。这就像只用两个三维向量的线性组合不能代表所有的三维向量。即使88个键音的某种组合可以在300 Hz到3400 Hz的范围内非常接近人声,但很难说在这个频率范围之外是什么样的表现,很可能会改变听觉感受。另外,这种巧妙的组合一定是很少的,否则弹琴的时候很容易发出人声。鉴于这种联系,国外有人制造了一个机器人,可以通过电脑控制琴键让钢琴“说话”。油管链接在这里(需要一个梯子):不看字幕的话,部分模拟人声可以听出来,部分难以分辨。毕竟,如果只用88个琴音来覆盖168个频率的所有组合,那么需要接近的肯定有很多。尽管如此,视频显示用钢琴模拟人声总体可行。最初,我选了一门信号处理的课程。一个实验的内容是,一个人先录下一段话,然后用MATLAB进行傅里叶分解,只留下几个振幅最大的频率成分。