你能解释或指出正确的方式来思考如何在wav文件上实现两种音效。在
所以我读取wav文件并将其转换为int值(在numpy
数组中)
array([59383, 58290, 60629, ..., 52606, 51982, 56274], dtype=uint16)
首先,我不清楚数组中的这些值到底代表什么?
每个值都是模拟输出设备在某个时刻将产生的65535(unsigned int16
)量级之一,对吗?在
理论上可以通过以下步骤实现合唱效果:
value < 1
)实际上,我不知道如何正确地添加它们。如果我只是一个接一个地添加值,对两个数组进行卷积,或者交错原始数组和它的修改副本。 而且合唱效果应该有任意的时间延迟,我不知道该怎么做。在
如何实现即将添加的数据的随机性?在
你基本上有正确的想法。以下是几点:
1)波形文件是线性信号与时间的关系,因此您对它的理解是正确的。(许多音频都是对数的,所以认为它可能是非线性的并非没有道理,例如,LPs是以非线性方式编码的。)
2)如果你要做数学,首先转换成},这样就不会超出
float
或{int16
的限制。3)要及时偏移,请使用numpy切片。也就是说,像
new = old[1000:]+old[:-1000]
。请注意,您需要将长度相同的部分添加到一起,因此如果添加时间偏移,则无法将其添加到完整数组中,因为时间偏移将更短。4)至于加上“随机时间”,你可以在上面加上一个随机时间。要使时间在整个加法过程中不断变化,您需要扭曲原始信号,这将更加复杂。
相关问题 更多 >
编程相关推荐