• 沒有找到結果。

結果與系統功能範例分析

我們透過本文所提出的系統架構進行自動作曲作為示例,以進一步驗證本系統的可 用性。在資料庫建置方面,採用 eXist 資料庫系統。主要的原因是,eXist 在 XML 方面 係完全依照 W3C 的標準開發,亦支援透過 REST 介面與 AJAX 型態的網頁表單互動及 WebDev 介面直接將 XML 檔案直接存入資料庫當中。因此,我們決定採用 eXist 系統來 建置本自動作曲系統之資料庫,無論在資料儲存的、介面的標準化、未來發展的延展性,

應用程式連接的開放程度,都提供了一套完整的解決方案。綜觀過去自動作曲相關研究,

方式能夠分為內顯式與外顯式兩種,為了能夠與過去已發展之自動作曲系統相容,故系 統實作部分亦參考過去自動作曲方法之分。在系統實作部分,我們以此架構進行內顯方 式自動作曲範例,並以修正式 IEEE 1599 標準整合描述各式資訊。

圖 25 系統設計概念示意圖

本系統在自動作曲的第一步驟,必須先確立成果目標方面。倘若我們希望能夠以自

在本系統的第三步驟為 MusicXML 曲譜搜尋/轉換階段,在我們向以出版流行音樂 歷史悠久的卓著出版社購買上述十首歌之樂譜,並將和弦以及主旋律以打譜軟體輸入,

除了輸出為 PDF 檔案供人讀譜之用,亦轉存為 MusicXML 檔案以供分析。因此,在修 正式 IEEE 1599 標準一般描述層當中則記載該五首歌之異質資訊,包含 MP3 聲音訊號 檔、MIDI 檔案、MusicXML 檔案、PDF 樂譜檔案,其中的 MusicXML 檔案可作為本系 統分析之用。本範例在修正式 IEEE 1599 標準的一般描述層所記載的資訊如圖 27 所示。

<related_files>

<related_file file_name=”愛的鋼琴手.mp3” file_format=”audio_x-mp3” description=”MP3 File” notes=”M1”uuid=”0d5cd8a1-d895-463d-8a3c-0853f73993dc” />

<related_file file_name=”愛的鋼琴手.mid” file_format=”audio_x_midi” description=”MIDI File” notes=”M1”uuid=”47484120-4876-4c41-bcb3-c7d26154a8e7” />

<related_file file_name=”愛的鋼琴手.xml” file_format=”text_xml” description=”XML Score File” notes=”M1”uuid=”68a4c275-3312-4a5b-b4e9-237395def01e” />

<related_file file_name=”愛的鋼琴手_1599.xml” file_format=”text_xml” description=”IEEE 1599 file” notes=”M1”uuid=”7d878ee7-4e5a-4cda-9c2a-ac2f7d54f2df”/>

<related_file file_name=”好朋友.mp3” file_format=”audio_x-mp3” description=”MP3 File”

notes=”M3”uuid=”97a2fb77-e992-4d6f-a889-ed2888dc1a9e” />

<related_file file_name=”好朋友.mid” file_format=”audio_x_midi” description=”MIDI File”

notes=”M3”uuid=”151c2fa5-e8d4-4dbc-b683-b0308d90b995” />

<related_file file_name=”好朋友.xml” file_format=”text_xml” description=”XML Score File”

notes=”M3”uuid=”ab9fb22d-5505-4b1d-8c64-54c66c883ed2” />

<related_file file_name=”好朋友._1599.xml” file_format=” text_xml” description=”IEEE 1599 file” notes=”M3”uuid=”4ddce2c5-d427-49f8-8c18-77cd1efd93ee”/>

<related_file file_name=”K 歌之王.mp3” file_format=”audio_x-mp3” description=”MP3 File”

notes=”M4”uuid=”6849f025-cfac-4034-a8b1-c313f877efe9” />

<related_file file_name=”K 歌之王.mid” file_format=”audio_x_midi” description=”MIDI File”

notes=”M4”uuid=”9ebee785-f0d1-4982-b5b5-1f52b608f8c7” />

<related_file file_name=”K 歌之王.xml” file_format=”text_xml” description=”XML Score File” notes=”M4”uuid=”f2e1284d-8722-4c0e-bfed-f346c0ffe10a” />

<related_file file_name=”K 歌之王.xml” file_format=”text_xml” description=”IEEE 1599 file”

notes=”M4”uuid=”790d907f-5dca-46ae-af5c-98c33713cf64”/>

….

</related_files>

圖 27 自動作曲成果範例:異質資訊記載

我們可以透過分析記載在整合描述檔裡面的 MusicXML 樂譜以取得特徵,而音樂的 基本元素有和聲、旋律、節奏。合聲是整個音樂的基底,旋律是在合聲當中發展,旋律 之間的快慢程度則可以構成節奏,故在此階段則將上述三元素進行分析,以取得基本的 音樂元素特徵。因此在本系統範例的特徵擷取階段,參照[40]所提出的方法,將樂譜當 中的音符視為多個序列(sequence),包含和弦、主旋律音高與音長。在本階段共有兩個 部分,並將其多個序列透過一階馬可夫過程(First-Order Markov Process)處理。

