41 lines
744 B
Python
41 lines
744 B
Python
import pyaudio
|
|
import wave
|
|
import os
|
|
import sys
|
|
|
|
CHUNK = 512
|
|
FORMAT = pyaudio.paInt16
|
|
CHANNELS = 1
|
|
RATE = 16000
|
|
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")
|
|
|
|
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()
|