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