資源採譜Andrew Carlins•閱讀時間:9 分鐘

AI 怎麼把錄音寫成樂譜?

AI 採譜會聽錄音,把裡面的音符寫下來。從輸入音訊到產生樂譜,中間到底做了什麼?哪些錄音處理得好,哪些還有困難?

AI 怎麼把錄音寫成樂譜?

AI 採譜把錄音裡的音符寫出來,整個過程分成 3 個步驟。音訊先轉成一張顯示頻率的圖,模型讀取這張圖,預測有哪些音符,再把音符對齊拍子,輸出成樂譜與 MIDI。模型在訓練時看過數千份錄音。現在的辨識結果比以前好,是因為中間最難的辨識工作交給了神經網路,讓它從例子學習音符的樣貌,取代過去由人逐條寫好的規則。

從聽音到寫譜

人靠耳朵採譜時,會先聽出一個音,在樂器上找到它,判斷持續多久,再寫下來。一首歌可能要重複這個動作數千次。AI 做的也是這件事,只是速度快得多,還能一次處理許多音符。它把聲音轉成能分析的資料,從中辨識音符,再換成我們讀得懂的記譜符號。近幾年的進展,大多發生在辨識音符這個環節。

步驟 1:把聲音轉成圖像

數位錄音其實是一長串數字,記錄喇叭振膜該怎麼振動,每秒有數萬個數值。光看這串數字,看不出旋律。軟體會先做一次轉換,算出每個時刻、各個音高有多少能量。產生的聲譜圖像一張熱度圖,時間由左往右走,頻率由下往上升,亮處表示當下響起的音高。

這和鋼琴捲軸呈現的圖像大致相近,比原始波形更接近音樂的樣子。持續的音會形成一條橫向亮紋,和弦是一疊亮紋,敲一下鼓則會在許多頻率上留下一道短暫的直向能量痕跡。聲音轉成這樣的圖像後,下一步就比較容易處理,因為受過圖像訓練的模型有了讀得懂的資料。

步驟 2:模型找出音符

從聲譜圖讀出音符,比看起來難。一個鋼琴音不會只留下一條清楚的線,還會有基頻和一連串更高的泛音。幾個音一起響起時,泛音就會交疊在一起。吉他的低音 E 和高八度的 E 有部分泛音重疊。採譜最難判斷的,就是哪些亮處代表實際演奏的音符,哪些只是其他音符的泛音。

現在的系統用神經網路處理這個問題,訓練資料包含大量錄音,以及與錄音精確對應的音符。以鋼琴來說,有些樂器能同時記錄音訊和每次按鍵的細節,因此研究者能取得數千場演奏,把錄音和實際彈出的音符完全對齊。神經網路從這些資料學會分辨彈出的音和它的泛音,也學會辨認起音的樣子,以及聲音如何逐漸衰減。它通常會針對每個音高、每小段時間,預測音符是否剛開始、是否仍在發聲,以及聲音有多大。把這些預測接起來,就得到一份音符事件清單,每個事件都有音高、開始時間、結束時間和力度值。

模型從例子中學會這些判斷,省去了人工編寫「忽略第 3 諧波」這類規則的工作。其他樂器的訓練資料越多,同樣的方法就越能用在那些樂器上;結果持續改善,也不需要有人重新改寫判斷邏輯。不同錄音為什麼會有不同的辨識結果,在為什麼 AI 採譜的準確度會有差異裡有更詳細的說明。

步驟 3:把音符整理成讀得懂的樂譜

有了每個音符的精確時間,就足以產生 MIDI,也能用鋼琴捲軸顯示。不過,要寫成樂譜,還得知道速度、拍子,並把音符整理成常見的節奏時值。速度是每分鐘 120 拍時,人彈出的四分音符不會剛好持續 500 毫秒。軟體得先找出錄音背後的拍子,判斷小節線應該落在哪裡,再把每個音符的時間調整成最接近、也合理的時值,例如四分音符或八分音符。這個步驟叫「量化」。量化處理得好,樂譜就容易讀;處理不好,譜上可能塞滿難以演奏的三十二分音符。

