--- title: PMI Calculator emoji: 🎼 colorFrom: red colorTo: blue sdk: gradio sdk_version: 6.19.0 app_file: app.py pinned: false --- # PMI Calculator (ZeroGPU) Automated Percent Melodic Identity (PMI) for music copyright analysis, running on ZeroGPU (Hugging Face's free on-demand GPU). Pipeline: upload audio → pick a segment → Demucs vocal separation → **YourMT3+** transcription (GPU) → tempo-driven post-processing → key estimation + snapping → out-of-key fragment regularization → human revision in the editor → key confirmation → Needleman–Wunsch alignment → PMI. Architecture: a `gradio.Server` app (a FastAPI app with Gradio's API engine on top). The custom HTML editor is served at `/`; the GPU transcription is a `@spaces.GPU` function exposed as a Gradio API endpoint and called from the browser via `@gradio/client` (required for ZeroGPU auth). Key analysis and PMI are plain CPU FastAPI routes. Transcription model: [YourMT3+](https://huggingface.co/spaces/mimbres/YourMT3) (YPTF.MoE+Multi, noPS). Vocal separation: [Demucs](https://github.com/facebookresearch/demucs). PMI methodology: Savage et al.