Spaces:
Sleeping
Sleeping
Cryptic
commited on
Commit
·
394213a
1
Parent(s):
363abbd
test
Browse files
app.py
CHANGED
|
@@ -6,6 +6,7 @@ import numpy as np
|
|
| 6 |
from transformers import pipeline
|
| 7 |
import torch
|
| 8 |
import soundfile as sf
|
|
|
|
| 9 |
|
| 10 |
# Page configuration
|
| 11 |
st.set_page_config(page_title="Audio Processing App", layout="wide")
|
|
@@ -24,12 +25,12 @@ def load_models():
|
|
| 24 |
|
| 25 |
models = {
|
| 26 |
'transcriber': pipeline("automatic-speech-recognition",
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
'summarizer': pipeline("summarization",
|
| 31 |
-
|
| 32 |
-
|
| 33 |
}
|
| 34 |
return models, None
|
| 35 |
except Exception as e:
|
|
@@ -148,9 +149,23 @@ def main():
|
|
| 148 |
st.session_state.models_loaded = True
|
| 149 |
st.session_state.models = models
|
| 150 |
|
| 151 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
st.write("Upload an audio file of your lecture (supported formats: WAV, MP3, M4A, FLAC)")
|
| 153 |
st.write("Note: Processing long audio files may take several minutes.")
|
|
|
|
| 154 |
uploaded_file = st.file_uploader("Choose a file", type=["wav", "mp3", "m4a", "flac"])
|
| 155 |
|
| 156 |
if uploaded_file is not None:
|
|
@@ -171,7 +186,7 @@ def main():
|
|
| 171 |
|
| 172 |
st.subheader("📌 Summary")
|
| 173 |
st.write(results['summary'])
|
| 174 |
-
|
| 175 |
except Exception as e:
|
| 176 |
st.error(f"An unexpected error occurred: {str(e)}")
|
| 177 |
|
|
@@ -184,4 +199,4 @@ def main():
|
|
| 184 |
pass
|
| 185 |
|
| 186 |
if __name__ == "__main__":
|
| 187 |
-
main()
|
|
|
|
| 6 |
from transformers import pipeline
|
| 7 |
import torch
|
| 8 |
import soundfile as sf
|
| 9 |
+
import json # For JSON response
|
| 10 |
|
| 11 |
# Page configuration
|
| 12 |
st.set_page_config(page_title="Audio Processing App", layout="wide")
|
|
|
|
| 25 |
|
| 26 |
models = {
|
| 27 |
'transcriber': pipeline("automatic-speech-recognition",
|
| 28 |
+
model="openai/whisper-tiny.en",
|
| 29 |
+
device=device,
|
| 30 |
+
chunk_length_s=30), # Process in 30-second chunks
|
| 31 |
'summarizer': pipeline("summarization",
|
| 32 |
+
model="sshleifer/distilbart-cnn-12-6",
|
| 33 |
+
device=device)
|
| 34 |
}
|
| 35 |
return models, None
|
| 36 |
except Exception as e:
|
|
|
|
| 149 |
st.session_state.models_loaded = True
|
| 150 |
st.session_state.models = models
|
| 151 |
|
| 152 |
+
# Check if an audio file was uploaded via API
|
| 153 |
+
query_params = st.experimental_get_query_params()
|
| 154 |
+
if "file" in query_params:
|
| 155 |
+
audio_file_path = query_params["file"][0] # This should be the path to the uploaded audio file
|
| 156 |
+
|
| 157 |
+
# Process the audio
|
| 158 |
+
results = process_audio(audio_file_path, st.session_state.models)
|
| 159 |
+
|
| 160 |
+
if results:
|
| 161 |
+
# Return the results as JSON
|
| 162 |
+
st.json(results)
|
| 163 |
+
return # Exit the function early to avoid further processing in the UI
|
| 164 |
+
|
| 165 |
+
# Normal Streamlit UI flow for file upload
|
| 166 |
st.write("Upload an audio file of your lecture (supported formats: WAV, MP3, M4A, FLAC)")
|
| 167 |
st.write("Note: Processing long audio files may take several minutes.")
|
| 168 |
+
|
| 169 |
uploaded_file = st.file_uploader("Choose a file", type=["wav", "mp3", "m4a", "flac"])
|
| 170 |
|
| 171 |
if uploaded_file is not None:
|
|
|
|
| 186 |
|
| 187 |
st.subheader("📌 Summary")
|
| 188 |
st.write(results['summary'])
|
| 189 |
+
|
| 190 |
except Exception as e:
|
| 191 |
st.error(f"An unexpected error occurred: {str(e)}")
|
| 192 |
|
|
|
|
| 199 |
pass
|
| 200 |
|
| 201 |
if __name__ == "__main__":
|
| 202 |
+
main()
|