Shabbir-Anjum commited on
Commit
b457f96
·
verified ·
1 Parent(s): ec7471c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -4
app.py CHANGED
@@ -1,9 +1,17 @@
1
  import streamlit as st
2
  from transformers import pipeline
 
 
3
 
4
  # Load the audio classification pipeline
5
  audio_classification_pipeline = pipeline("audio-classification", model="MIT/ast-finetuned-audioset-10-10-0.4593")
6
 
 
 
 
 
 
 
7
  def classify_audio(audio_file):
8
  # Perform audio classification
9
  results = audio_classification_pipeline(audio=audio_file)
@@ -14,19 +22,21 @@ def main():
14
 
15
  # File uploader for audio file
16
  st.subheader('Upload Audio File:')
17
- audio_file = st.file_uploader("Choose a WAV file", type=["wav"])
18
 
19
  # Check if audio file is uploaded
20
  if audio_file is not None:
21
- st.audio(audio_file, format='audio/wav')
22
 
23
  # Button to classify audio
24
  if st.button('Classify'):
25
  with st.spinner('Classifying...'):
26
- # Perform classification
27
- results = classify_audio(audio_file)
 
28
  st.success('Classification complete!')
29
  st.write("Prediction:", results)
30
 
31
  if __name__ == '__main__':
32
  main()
 
 
1
  import streamlit as st
2
  from transformers import pipeline
3
+ from pydub import AudioSegment
4
+ import io
5
 
6
  # Load the audio classification pipeline
7
  audio_classification_pipeline = pipeline("audio-classification", model="MIT/ast-finetuned-audioset-10-10-0.4593")
8
 
9
+ def convert_mp3_to_wav(audio_bytes):
10
+ # Convert MP3 bytes to WAV format
11
+ audio = AudioSegment.from_file(io.BytesIO(audio_bytes), format="mp3")
12
+ wav_bytes = audio.export(format="wav").read()
13
+ return wav_bytes
14
+
15
  def classify_audio(audio_file):
16
  # Perform audio classification
17
  results = audio_classification_pipeline(audio=audio_file)
 
22
 
23
  # File uploader for audio file
24
  st.subheader('Upload Audio File:')
25
+ audio_file = st.file_uploader("Choose an MP3 file", type=["mp3"])
26
 
27
  # Check if audio file is uploaded
28
  if audio_file is not None:
29
+ st.audio(audio_file, format='audio/mp3')
30
 
31
  # Button to classify audio
32
  if st.button('Classify'):
33
  with st.spinner('Classifying...'):
34
+ # Convert MP3 to WAV and classify
35
+ wav_bytes = convert_mp3_to_wav(audio_file.read())
36
+ results = classify_audio(wav_bytes)
37
  st.success('Classification complete!')
38
  st.write("Prediction:", results)
39
 
40
  if __name__ == '__main__':
41
  main()
42
+