Spaces:
Sleeping
Sleeping
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() | |