Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy | |
| import pathlib | |
| import tensorflow as tf | |
| from PIL import Image | |
| from music21 import stream,chord,duration,clef | |
| myModel = tf.keras.models.load_model('my_model.h5') | |
| class_names = ['Crash', | |
| 'Crash + KickBass', | |
| 'Crash + Snare', | |
| 'Crash + Snare + KickBass', | |
| 'Crash + Tom', | |
| 'Crash + Tom + KickBass', | |
| 'Hihat', | |
| 'Hihat + KickBass', | |
| 'Hihat + Snare', | |
| 'Hihat + Snare + KickBass', | |
| 'Hihat + Tom', | |
| 'Hihat + Tom + KickBass', | |
| 'KickBass', | |
| 'Ride', | |
| 'Ride + KickBass', | |
| 'Ride + Snare', | |
| 'Ride + Snare + KickBass', | |
| 'Ride + Tom', | |
| 'Ride + Tom + KickBass', | |
| 'Snare', | |
| 'Snare + KickBass', | |
| 'Snare + Tom', | |
| 'Snare + Tom + KickBass', | |
| 'Tom', | |
| 'Tom + KickBass'] | |
| def PredictionToNotation(predict): | |
| score = stream.Score() | |
| drum_part = stream.Part() | |
| drum_part.id = 'Drums' | |
| for prediction in predict: | |
| n=chord.Chord(PredictionToChord(prediction)) | |
| n.duration = duration.Duration(0.5) | |
| drum_part.append(n) | |
| drum_part.clef = clef.PercussionClef() | |
| score.insert(0, drum_part) | |
| score.write('lily.png',"notation") | |
| return Image.open('notation.png') | |
| def PredictionToChord(prediction): | |
| noteToChord = [] | |
| drumComponent = {"Hihat":"A4","Snare":"D4","KickBass":"G3","Crash":"B4","Tom":"E4","Ride":"G4"} | |
| for component in prediction.split(" "): | |
| if(component in drumComponent): | |
| noteToChord.append(drumComponent[component]) | |
| return noteToChord | |
| def transcribe(AudioFile): | |
| return PredictionToNotation(["Hihat + Snare"]) | |
| gr.Interface( | |
| fn=transcribe, | |
| inputs=gr.Audio(type="filepath"), | |
| outputs="image").launch() |