【问题标题】:Is there a way to write multiple frequencies to a .wav file?有没有办法将多个频率写入 .wav 文件?
【发布时间】:2021-02-14 21:56:07
【问题描述】:

我有一个数字数组

a = [440, 320, 650]

我正在尝试编写一个按顺序写入这些频率的 .wav 文件。但我不知道 scipy.io.wavfile 是否能够将频率数组写入 wav 文件。我现在能做的就是

wavfile.write('Sine.wav', rate, a[0])

我正在考虑做这样的事情。

对于范围内的 x (0, len(a)): #wavfile.addFrequency('Sine.wav', rate, a[x])

【问题讨论】:

  • 您是否想过“多个”频率意味着多个叠加的 sin 函数?在docs 中使用给定示例时,您可能只需要修改添加到data 的频率。
  • 您实际上并没有将频率“写入”到 WAV 文件中。您必须创建与频率相关的正弦信号样本的时间序列,并将该数据写入文件。

标签: python scipy wav


【解决方案1】:

“按顺序”对我来说听起来不是很清楚。我猜你想混合那些正弦波。为此,您必须通过对它们的幅度值求和来制作具有 3 个正弦波的单个波。对于每个样本,必须添加三个值(每个正弦值一个),注意结果永远不会溢出 -1.0 或 1.0(对于浮点值,对于 16 位整数,范围将是 -32768 到 32767)。

现在,如果您打算连续渲染三个波,则必须确定每个段的持续时间,并注意两个波之间的连接处以零幅度完成,以防止数字点击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多