第一個部分為和絃進行的特徵,而第二個部分為主旋律。在進行特徵擷取之前,我 們先將所有蒐集的音樂調性轉到 C 大調,包含和弦進行及其主旋律。在和絃進行的部份,

我們依據樂譜上所記載的和絃作為馬可夫鍊的狀態(States),若和弦發生轉位則視為同個 和弦,忽略其改變的根音。我們即可計算不同和弦之間的變化以求得轉移機率(Transition Probabilities),最後即可得到一個轉移矩陣(Transition Matrix)。在主旋律部分則分為音高 與音長,以和弦為單位進行統計。音高記載方式採 MIDI 音高方式記載,音長則以該音 符在該小節所佔拍數為記載方式,再以前述方式求得轉移矩陣。

圖 28 本系統採用之一階馬可夫鍊示意圖

經過分析過後,會得到兩個轉移機率描述資訊,包含和絃進行與主旋律(音高及音 長),即作為本系統的特徵擷取結果,並於在修正式 IEEE 1599 標準當中的一般描述層當 中記載描述檔案資訊,供後續自動作曲之用,如圖 29 所示。

<structural>

<analysis>

<segment>

<feature_object name=”AC_result”>

<file name=”M1_result.xml” notes=” M1” uuid=”

902658e7-e73d-4811-8eb9-f55750bdb816”/>

<file name=”M2_result.xml” notes=” M2” uuid=”

8dfe70d5-7d15-439f-8cea-b3caaa5ae50b”/>

<file name=”M3_result.xml” notes=” M3” uuid=”

142a6549-a87b-48f4-9f24-8c28046ad202” />

……

</feature_object>

</segment>

</analysis>

</structural>

圖 29 自動作曲成果範例:特徵擷取結果描述資訊

在經過分析該三首音樂後,其和弦與主旋律的特徵描述檔透過 XML 格式記載 (M1_result.xml~ M3_result.xml),再將其 XML 檔案資訊記載在修正式 IEEE 1599 標準的 整合描述檔的一般描述層,其內容模型如圖 30 所示。我們以其中一首音樂的分析結果 為範例說明,其和絃轉換機率如表 6 所示,對應的 XML 描述檔如圖 31 所示。主旋律 音高轉換如表 7 至表 12 所示,其對應的 XML 描述檔如圖 32 所示,音長轉換如表 13 所示,其對應的 XML 描述檔如圖 33 所示。

圖 30 特徵描述檔內容模型

單位:和弦 To

From

C G Am Em Dm F

C 0 0.5 0 0 0.5 0

G 0 0 1 0 0 0

Am 0 0 0 1 0 0

Em 0 0 0 0 0 1

Dm 0 1 0 0 0 0

F 1 0 0 0 0 0

表 6 伍思凱「愛的鋼琴手」之和弦轉換機率

<feature>

<chord>

<markov_instance>

<from>C</from>

<to>C</to>

<pro>0</pro>

</markov_instance>

<markov_instance>

<from>C</from>

<to>G</to>

<pro>0</pro>

</markov_instance>

….

</chord>

</feature>

圖 31 伍思凱「愛的鋼琴手」之和弦轉換機率對應 XML 描述檔案(節錄部分)

單位:MIDI 音高 To

From

67 69 71 72

67 0.5 0.5 0 0

69 0 0 1 0

71 0 0 0 1

72 0 0 1 0

表 7 伍思凱「愛的鋼琴手」:C 和弦下主旋律音高轉換機率

單位:MIDI 音高 To

From

67 69 71 72

67 0.5 0.5 0 0

69 0 0 1 0

71 0 0 0 1

72 0 0 1 0

表 8 伍思凱「愛的鋼琴手」:G 和弦下主旋律音高轉換機率

單位:MIDI 音高 To

From

55 57 59 60

55 0 1 0 0

57 1 0 0 0

59 0 1 0 0

60 0 0 0.25 0.75

表 9 伍思凱「愛的鋼琴手」:F 和弦下主旋律音高轉換機率

單位:MIDI 音高 To

From

59 60 64

59 0 0 1

60 0.75 0.25 0

64 0 1 0

表 10 伍思凱「愛的鋼琴手」:Am 和弦下主旋律音高轉換機率

單位:MIDI 音高 To

From

62 69

62 0.75 0.25

69 1 0

表 11 伍思凱「愛的鋼琴手」:Dm 和弦下主旋律音高轉換機率

單位:MIDI 音高 To

From

64 65

64 0 1

65 1 0

表 12 伍思凱「愛的鋼琴手」:Em 和弦下主旋律音高轉換機率

<feature>

<chord>

...

</chord>

<melody_pitch>

