Spaces:
Sleeping
Sleeping
| from math import log2, pow | |
| import os | |
| import numpy as np | |
| from scipy.fftpack import fft | |
| import basic_pitch | |
| import basic_pitch.inference | |
| from basic_pitch import ICASSP_2022_MODEL_PATH | |
| from tempfile import NamedTemporaryFile | |
| import gradio as gr | |
| def transcribe(audio_path): | |
| # model_output, midi_data, note_events = predict("generated_0.wav") | |
| model_output, midi_data, note_events = basic_pitch.inference.predict( | |
| audio_path=audio_path, | |
| model_or_model_path=ICASSP_2022_MODEL_PATH, | |
| ) | |
| with NamedTemporaryFile("wb", suffix=".mid", delete=False) as file: | |
| try: | |
| midi_data.write(file) | |
| print(f"midi file saved to {file.name}") | |
| except Exception as e: | |
| print(f"Error while writing midi file: {e}") | |
| raise e | |
| return gr.DownloadButton( | |
| value=file.name, | |
| label=f"Download MIDI file {file.name}", | |
| visible=True) | |
| with gr.Blocks() as demo: | |
| transcribe_button = gr.Button("Transcribe") | |
| audio = gr.Audio("audio", type="filepath") | |
| d = gr.DownloadButton("Download the file", visible=False) | |
| transcribe_button.click(transcribe, inputs=[audio], outputs=d) | |
| if __name__ == "__main__": | |
| demo.launch() | |