Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import requests | |
| from tensorflow import keras | |
| def get_mfccs(filename): | |
| # Load the file to send | |
| files = {'audio': open(filename, 'rb')} | |
| # Send the HTTP request and get the reply | |
| reply = requests.post("https://librosa-utils.herokuapp.com/mfcc_batch", files=files) | |
| # Extract the text from the reply and decode the JSON into a list | |
| pitch_track = reply.json() | |
| print(np.shape(pitch_track['mfccs'])) | |
| return np.array(pitch_track['mfccs']) | |
| def inference(filename, model_path='gtzan10_lstm_0.7179_l_1.12.h5'): | |
| model = keras.models.load_model(model_path) | |
| mapping = ['blues', | |
| 'classical', | |
| 'country', | |
| 'disco', | |
| 'hiphop', | |
| 'jazz', | |
| 'metal', | |
| 'pop', | |
| 'reggae', | |
| 'rock'] | |
| mfcc = get_mfccs(filename) | |
| pred = model.predict(mfcc) | |
| genre = [mapping[i] for i in np.argmax(pred, axis=1)] | |
| counter_ = {} | |
| for i in genre: | |
| counter_[genre.count(i)] = i | |
| m = max(counter_) | |
| return f"Genre: {counter_[m]}, Confidence: {max(counter_)/pred.shape[0]}" | |