2019年3月21日,為紀念音樂史上最重要的作曲家之一約翰·塞巴斯蒂安·巴哈誕辰334週年,Google上線了首款基於AI技術的巴哈誕辰紀念Doodle。在這款登陸Google首頁48小時的Doodle背後,正是Huang三年前加入Google Magenta時開始研究的機器學習演算法模型 Coconet。
十四年前,Anna Huang完成了她人生第一個音樂與電腦結合的學術課題—— Palestrina Pal,一款基於Java的分析工具,幫助檢測學生模仿文藝復興時期作曲名家帕萊斯特里納的作曲風格時是否存在語法、風格和規則不符的問題。
論文完成之後,Huang 迫不及待地介紹給在南加州大學桑頓音樂學院的老師們。她興奮地告訴他們,這款工具能夠幫助到他們的教學,讓學生在練習的過程中更好更快地改進自己模仿作曲的水準。
但老師們否定了Huang 的想法,他們認為這樣的工具雖然好用,但對學生來說是走捷徑的行為,會影響到基本功的訓練。「他說這不是我們(想要的),這是你的想法,不是我們的。」Huang 回憶道。
但有著電腦和音樂雙重背景的Huang 並沒有因為老師的否定而放棄,她認為傳統的教學方式太過枯燥。在一遍遍學習各種作曲規則的過程中,枯燥的教學某種程度上磨滅了學生們音樂創作的靈感。Huang 認為那些繁瑣的規則學習和查錯作業完全可以透過電腦輔助以更高效的方式完成,學生應該更直接地接觸更有音樂性的東西。「我們上課,或者向作曲家學習的,應該是學習怎樣去表達我們想表達的東西,去尋找我們到底想說的是什麼。」
她因此認定了技術輔助音樂創作這條路。從南加州大學拿到電腦科學和音樂作曲學士學位之後,Huang先後在麻省理工學院媒體實驗室和哈佛大學拿到了相關專業的碩士和博士學位,並最終加入Google Brain下設的 Magenta團隊,從事機器學習與音樂創作的研究。
首款AI Doodle
在Huang被老師否定的十四年之後,2019年3月21日,為紀念音樂史上最重要的作曲家之一約翰·塞巴斯蒂安·巴哈誕辰334週年,Google上線了首款基於AI技術的巴哈誕辰紀念Doodle。在這款登陸Google首頁48小時的Doodle背後,正是Huang三年前加入Google Magenta時開始研究的機器學習演算法模型 Coconet。
互動式的巴哈Doodle 更像是一款小遊戲。使用者在五線譜上,滑鼠點擊隨意譜寫下一段音樂,點擊「和聲」(Harmonize),幾秒之後Doodle 背後的機器學習演算法就會根據使用者剛剛輸入的旋律,產生一段巴哈風格的協奏小曲。
打造一款巴哈創意Doodle 的想法最初來自Doodle 的團隊。一年半以前,Doodle 團隊想要製作一款創意互動的音樂主題Doodle,他們選中了德國著名作曲家巴哈,「巴哈是一個大家都很崇拜的作曲家,如果我們可以和巴哈一起創作的話,那會是一個很奇妙的過程。」Huang 說道。抱著這樣的想法,Doodle 的團隊在Google 內部找到了專注機器學習和藝術創作的Magenta 團隊,與正在使用巴哈音樂訓練Coconet 多功能模型的Huang 一拍即合。
Huang 於三年前以實習生的身份加入Google Brain 內部剛剛成立的Magenta 團隊,研究單線的旋律創作。但Huang 認為音樂應該是多條線並行創作的,這是一個需要克服的課題,雖然當時的Magenta 並沒有解決這一問題,但研究已初具雛形。隨後Huang 結束了在Magenta 的實習,前往蒙特利爾大學的蒙特利爾學習演算法研究所(MILA)以訪問研究生的身份訪學,一年之後她作為常駐AI 研究員回歸Magenta 團隊,並繼續Coconet 的研究。
也是這個時候,Doodle 的團隊找上門來,他們決定和Magenta 團隊一起打造這款紀念巴哈的互動型Doodle。對他們來說最大的問題就是如何讓耗時較長的研究專案能夠面向普通使用者,提供輕鬆簡單的互動體驗。原本Coconet 需要45 秒左右的時間才能在一台電腦上產生兩小節的音樂,這顯然是不能滿足使用者需求的。因此Doodle 和Magenta 團隊採用了Google PAIR 的TensorFlow.js,一個能夠在前端瀏覽器上運行的機器學習加速架構。調整適配之後,Coconet 的運行速度維持在4 秒到8 秒之間,最低只需要2 秒就能完成。另外,針對無法啟用TensorFlow.js 的情況,巴哈Doodle 會啟用Google 自行研發的機器學習處理單元TPU,盡可能地加速處理過程。
306 首音樂訓練出的模型
機器學習輔助創作並不是一件新鮮事,過去幾年間已有多家研究機構和科技公司發布了類似劇本寫作和新聞寫作的AI 應用程式。但文字與音樂不同,線性的文字敘述只有一條單線,而音樂是多線並行的,這種多線並行的結構中,巴哈的作品就是最典型最基礎的樣本。
「巴哈可以讓我們學習到這些線應該怎樣連接,每條線都有自己的性格,但是它們走在一起的時候是很和諧的。每一個學音樂的學生都是從這裡開始,所以我們也從這裡開始教人工智慧怎樣創作。」Huang 解釋說。
Magenta團隊選擇了巴哈的306首眾讚歌作為Coconet模型的訓練數據,「巴哈眾讚歌多為四聲部,每個聲部有著自己的旋律線,一起演奏時就能創造出豐富的和聲效果。這種簡潔的結構使其成為機器學習模型的良好訓練數據。」巴哈Doodle的Google AI團隊專案經理Lauren Hannah-Murphy在介紹部落格中寫道。
不管巴哈的作品再適合訓練,僅僅三百首音樂的數據體量也幾乎不可能撐起一個靠譜的機器學習模型。Huang 對此非常清楚,所以針對數據不足的情況,他們選擇了一個更為精巧的訓練方式。
傳統機器學習演算法模型的訓練方式是將數據一次性灌輸給模型,這樣的學習操作過程簡單,但是產出的結果是模型往往只能理解作品如何從開頭流暢地過渡到結尾,卻無法從結尾推導回中間的內容。
Coconet 模型的訓練方式採用訓練方式是將一首完整音樂的某個部分抹除,留給AI 模型根據抹除部分兩邊的內容,自己透過演算法演算出中間部分,再與原作對比,一點點矯正,直到最接近巴哈的風格。透過這樣不同排列組合的方式,三百首音樂也就能夠產出更多的訓練樣本。
「就像很多時候我們寫音樂或者寫文章,不是說從頭到尾一氣呵成,而是會有很多次修改、很多跳動,這個模型創作的方式也是這樣,」Huang 說道,「一開始先寫一個比較粗糙的稿,然後慢慢決定每一個地方的細節,再去修改。所以它能夠和你一起創作,一起互相修改作品。」
不過因為機器學習的黑箱性質,它對巴哈風格的理解與人類不盡相同。Coconet 比較看重音樂的曲式(pattern),從樂譜開始,音樂就被轉換成基於像素(pixel)堆疊的圖像(image),機器對旋律的理解就是對這些像素連接結構的理解。因此機器也會把風格迥異的音樂帶到巴哈的風格上,表現在音樂的曲式上,就是「音樂的線條會向上然後向下….. 它很喜歡有些斷點,有時候音樂是比較流暢的,有時候它會把你帶到斷點,再出發,再帶到斷點。」Huang 說道,「這種感覺是巴哈很喜歡(用的),有一些規律性。」
音樂的技術性
當然,Coconet 目前還只能製作一些較短的旋律和弦,它「看不到」長線的結構,比如音樂家想要在曲子裡表達的深層想法,這是現階段的機器學習無論如何無法感知的部分。
所以在談及技術的局限性時,研究多年電腦和音樂的Huang 比任何人都要清楚。從最開始,她想要的就是一個輔助作曲者、提供更多靈感的工具。
在被問到巴哈Doodle 背後的工具更適合經驗豐富的作曲人還是基礎薄弱的初學者時,Huang 表示不同的人使用工具的方式也不一樣,對初學者而言,簡易上手的工具可能會讓他們發掘出自己潛藏的音樂天賦,從而喜歡上音樂,走上這條路。但對於那些有一定經驗的作曲者來說,Coconet 會提供一些不同於作曲者本人的想法,在輸入原創的音樂材料之後,也許能收穫「一些很不一樣的東西」。
「那些不一樣的東西,我覺得某種程度上是蠻珍貴的,因為很多時候作曲家會害怕,害怕自己哪一天突然沒有了靈感。」Huang 說,像Coconet 這樣的模型,就是向作曲家們提供一個靈感源泉,一個額外的選擇。
Huang 從小在香港長大,接受著嚴苛的藝術教育,常常因為樂器考試的枯燥而討厭音樂,但一次觀看古箏表演的經歷讓她愛上了這種樂器,「這是我想要的,是我覺得可以很自然地表達情緒的方式。」隨後幾年的古箏學習讓Huang 逐漸開始了自己的音樂創作,但她很快也發現,學習作曲是一個非常困難的過程,起初她對和弦的認識不深,因此學得很慢,幾個月的時間只學會了幾個和弦,音樂創作的可能性也因此受到了很多的限制。
相比之下,電腦對Huang 來說是個與生俱來的技能,她的父親是大學的電腦教授,對她而言這是個「不用去學校學,自己可以探索的東西。」隨著她對電腦和音樂兩方面的認識逐漸加深,Huang 開始想在音樂方面用電腦做一些東西。「電腦可以拉近我和音樂的距離。」她說,「音樂是很感性的,但它也有理性的一面,有很技術的部分。在學習音樂的時候,你也要學習一些技術,它可以讓你更容易發現自己想要表達的東西。」
「就像學外語一樣,它可以幫助你跑得更快一點,一開始的時候你不知道該怎麼表達,它可以幫你做得更好,可以讓你覺得學這個更有趣,更好玩,更想要去表達。」
- 本文授權轉載自極客公園
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!