39 lines
743 B
Python
39 lines
743 B
Python
import pyaudio
|
|
import wave
|
|
|
|
CHUNK = 1024
|
|
FORMAT = pyaudio.paInt32
|
|
CHANNELS = 2
|
|
RATE = 44100
|
|
RECORD_SECONDS = 5
|
|
WAVE_OUTPUT_FILENAME = "output.wav"
|
|
|
|
p = pyaudio.PyAudio()
|
|
|
|
stream = p.open(format=FORMAT,
|
|
channels=CHANNELS,
|
|
rate=RATE,
|
|
input=True,
|
|
frames_per_buffer=CHUNK)
|
|
|
|
print("* recording")
|
|
|
|
frames = []
|
|
|
|
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
|
|
data = stream.read(CHUNK)
|
|
frames.append(data)
|
|
|
|
print("* done recording")
|
|
|
|
stream.stop_stream()
|
|
stream.close()
|
|
p.terminate()
|
|
|
|
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
|
|
wf.setnchannels(CHANNELS)
|
|
wf.setsampwidth(p.get_sample_size(FORMAT))
|
|
wf.setframerate(RATE)
|
|
wf.writeframes(b''.join(frames))
|
|
wf.close()
|