Как сохранить winsound.Beep () в аудио-файл .wav на python? - PullRequest
2 голосов
/ 13 марта 2019

Я пытался сделать что-то, что, на мой взгляд, было бы довольно просто, и это, чтобы сохранить winsound.Beep (8000,1000) в файл .wav с именем LongBeep.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 голосов
/ 13 марта 2019

Это работает для меня:

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 в тот же каталог программы. Вы можете настроить продолжительность (в секундах) и частоту.

...