Spaces:
Runtime error
Runtime error
import streamlit as st | |
from st_audiorec import st_audiorec | |
import os | |
from datetime import datetime | |
# Placeholder function to simulate processing and generating a medical note | |
def process_audio_and_generate_note(audio_data_path): | |
# In a real scenario, this function would likely perform operations such as: | |
# 1. Converting the audio data into a suitable format for analysis. | |
# 2. Performing speech recognition on the audio to extract text. | |
# 3. Using the extracted text to generate a medical note. | |
# Here, we'll simulate this with a placeholder return value. | |
# IMPORTANT: Assume processing is done here, and we no longer need the audio file | |
return "Path to generated medical consultation note in Word format" | |
# Ensure the directory exists | |
audio_dir_path = "meddictate/data/audio" | |
os.makedirs(audio_dir_path, exist_ok=True) | |
st.title('MedDictate: Medical Consultation Note Generator') | |
# Display instructions and initiate the audio recorder component | |
st.write("Click the button below to start and stop recording:") | |
wav_audio_data = st_audiorec() # This initiates the audio recorder | |
# Store the audio data in session state if received from the recorder | |
if wav_audio_data is not None: | |
st.session_state.audio_bytes = wav_audio_data | |
# Button to submit the recording for processing | |
if 'audio_bytes' in st.session_state and st.session_state.audio_bytes: | |
if st.button('Process Recording', key='process_recording'): | |
# Construct a filename with a timestamp to avoid overwriting existing files | |
timestamp = datetime.now().strftime("%Y-%m-%dT%H-%M-%S") | |
filename = f"recorded_audio_{timestamp}.wav" | |
audio_file_path = os.path.join(audio_dir_path, filename) | |
# Save the audio data to a WAV file | |
with open(audio_file_path, "wb") as f: | |
f.write(st.session_state.audio_bytes) | |
# Process the audio data | |
generated_note_path = process_audio_and_generate_note(audio_file_path) | |
# After processing, delete the audio file as it's no longer needed | |
os.remove(audio_file_path) | |
st.write('Processing complete. Your medical consultation note is ready for download.') | |
st.download_button('Download Medical Note', generated_note_path, 'medical_note.docx') | |
else: | |
# Prompt to record if no audio data is found | |
st.warning('Please click the record button above to start recording your audio.') | |