我必须编写一个echo代码。所以我写了这个代码。我想知道如何将这些添加到一个单独的wav文件中。有人能给我一个答案吗。提前谢谢。
import sounddevice as sd
from scipy.io import wavfile
import numpy as np
from scipy.io.wavfile import write
fs,x=wavfile.read('hello.wav')
amp=1
for i in range (2,6):
nx=(amp/i**3)*x
sd.play(nx,fs)
sd.wait()
write('hello[i]',fs,myrecording)
这里需要做两件事:
-
将
myrecording
(未在代码片段中定义(替换为要写入文件的声音数据数组。对你的代码的检查让我觉得你想写的实际上是nx
。 -
每个写出的文件都需要一个不同的文件名,否则你只需要重写同一个文件,只剩下最后一个写出的文件名。有很多方法可以为这个文件名生成/构造字符串,但根据您的经验,我使用了一种方法,它会将文件标记为";hello_2.wav";等
我已经将这两件事集成到这里的代码中:
import sounddevice as sd
from scipy.io import wavfile
from scipy.io.wavfile import write
fs, x = wavfile.read('hello.wav')
AMP = 1
for i in range(2, 6):
nx = (AMP/i**3) * x
sd.play(nx, fs)
sd.wait()
filename = f'hello_{i}.wav'
write(filename, fs, nx)