Spaces:
Runtime error
Runtime error
import pyaudio | |
import wave | |
from pynput import keyboard | |
FORMAT = pyaudio.paInt16 | |
CHANNELS = 1 | |
RATE = 44100 | |
CHUNK = 1024 | |
#RECORD_SECONDS = 5 | |
WAVE_OUTPUT_FILENAME = "test.wav" | |
frames = [] | |
def on_press(key): | |
global frames | |
if key == keyboard.Key.esc: | |
# Stop recording | |
audio = pyaudio.PyAudio() | |
stream = audio.open(format=FORMAT, channels=CHANNELS, | |
rate=RATE, input=True, | |
frames_per_buffer=CHUNK) | |
stream.stop_stream() | |
stream.close() | |
audio.terminate() | |
print("Finished recording audio.") | |
# Save recorded audio data to a .wav file | |
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') | |
wf.setnchannels(CHANNELS) | |
wf.setsampwidth(audio.get_sample_size(FORMAT)) | |
wf.setframerate(RATE) | |
wf.writeframes(b''.join(frames)) | |
wf.close() | |
# Stop the listener | |
return False | |
elif key.char == 'a': | |
# Start recording | |
audio = pyaudio.PyAudio() | |
stream = audio.open(format=FORMAT, channels=CHANNELS, | |
rate=RATE, input=True, | |
frames_per_buffer=CHUNK) | |
print("Recording audio...") | |
while True: | |
data = stream.read(CHUNK) | |
frames.append(data) | |
if keyboard.Controller().pressed(keyboard.Key.esc): | |
print("esc key press here") | |
break | |
stream.stop_stream() | |
stream.close() | |
audio.terminate() | |
# Start the listener | |
with keyboard.Listener(on_press=on_press) as listener: | |
listener.join() | |