<chord_instance key="C">

<markovs>

</chord_instance>

….

</melody_pitch>

</feature>

圖 32 伍思凱「愛的鋼琴手」之主旋律音高轉換機率之 XML 描述檔案(部分)

單位:拍數

<melody_duration>

<markovs>

</melody_duration>

</feature>

圖 33 伍思凱「愛的鋼琴手」主旋律音長轉換機率之 XML 描述檔案(部分)

在透過前述的和絃轉換機率、音高轉換機率、音長轉換機率,我們即可透過其機率 模型自動作曲,產生出自動作曲結果,並描述在修正式 IEEE 1599 標準中的一般描述層 當中。自動作曲成果必須再經過調性與速度的調整,以符合原先所確立的目標。

我們一共產生了四首歌曲,拍號為 4/4 拍子、長度為 8 小節的歌曲。但是,為了使 歌曲有結束感,我們在第九小節會使和弦回到一級和弦,旋律部分回到主音,且音長會 較長。在正向情緒的部分,調性分別為 C 大調與 D 大調,速度為 100 及 120。負向情緒 部分則為升 C 小調與升 D 小調,速度為 72,而和弦則以分解和弦的形式呈現。

圖 34 自動作曲成果:正向情緒(1)

圖 35 自動作曲成果:正向情緒(2)

圖 36 自動作曲成果:負向情緒(1)

圖 37 自動作曲成果:負向情緒(2)

在描述資訊當中僅標示自動作曲完成的 MusicXML 檔案,倘若有其他連帶產生的合 成音樂或是其他產物,亦可依照其特性標示在其他不同層當中。

<related_files>

<related_file file_name=”AC_result_1.xml” file_format=” text_xml”

description=”Result_1” notes=”result” uuid=” 041ef406-8f3d-4796-a3da-e6c42ff3677a” />

<related_file file_name=” AC_result_2.xml” file_format=” text_xml”

description=”Result_2” notes=”result” uuid=” d5b1be08-97ff-427f-ac93-eaa8574a78bb” />

<related_file file_name=” AC_result_3.xml” file_format=” text_xml”

description=”Result_3” notes=”result” uuid=” 404dd2f8-1858-4c20-b535-6ca099afe4d9” />

….

</related_files>

圖 38 系統範例:自動作曲成果描述

在自動作曲完成後,即進入成果分析階段,透過建立音高比例圖、音長比例圖、和 弦比例圖,並將其比例描述資訊記載於修正式 IEEE 1599 標準中的結構層。由於透過一 階馬可夫鍊針對音樂素材其中的和弦、音高、音長分析成為機率模型後,並依據其模型 產生出新的音樂。但是根據[39]的實驗及其統計結果,仍有約 30%的受測者能夠透過同 時聆聽電腦所產生的音樂與專家所做曲的音樂,能夠成功分辨出該首音樂是否為電腦所 產生的音樂特徵。

因此在音樂特徵當中,仍有其他尚未被探勘出來能夠影響人類心理聽學感知的因素。

因此在成果分析階段當中,我們會針對音高與節奏,歸納出具有音樂意義的量化數據,

以便在後續應用階段當中能夠更容易探討出影響人類對於音樂感知的因素。

本系統針對自動作曲成果主旋律音高的部分,計算每一個音之間所相差的半音數及 其平均音高值,以及最高音跟最低音相差的半音數,並針對主旋律當中最高音出現的次

數以及出現的位置進行統計。主要原因為,樂曲與文章有起承轉合的結構,而最高音則 連結了樂曲段的承與轉兩部份,使樂曲具有方向性與整體感。在旋律當中前後音高所相 差的半音數能夠得知主旋律級近與跳進的現象。因此,統計出主旋律音高相差的半音數 與頂點音的位置具有指標性意義,於後續應用階段當中藉由蒐集回饋內容再與其統計內 容進行資料探勘,以便找出其隱含的規則。除了主旋律音高之外,亦針對主旋律音長進 行分析,透過統計重拍是否為整數拍,以了解節奏特性。

我們以圖 37 的自動作曲成果為例,進行音高分析後得知最低音高為 64,最高音高 為 77,相差 13 個半音,約使用了 1.1 個八度。在比較第 N 個旋律音與第 N+1 個旋律音 的音高差異,其結果如圖 40 所示,而其對應的 XML 描述文件如圖 41 所示。經過統計 後得知,每個音之間平均相差了 2.14 個半音,標準差為 1.83 個半音。完整的主旋律使

我們以圖 37 的自動作曲成果為例,進行音高分析後得知最低音高為 64,最高音高 為 77,相差 13 個半音,約使用了 1.1 個八度。在比較第 N 個旋律音與第 N+1 個旋律音 的音高差異,其結果如圖 40 所示,而其對應的 XML 描述文件如圖 41 所示。經過統計 後得知,每個音之間平均相差了 2.14 個半音,標準差為 1.83 個半音。完整的主旋律使