Spaces:
Runtime error
Runtime error
import pyaudio | |
import wave | |
from pynput import keyboard | |
FORMAT = pyaudio.paInt16 | |
CHANNELS = 1 | |
RATE = 44100 | |
CHUNK = 1024 | |
RECORD_SECONDS = 10 | |
WAVE_OUTPUT_FILENAME = "2.wav" | |
frames = [] | |
def on_press(key): | |
#if key == keyboard.Key.esc: | |
# recording = False | |
# return False | |
if key == keyboard.KeyCode.from_char('a'): | |
print("Recording audio...") | |
# Start recording | |
global stream, audio | |
audio = pyaudio.PyAudio() | |
stream = audio.open(format=FORMAT, channels=CHANNELS, | |
rate=RATE, input=True, | |
frames_per_buffer=CHUNK) | |
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): | |
data = stream.read(CHUNK) | |
frames.append(data) | |
# Stop recording | |
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() | |
def on_release(key): | |
if key == keyboard.Key.esc: | |
return False | |
# Start the listener | |
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener: | |
listener.join() | |