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