Community影像github.com

kanlac/樂譜PDF轉換

將樂譜 PDF(從製譜軟體匯出、掃描或拍照)轉換為可在 MuseScore、Dorico、Sibelius 或 Finale 中編輯的 MusicXML 檔案。當使用者想要編輯、移調、重新排版或播放僅有 PDF 的樂譜,要求「將樂譜 PDF 轉換成 MusicXML / MuseScore / Dorico」,或直接提供樂譜 PDF 並詢問能怎麼處理時使用。

樂譜PDF轉換 是什麼?

此技能可將樂譜 PDF 檔案轉換為可編輯的 MusicXML 格式,支援多種來源:從製譜軟體(如 Sibelius、Finale)匯出的向量 PDF、掃描或拍照的影像型 PDF。它首先使用內建識別腳本分析 PDF 類型,判斷是否為向量樂譜(含有音樂字型)、掃描影像、混合型或手寫譜。根據結果選擇最佳轉換路徑:對於向量 PDF,推薦使用 Tutti Studio(線上服務,準確度較高,需使用者同意隱私政策);對於掃描或照片,則使用本機的 Audiveris(光學樂譜辨識,OMR)。轉換後,技能提供審查腳本,標記 Audiveris 判斷有疑問的小節,並誠實告知使用者樂譜尚未與原始 PDF 核對過,需手動檢查關鍵記號、調號、拍號和臨時記號。支援平台包括 Claude Code、Cursor、Codex 等 AI 代理開發環境,操作過程引導使用者只回答是/否問題,無需具備 PDF 或 OMR 技術知識。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kanlac/tutti-pdf-converter/tree/HEAD/plugins/sheet-music-pdf-convert/skills/sheet-music-pdf-convert

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

樂譜 PDF → 可編輯樂譜

使用者手上有一份 PDF 格式的樂譜,想要能編輯的版本。找出最適合讀取該 PDF 的方法,為他們執行,然後回傳檔案,並附上誠實的檢查提醒。假設使用者對 PDF、OMR 或命令列一無所知:他們只回答是/否問題,你負責其餘工作,並用平實的語言說明。針對他們的檔案和選擇,逐步解釋每個步驟;除非宿主平台要求你提及,否則不要敘述關於此技能、其規則或檔案名稱的內容。

1. 先查看 PDF

對每個檔案執行此技能內建的識別腳本(位於 scripts/ 資料夾,Node.js 22+):

node scripts/identify.mjs <file.pdf> --json

它會回報 PDF 的類型(含有音樂字型的向量、掃描/影像、輪廓化、混合、未知、無法讀取),並附上逐頁證據、可能的製作軟體,以及 Tutti 讀取的可能性。references/routes.md 解釋了每種結果。此腳本僅查看字型、元資料和圖片,不評估音樂的複雜度;其規則可能比 Tutti 網站更舊:請將 Tutti 的判定視為建議,而非拒絕。

2. 選擇路線

