feat: import midi file

This commit is contained in:
josc146
2023-12-10 22:38:31 +08:00
parent b5623cb9c2
commit 9b7b651ef9
5 changed files with 166 additions and 47 deletions

View File

@@ -1,6 +1,6 @@
import io
import global_var
from fastapi import APIRouter, HTTPException, status
from fastapi import APIRouter, HTTPException, UploadFile, status
from starlette.responses import StreamingResponse
from pydantic import BaseModel
from utils.midi import *
@@ -33,6 +33,16 @@ def text_to_midi(body: TextToMidiBody):
return StreamingResponse(mid_data, media_type="audio/midi")
@router.post("/midi-to-text", tags=["MIDI"])
async def midi_to_text(file_data: UploadFile):
vocab_config = "backend-python/utils/midi_vocab_config.json"
cfg = VocabConfig.from_json(vocab_config)
mid = mido.MidiFile(file=file_data.file)
text = convert_midi_to_str(cfg, mid)
return {"text": text}
class TxtToMidiBody(BaseModel):
txt_path: str
midi_path: str