Spaces:
Build error
Build error
| import streamlit as st | |
| import pyaudio | |
| import wave | |
| import threading | |
| import numpy as np | |
| def record_audio(): | |
| global RECORDING, frames | |
| FORMAT = pyaudio.paInt16 | |
| CHANNELS = 1 | |
| RATE = 44100 | |
| CHUNK = 1024 | |
| frames = [] | |
| p = pyaudio.PyAudio() | |
| stream = p.open(format=FORMAT, | |
| channels=CHANNELS, | |
| rate=RATE, | |
| input=True, | |
| frames_per_buffer=CHUNK) | |
| while RECORDING: | |
| data = stream.read(CHUNK) | |
| frames.append(data) | |
| stream.stop_stream() | |
| stream.close() | |
| p.terminate() | |
| def main(): | |
| global RECORDING, frames | |
| st.title('Audio Recorder') | |
| RECORDING = False | |
| if st.button('Start Recording'): | |
| global recording_thread | |
| RECORDING = True | |
| frames = [] # Clear previous recording data | |
| recording_thread = threading.Thread(target=record_audio) | |
| recording_thread.start() | |
| st.write('Recording...') | |
| if st.button('Stop Recording'): | |
| global recorded_audio | |
| RECORDING = False | |
| recording_thread.join() | |
| recorded_audio = np.frombuffer(b''.join(frames), dtype=np.int16) | |
| st.audio(recorded_audio, format='audio/wav') | |
| # Use 'recorded_audio' variable in your program as needed | |
| # For example, you can pass it to a function for further processing | |
| # YourFunction(recorded_audio) | |
| if __name__ == '__main__': | |
| main() | |