如何使用scipy.io.wavfile附加wav文件?

2024-04-19 06:04:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个简单的程序,生成多个正弦波的wav文件。按原样,wav文件将被重写而不是追加,但我在scipy.io.wavfile文档中找不到追加。我确实发现另一个用户在这里问这个问题,但给出的答案是这是默认行为,但对我来说不起作用。任何帮助都将不胜感激

import numpy as np
from scipy.io import wavfile


duration = 10  # in seconds, may be float
f = 200  # sine frequency, Hz, may be float
fs=48000
samples = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

wavfile.write('Sine.wav', 48000, samples)


duration = 10  # in seconds, may be float
f = 100  # sine frequency, Hz, may be float
fs=48000
samples = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

wavfile.write('Sine.wav', 48000, samples)

这段代码生成一个10秒100hz的sine.wav文件,其中我想要一个20秒的wav文件,10秒200hz,然后10秒100hz


Tags: 文件inioimportnpscipybefloat
1条回答
网友
1楼 · 发布于 2024-04-19 06:04:24

您可以将两个样本阵列附加在一起,我使用400Hz作为第二个样本,因为100Hz在我的计算机扬声器上听不见

import numpy as np
from scipy.io import wavfile


duration = 10  # in seconds, may be float
f = 200  # sine frequency, Hz, may be float
fs=48000
samples1 = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

#wavfile.write('Sine.wav', 48000, samples)


duration = 10  # in seconds, may be float
f = 400  # sine frequency, Hz, may be float
fs=48000
samples2 = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)
samples=np.append(samples1,samples2)
wavfile.write('Sine.wav', 48000, samples)

相关问题 更多 >