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()
|