【要約】楽譜PDFから音符は取り出せるのか——SMuFLとベクターPDFを調べた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、楽譜PDFを解析して自動で臨時記号を付与するツールを開発する際、以下の課題に直面した。
- ・画像認識(OMR)は、計算コストや誤認識のリスクが伴う。
- ・ベクターPDFには、音高や拍といった音楽的な意味構造が保持されていない。
- ・記号の種類と座標のみが残っているため、音楽的な意味の再構成が困難である。
// Approach
開発者は、画像認識ではなく、PDF内のフォント情報と図形を直接解析する手法を採用した。
- ・SMuFL規格を利用し、音楽記号のUnicodeコードポイントを特定する。
- ・PyMuPDFを用いて、PDF内のグリフの種類とページ上の座標を抽出する。
- ・記号の座標と五線の位置関係から、音楽的な意味を再構成する。
// Result
開発者は、MuseScoreから出力したPDFを用いて、記号と座標の抽出実験を行った。
- ・SMuFL準拠フォント(Leland等)から、シャープ等の記号を正確に特定できた。
- ・抽出データとして、記号のコードポイントと中心座標(x, y)を取得できた。
- ・ただし、音高や小節の特定には、別途高度な幾何学的解析が必要である。
Senior Engineer Insight
> OMRの誤認識問題を回避する、極めて合理的なアプローチだ。記号の識別精度はフォントに依存するため、非常に高い。しかし、PDFから得られるのは記号の座標のみである。音高や拍を特定するには、五線との位置関係を計算する幾何学エンジンが不可欠だ。実装の難所は、記号抽出ではなく、その後の空間解析ロジックに移る。