我的情况如下:我试图通过一个一个地构建样本,然后使用 Python 将结果保存到一个 .wav 文件来以艰难的方式生成一个波形。
当频率恒定时,一切都很好:我使用。但是,如果我将频率更改为时间的函数,事情就会出错。如果函数是形式的线性函数,它仍然有效。但是,例如,如果我选择,则最大频率会随着时间的推移而增加,达到高于预期 50Hz 的最大值。
我读过一些关于瞬时频率的东西,即:为什么频率不断降低的波开始增加其频率超过其长度的一半?. 但是进行积分评估会使声音更加怪异。我目前使用的方法适用于时间的线性函数,所以我认为肯定还有其他问题。
我还尝试每次都以我需要的频率生成声音块,然后将它们粘合在一起。我计算了振荡的周期,以便一个块具有尽可能多的样本以在该频率上形成一个完整的周期,因此不同频率之间没有“跳跃”。但会在样本中产生破裂的声音。
这是我需要的那种声音的 JavaScript 实现的例子:http: //jsfiddle.net/m7US6/4/。
任何帮助,将不胜感激。谢谢。