軟體還得按照演奏者習慣的方式記譜,例如哪些音交給右手、哪些交給左手,升降記號怎麼寫,休止符放在哪裡。整理好的結果會依用途輸出成不同格式:PDF 用來列印,MIDI 檔案用在數位音訊工作站(DAW),MusicXML 檔案則能在記譜軟體裡開啟。如果節奏或左右手的分配有誤,就在這個階段調整。修正採譜錯誤通常只需要簡單編輯,不必整份重做。

哪些錄音處理得好,哪些比較困難

鋼琴獨奏是 AI 採譜最擅長的領域。這類訓練資料最豐富,聲音特性也比較規律,好的模型能從清楚的錄音中抓到大多數音符。從單一樂器的錄音中辨識同時響起的多個音,叫「複音採譜」,現在也已經處理得不錯。鋼琴的情況在鋼琴複音採譜解析裡有詳細說明。

困難通常出在幾種情況。整個樂團錄成一條混合音軌時,多種樂器同時佔據相同的頻率範圍,模型得把交疊的聲音分開。強烈的失真、濃重的殘響和品質不佳的錄音,都會讓聲譜圖變得模糊,準確度也會下降。非常快的段落和很小聲的音符也容易漏掉。這些情況下,產出的初稿仍有用,只是需要你檢查,不能當作已經完成、不用檢查的樂譜。AI 採譜準確度用數據說明了辨識結果大致能有多準。

怎麼讓採譜結果更好

後面的步驟都依靠第一步產生的資料,所以你最能掌握的,就是錄音本身。來源越清楚,聲譜圖就越清楚,模型也越容易正確辨識音符。從你找得到的歌曲版本裡,挑選錄音最清楚的那個。告訴採譜工具錄音裡是哪種樂器,讓它使用對應的模型,再快速檢查一次初稿。在 Songscription 裡,上傳檔案或貼上連結後,AI 就會完成前面說的 3 個步驟,產生鋼琴捲軸和樂譜。匯出前,你能直接在瀏覽器裡播放、放慢、移調和編輯。AI 負責辨識錄音裡的音符,你負責編修,最後怎麼寫由你決定。

常見問題

AI 採譜是怎麼運作的?

整個過程大致分成 3 個步驟。軟體先把音訊轉成聲譜圖,顯示每個時刻有哪些頻率正在發聲。接著,神經網路讀取這張圖,預測音符什麼時候開始、音高是多少、什麼時候結束。它在訓練時看過數千份錄音,每份錄音都有對應的已知音符資料。預測出的音符會再對齊節拍網格,輸出成 MIDI 和五線譜。模型從資料中學會辨識模式,取代了過去由人逐條寫好的規則。資料集包含大量錄音,以及與錄音精確對齊的音符資料。這些資料加上現代神經網路,讓辨識能力有了很大的進步。

AI 採譜準確嗎?

現在處理清楚的單一樂器錄音,準確度已經相當好。鋼琴獨奏尤其如此,模型通常能抓到絕大多數音符。錄音越複雜,準確度就越容易下降:整個樂團混在一起、手機錄音帶有雜訊、殘響很重,或是音符快速交疊,都會增加辨識難度。比較實際的期待,是拿到一份已經整理得不錯的初稿,再由你檢查、修正。還不能期待產出的樂譜完全正確,還是需要人工檢查。

AI 採譜能分辨不同樂器嗎?

從單一樂器的錄音中找出音符,現在的模型處理得不錯,鋼琴或吉他同時彈出的和弦也包含在內。如果多種樂器同時演奏,全部混在同一份錄音裡,要把它們分開就難得多。常見做法是先把錄音拆成分軌音檔,再分別採譜。如果你想要的是整首歌的內容,不需要保留每個獨立聲部,也能直接從整份混音採譜,整理成鋼琴縮編譜之類的精簡編曲。

上傳自己的歌曲錄音,就能看轉出的樂譜,編輯裡面的音符,看看這 3 個步驟實際怎麼運作。

關於作者

Andrew Carlins

作者

Andrew Carlins

Songscription 共同創辦人兼執行長

Andrew 和幾位音樂人在史丹佛一起創辦了 Songscription,因為大家都受夠了想演奏一首歌,卻找不到樂譜的情況。他從小彈鋼琴、吹上低音薩克斯風,也演過音樂劇。雖然已經好幾年沒登台,他倒覺得自己還有兩下子。他的文章聊的是怎麼把錄音裡的歌寫成樂譜。

認識我們的團隊

閱讀更多相同主題的文章。