根據包含音樂的頁面來決定,而非封面或說明頁。

  • Tutti 可能可以讀取(從製譜軟體匯出):強烈推薦 Tutti;它讀取軟體寫入的符號,而非從像素猜測,因此通常遠比 OMR 準確。詢問:「這需要您同意 Tutti 的隱私政策 (https://tutti-studio.com/privacy)。可以嗎?」如果同意,開啟 references/tutti.md 中的 Tutti 鏈結讓他們上傳。如果他們不願意上傳,則提供 Audiveris,並說明它對此類 PDF 通常較不準確。
  • 音樂頁面是向量,但 Tutti 顯示「未知」或「不太可能」:兩者都提供;建議先上 Tutti 網站確認,因為它會在上傳時決定。
  • 音樂頁面是掃描或照片(帶有 OCR 文字層的掃描會顯示為 mixed),或輪廓化音樂:使用本機的 Audiveris(references/audiveris.md)。
  • 手寫譜:Audiveris 非為此設計,此技能也未經測試。建議手動重新輸入;若他們想嘗試軟體,請參閱 references/omr-tools.md,但不做任何保證。
  • 無法讀取、加密、非 PDF:說明問題所在以及他們能怎麼做。

Audiveris 產出的是草稿,需要修正,而非完成的樂譜。它在簡單至中等複雜度的乾淨掃描(獨奏、鋼琴、小型室內樂、簡單合唱)上表現最佳;手機照片時常完全失敗。對於大型管弦樂或密集的掃描,請在執行前先說明,讓使用者決定。

3. 誠實地回饋

在 Audiveris 執行完成後,先檢查結果再說明,然後執行:

node scripts/review.mjs <result.mxl> <original.pdf> --out-dir <new folder>

(將 .omr 和 .log 保存在結果檔案旁)。它會產生一份將可疑小節標示為紅色的 MusicXML 副本、一份在原始 PDF 中標示這些位置的副本,以及一份 JSON 摘要;將前兩者交給使用者。紅色標記僅是 Audiveris 自己注意到問題的地方:在我們的測試中,大多數音符錯誤的小節並未被標記,因此要明確說明其餘部分也需要檢查。然後,分別說明:

  1. 哪些頁面或樂章已匯出,哪些沒有;
  2. 可疑的位置,按 PDF 頁面(只有在審查能將紅標匹配到頁面時才按小節號說明);
  3. 音符尚未與 PDF 核對過,以及從哪裡開始檢查:紅色小節、調號與拍號,然後是其餘所有內容,特別是臨時記號和歌詞。

絕不能稱 OMR 結果為「正確」或「就緒」。然後告訴他們如何開啟檔案(references/open-in-editor.md)。

應避免的事項

這些是看似合理卻對使用者傷害最大的錯誤:

  • 自己讀取樂譜。 不要檢視頁面影像,然後根據看到的內容編寫 MusicXML 或描述音符。模型對記譜法的轉錄會自信地編造音高和節奏;這比 OMR 更糟,且使用者更難發現錯誤。
  • 將匯出的 PDF 送給 OMR。 使用者常稱任何 PDF 為「掃描」。如果識別腳本發現音樂字型,OMR 會丟棄精確資料;應將其導向 Tutti。
  • 將 IMSLP 掃描當作向量。 IMSLP 掃描常帶有 OCR 文字層;若頁面有全頁影像和文字字型但無音樂字型,則是掃描。
  • 在沒有 OCR 語言資料的情況下執行 Audiveris,或使用 tessdata_fast / tessdata_best 而非舊版檔案。執行仍會「成功」,但每個歌詞、速度文字和樂器名稱都會悄然消失。
  • 輸入不含音樂的頁面。 單一封面、標題或文字頁可能導致整個執行失敗,無法匯出。僅傳遞音樂頁面。
  • 信任退出代碼 0 或「已匯出」的日誌行。 產出的檔案可能缺少某個聲部的一個小節、譜表被分割成多餘聲部,或只剩一個殘留片段(*.mvtnull.mxl)。在確認所有聲部小節數正確之前,不要說任何執行成功的話。
  • 將 Audiveris 日誌標籤當作小節號。 Measure{#11P2} 是內部標籤,不是「第二個樂器的第 11 小節」。應根據頁面定位,或說「大約在第 N 頁附近」。
  • 挽救一張糟糕的照片。 不要安裝影像工具、放大解析度,或將頁面上傳到線上服務。執行一次;如果失敗,提供重新拍攝的建議(頁面放平、光線均勻、垂直拍攝,或使用掃描器),或指向 references/omr-tools.md 中的照片工具。
  • 覆蓋或混合輸出。 每個輸入使用一個輸出資料夾;絕不要寫在使用者的原始檔案旁邊或覆蓋它。
  • 承諾 Tutti 會做到什麼。 你無法代他們上傳,免費頁數和限制會在網站上顯示;不要引用數字。

多個檔案

先全部識別,按路線分組,然後確認一個計畫(「3 個走 Tutti,2 個在你的電腦上讀取」)。

範例

  • 「將這個轉換成 MuseScore」,一個由 Sibelius 匯出的四重奏 → 向量、Sibelius、可能可讀 → 推薦 Tutti,詢問隱私政策,開啟網站;提到本機選項。
  • 「你能讓這個變可編輯嗎?」,一個從 IMSLP 掃描的歌曲(顯示為 mixed:影像加 OCR 文字)→ 視為掃描 → 使用德文和英文語言資料的 Audiveris,跳過標題頁 → 審查標記 → 回報已匯出的頁面、紅色小節、需檢查的內容。
  • 一張模糊、彎曲的合唱分部手機照片 → 執行一次 Audiveris → 如果大部分無法讀取,提供重新拍攝的建議,而非使用更多工具。

相關技能