maham-ai-developer's picture
Update app.py
bf43062 verified
Raw
History Blame Contribute Delete
1.55 kB
import gradio as gr
import joblib
import pandas as pd
model = joblib.load("spotify_tree_model.pkl")
def predict_hit(danceability, energy, loudness, speechiness, acousticness,
instrumentalness, liveness, valence, tempo):
data = pd.DataFrame([[danceability, energy, loudness, speechiness,
acousticness, instrumentalness, liveness, valence, tempo]],
columns=['danceability', 'energy', 'loudness', 'speechiness',
'acousticness', 'instrumentalness', 'liveness', 'valence', 'tempo'])
pred = model.predict(data)[0]
if pred == 1:
result = "🔥 Hit Song!"
confidence = 100.0
else:
result = "Not a Hit"
confidence = 100.0
return f"{result}\nConfidence: {confidence:.1f}%"
demo = gr.Interface(
fn=predict_hit,
inputs=[
gr.Slider(0, 1, step=0.01, label="Danceability"),
gr.Slider(0, 1, step=0.01, label="Energy"),
gr.Slider(-60, 0, step=0.1, label="Loudness"),
gr.Slider(0, 1, step=0.01, label="Speechiness"),
gr.Slider(0, 1, step=0.01, label="Acousticness"),
gr.Slider(0, 1, step=0.01, label="Instrumentalness"),
gr.Slider(0, 1, step=0.01, label="Liveness"),
gr.Slider(0, 1, step=0.01, label="Valence"),
gr.Slider(50, 200, step=1, label="Tempo")
],
outputs=gr.Textbox(label="Prediction"),
title="Spotify Hit Predictor",
description="Enter song audio features to predict if it will be a hit"
)
demo.launch()