INTRODUCTION

一般來說,對學習音樂的初學者來說,最先遇到的瓶頸是無法單純從閱讀圖像式的樂譜準確地判斷旋律、節奏、升降等樂曲的特色,以至於對樂曲的演繹方式無從下手。在體認到音樂初學者受到圖像式樂譜限制的不便之後,本專題希望可以打造一個讀取輸入的樂譜圖像後,能自動播放、輸出音樂的平台。如此一來,使用者就可以用聽覺直接準確地了解樂曲的性質特色,進而了解音樂播出來的效果。

考量到本專題的研究需求,我們使用了Jupyter Notebook這個平台。 Jupyter Notebook的前身為IPython Notebook,是一個互動式的計算介面。支持40 多種程式語言,Python的程式碼可以直接在此介面執行。同時結合程序處理以及輸出展示。對於需要結合數學理論、實際計算的使用者,可以透過Jupyter Notebook和使用者互動。

在本專題中,我們將樂譜二值化以後,進行圖片的切割,並移除譜上的五線譜條。藉由黑白像素判斷音符各部份的位置,搜集資訊後,把音符的各部份整合起來,最後以MIDI輸出播放音樂。(FIG.1 為我們專題架構) 而輸出結果,如FIG.2 所示,紅色虛線框框為音符為符頭、休止符、升降記號、譜記號的位置,而藍色字的部分是表示出辨識的結果(如FIG.3 所示)。


Fig. 1


Fig. 2


Fig. 3

心得感想

曾子芸:

剛開始選擇這個專題的時候,純粹是因為看到五線譜辨識,和音樂有關,覺得有些興趣,後來開始暸解細部時發現這個專題的開發環境是建立在Python的Jupyter notebook上面。而我那時從來沒有碰過python這個語言,因此我花了一個暑假摸熟這個語言,且我們所做的專題是建立在李豪韋學長的碩士論文基礎上,因此又花了一學期了解學長的演算法。剩下的一學期開始做音樂輸出的部分以及樂譜的整合。整個過程中我學會了新的一種語言以及解決問題的能力甚至是與教授溝通的能力。在這一年中,遇到了許多困難但也學到了很多,是一個非常珍貴的經驗。

黃瑋玲:

剛開始接手這項專題時,其實對於學長做的系統只有粗略的理解,並且連Python的使用以及Jupyter Notebook的介面都是從頭摸索,因此花了很多時間建立各種觀念,也第一次學著閱讀論文並從線上搜尋相關所需的資料庫。雖然過程中有過各種小挫折,曾經也陷入一整個月都無法有所進展的困境,但跟我的兩位專題夥伴一起討論彼此的發現,並與教授開會發表進度,這些都是我學習的時刻。

或許我們一年下來的專題進度遠遠不如預期,中間甚至一度萌生放棄的念頭,但在教授的建議下我們稍微轉換了方向,和夥伴們的合作也越來越上手,使得我們在最後三個月漸入佳境,能看到我們努力的成果呈現在眼前,真的是件很有成就感的事,感謝一路上幫助我們的教授與學長,讓我們在實作專題的過程收穫滿滿,也謝謝我的兩位夥伴,有她們一起才能在每次面臨困境時都迎刃而解。

江昀軒:

在決定要做這個專題的時候,學長有先展示給我們看過他做的內容,當時對於承接並精進這個系統只有粗略的概念。透過老師一步一步的帶領,我們先熟悉了語言和介面環境,再針對要加強的部份深入了解系統原本的演算法。因為專題進行的時間有限,我們便以輸出音樂為目標,鎖定幾項重點讓辨識完成的樂譜能夠成為midi檔案播放。研究方法有很多種,沒有一定的步驟,只能一邊嘗試一邊評估效果,才能確保我們往對的方向前進。指導教授的引導是專題研究的核心,老師豐富的經驗總是能夠在我們抓不到方向的時候,釐清我們目前的困惑之處,再給我們許多意見,讓我們逐步修正自已的不足和盲點。當我們遇到瓶頸時,老師也會給我們很多可行的方式,希望我們透過合作和摸索克服困難。進行了一年的專題研究,讓我對於鎖定釐清問題,一直到設法解決問題的方式都有新的體悟。