如何将winsound.Beep()保存到python中的音频.wav文件?

时间:2019-03-13 15:27:37

标签: python python-sounddevice winsound

我一直在尝试做一些我认为非常简单的事情,并且将winsound.Beep(8000,1000)保存到名为LongBeep.wav的.wav文件中。有人可以提供解决方案吗?我已经搜索了答案,但是什么也没找到。这是我的代码:

import sounddevice as sd
import soundfile as sf 
import winsound
import time


sr = 44100
duration = 5
myrecording = sd.rec(int(duration * sr), samplerate=sr, channels=2)
winsound.Beep(8000,1000)
sd.wait()  
time.sleep(1)
sd.play(myrecording, sr)
sf.write("LongBeep.wav", myrecording, sr)

1 个答案:

答案 0 :(得分:0)

这对我有用:

import numpy as np
from scipy.io.wavfile import write

sps = 44100
freq_hz = 440.0
duration = 5
vol = 0.3

esm = np.arange(duration * sps)
wf = np.sin(2 * np.pi * esm * freq_hz / sps)
wf_quiet = wf * vol
wf_int = np.int16(wf_quiet * 32767)
write("sample.wav", sps, wf_int)

这会将名为sample.wav的文件写入程序的同一目录。您可以调整持续时间(以秒为单位)和频率。