python合唱效果及音频数据的意义



你能解释或指出如何在wav文件上实现两种声音效果的正确方法吗。

所以我读取了wav文件并将其转换为int值(在numpy数组中)

array([59383, 58290, 60629, ..., 52606, 51982, 56274], dtype=uint16)

首先,我不确定我是否清楚数组中的这些值到底代表什么?每个值都是模拟输出设备在某个时刻将产生的65535(unsigned int16)幅度电平之一,这是对的吗?

理论上合唱效果可以通过以下步骤来实现:

  1. 复制原始数组
  2. 削弱这个复制的数组(乘以一些value < 1)
  3. 并将此复制的数组添加到原始数组

在实践中,我不知道如何正确添加它们。我应该简单地将值一个接一个地相加,对两个数组进行卷积,还是将原始数组和它的修改副本进行交织。此外,合唱效果应该有任意时间延迟,我不知道如何才能做到这一点。

我该如何实现即将添加的数据的随机性?

您基本上有正确的想法。以下是几点:

1) 波形文件是线性信号与时间的关系,所以你对它的理解是正确的。(许多音频都是对数的,所以认为它可能是非线性的也不无道理——例如,LP是以非线性方式编码的。)

2) 如果要计算,请先转换为floatint32,这样就不会超出int16的限制。

3) 要在时间上偏移,请使用numpy切片。也就是说,类似于new = old[1000:]+old[:-1000]。请注意,您需要将相同长度的部分添加在一起,因此如果添加时移,则无法将其添加到整个数组中,因为时移会更短。

4) 至于添加"随机时间",你可以在上面添加一个随机时间。为了使时间在添加过程中不断变化,您需要扭曲原始信号,这将更加复杂。

相关内容

  • 没有找到相关文章

最新更新