Spaces:
Sleeping
Sleeping
metadata
title: Stella Score Reader
emoji: π’
colorFrom: yellow
colorTo: gray
sdk: docker
pinned: false
stella_score_reader_backend
μΈμ μ 보λ₯Ό μΉ΄λ©λΌλ‘ μ°μ΄ ν¬λ‘ν ν μ€ μ€μ (staff) μ΄λ―Έμ§λ₯Ό μ λ ₯μΌλ‘ λ°μ, λͺ¨λ°μΌ μ±μ΄ λ°λ‘ μ¬μ/νΈμ§ν μ μλ λ¨μΌ λ©λ‘λ JSONμ λ°ννλ OMR API μλ²μ λλ€.
νμ¬ λͺ©νλ λ¨μΌ μλν¬μΈνΈ POST /analyze(v1 λ¨μΌ μ€νν μ€ν)λ₯Ό μμ μ μΌλ‘ μ 곡νλ κ²μ
λλ€.
ν΅μ¬ λͺ©ν
- μ λ ₯: μ΄λ―Έμ§λΉ μ€μ ν μ€λ§ μλ€κ³ κ°μ ν ν¬λ‘ μ¬μ§ 1μ₯ λλ μ¬λ¬ μ₯(μμλλ‘ μ΄μ΄μ§)
- μμ리νΒ·μ‘°νλ μλ € λκ° μ μμΌλ―λ‘,
multipartνλscore_context(JSON) λ‘ λ°λμ μ λ¬ - μΆλ ₯:
melody.eventsνλλ‘ λ³ν©λ JSON(λ€μ₯μ΄λ©΄ μκ°μΆλ§ μ΄μ΄ λΆμ). MusicXML λ±μ API μλ΅μ ν¬ν¨νμ§ μμ - νμ(μ΅λ 2μ±λΆ)μ μ΅κ³ μμΌλ‘ μ€μ¬ λ©λ‘λμ λ°μ
μμΈν κ³μ½μ docs/analyze-api-spec.mdλ₯Ό λ°λ¦
λλ€.
λ¬Έμ
- API/λ°μ΄ν° λͺ¨λΈ μμΈ:
docs/analyze-api-spec.md - νλ‘ νΈ μ°λ κ°μ΄λ(νλ μ¬μ ):
docs/frontend-integration-guide.md - μλ΅ JSON νν μμ(μ°Έκ³ μ©):
docs/analyze-response-format-examples.json
κΈ°μ μ€ν
- Python 3.11+
- FastAPI
- OpenCV (
opencv-python-headless) - NumPy
- PyTorch(CPU) +
transformers(κΈ°λ³Έ λͺ¨λΈ: Flova/omr_transformer) - μ μ²λ¦¬:
score_preprocess.py(κΈ΄ λ³ μν μΆμ, LAB μ‘°λͺ μ κ·ν, CLAHE, bilateral, μκ°λ λ°μ€ν λ±; bboxλ μ λ‘λ μλ³Έ ν½μ λ‘ μλ³ν) - μ€μ κ΅μ 보μ :
staff_rectify.py(μνλ§ + λ€νμ μΈλ‘remap) - νκ²½ λ³μ:
STELLA_OMR_DISABLE=1β μ κ²½λ§ λκ³ OpenCVλ§(λ‘컬·ν μ€νΈ)STELLA_OMR_MODEL_IDβ λ€λ₯Έ HF λͺ¨λΈ IDSTELLA_OMR_MAX_LENGTHβ Donutgenerateν ν° μν(κΈ°λ³Έ1024, λͺ¨λΈdecoder.max_lengthλ³΄λ€ μμ§ μκ² λ°μ)STELLA_OMR_MAX_LENGTH_CAPβ μ κ°μ νλ μν(κΈ°λ³Έ2048, OOMΒ·μ§μ° μν)STELLA_MAX_EVENTS_PER_STAFFβ μλ΅μ λ£λ μ μ΄λ²€νΈ κ°μ μν per μ€νν(κΈ°λ³Έ256, μμ 64μμ μν₯)STELLA_PREPROCESS_MAX_SIDEβ λ€μ΄μ€μΌμΌ μν(κΈ°λ³Έ4096, μ΅μ 512λ‘ ν΄λ¨ν)STELLA_SKIP_DESKEW=1β λ°μ€ν λΉνμ±ν
λΉ λ₯Έ μμ
pip install -r requirements.txt
uvicorn main:app --reload
μλ² μ€ν ν Swagger UI:
http://127.0.0.1:8000/docs
νμ¬ κ΅¬ν μν
GET /: ν¬μ€ 체ν¬POST /analyze(v1):- νμ
score_context+ λ¨κ±΄/λ€κ±΄file/files+ μ νoptions - μ μ²λ¦¬ β λ¨μΌ μ€νν κ²μ¦(μ νν 1μ€) β
staff_rectifyβFlova/omr_transformerβ μ€ν¨ μ OpenCV λ ΈνΈν€λ ν΄λ°± - μλ΅:
melody,segment_map,timeline,score_context(μμ½),meta.pipeline_mode=single_staff_v1
- νμ
ꡬν κΈ°μ€μ docs/analyze-api-spec.mdλ₯Ό λ°λ¦
λλ€.