您現在的位置是:首頁 > 音樂首頁音樂

音樂創作引擎實現即時互動體驗的探索

由 澎湃新聞客戶端 發表于 音樂2023-01-15
簡介用語言模型一鍵生成音樂旋律可以簡單類比為讓AI猜測:人類創作一半的音樂,下一個音符會寫什麼

一首歌混音下來多少錢

編者按: 隨著音樂生產所依賴的裝置成本不斷降低,音樂消費者與創作者之間的界限正在逐漸消融。我們提出了一種新型音樂創作引擎。藉助人工智慧和即時演算技術,音樂的創作過程和體驗過程得以實現融合:音樂將不再是視覺場景中的靜態資源,而成為一種可以對使用者即興創作靈感做出實時響應的可互動元素。這使得更多的音樂消費者有機會體驗置身於互動式音樂場景之中的趣味性。LiveVideoStackCon 2022 上海站大會我們邀請到了北京靈動音科技有限公司(DeepMusic) CTO 苑盛成博士為我們詳細介紹了這種新型音樂創作引擎的研究成果和技術實踐。

文/苑盛成

整理/LiveVideoStack

大家好,我是苑盛成,來自北京靈動音科技有限公司(DeepMusic)。非常榮幸向大家介紹我們在音影片方面的一些技術成果。靈動音科技(DeepMusic)主要業務是人工智慧輔助音樂創作和製作,本次與大家分享的內容也與此相關。

音樂創作引擎實現即時互動體驗的探索

1、行業背景與問題挑戰

首先和大家聊聊目前音樂創作相關的行業背景與問題挑戰。

音樂創作引擎實現即時互動體驗的探索

音樂創作引擎實現即時互動體驗的探索

傳統的音樂製作過程分為五個階段:創作者獲得旋律、歌詞靈感,透過五線譜曲譜或自己用吉他鋼琴彈奏得到錄音小樣做示例,此階段還十分粗糙,除了已有的歌詞旋律外,還需要製作精良的伴奏,這就進入了編曲階段。編曲階段會使用到較大型軟體如數字音樂工作站,編曲師能夠按照一定速度為旋律新增適當的音色樂器,得出能夠適配旋律及歌詞的伴奏帶。接著請歌手到錄音棚中進行錄製,錄音師修正人聲節奏及音高。將製作精良的伴奏和人聲結合,進入混音階段。混音師把樂器放置在正確的空間位置,從而良好地與人聲融合,使聲響儘量均衡,結束以上步驟後即可獲得一條基本完成的音訊。為了使觀眾聽感更清晰,我們還需在不損失音質的情況下儘量提升音量。

以上便是完成一條音訊最基本的步驟,也就是說即使不要求藝術效果,只是快速的流水線生產音訊,不吃不喝最快也要半天時間。那如果進行一些藝術上的加工,耗時會更長,甚至達到一個月左右。而這只是時間成本。

製作音訊需要的軟體總計至少1000美元,不過,錢是小事,重要的是數年的音樂實踐和經驗積累。舉個例子,蘋果的編曲軟體——logic pro,初學者甚至不知道如何在軟體中找到正確的音色,更何況每條音色還可透過各種引數進行調整,此外,如果想要快速錄入正確音符,還得先成為一個熟練的鍵盤手。

大家可以看到,完整製作一條音訊需要的時間、金錢成本都很高,並且還要求創作者有一定的音樂知識背景。而目前國內僅有幾十萬能夠進行全鏈條生產的原創音樂人。

音樂創作引擎實現即時互動體驗的探索

個人而言,面向聽歌需求的熱歌生產在數量上已經嚴重過剩。現在的線上音樂使用者規模將近七億,原創音樂人大約有40萬,乍一看這個比例還很懸殊,但其實一個音樂人就算一個月做一條音訊,一年下來也可以生產300w首音樂,不可能每位聽眾一年都聽300w首歌,也不可能每首歌都獲得很高的討論度。於是,最後一年收益為正也就是能夠回本的音樂只有不到1w首。

音樂製作行業有著非常強的長尾效應,頭部的極少數歌曲能夠火遍全國,而後面99%以上的歌曲都處於賠本的狀態。

音樂創作引擎實現即時互動體驗的探索

但其實這個行業並不只有聽歌這一個需求。近年來,除了聽以外的使用者需求正在不斷增長,如前幾年較火的K歌,至今已有1億多的使用者規模。可以試想一下,將近七億的聽眾中有1億多人想唱歌。此外還有學習需求,目前適齡兒童的音樂學習滲透量已經達到1600萬。許多一二線城市的中小學都有音樂興趣班,甚至有的班級還有班歌。

“玩”也是近幾年增長迅猛的需求,換句話說是面向創作互動新體驗的興趣類應用。如前些年的滿足即興彈唱的“唱鴨”APP,最近的大型開放類遊戲“原神”中也植入了一些音樂類小遊戲,如設定音符按鈕供使用者彈奏。此外還有VR,雖然目前VR裝置中的應用不多,但其中音樂相關的遊戲佔比較高且評分也相對較高。

2、AI音樂降低創作門檻

大家可以看到,一方面除了聽歌之外的需求、互動及創作需求在增長,另一方面真正創作高質量音樂的門檻是很高的。那麼如果存在一種方式能夠降低門檻,讓使用者在前端就能簡單操作從而生產音樂,是否能夠產生一些潛在的新興音樂相關的消費場景呢?

我們公司花費了幾年時間來解決這個問題。首先最重要的是降低音樂創作門檻,也就是透過AI輔助音樂創作編輯使更多普通人懂得用音樂表達情感。有了支撐技術,就可以探索一些互動。同時我想和大家分享關於即興反饋及如何滿足沉浸式體驗的心得。

音樂創作引擎實現即時互動體驗的探索

深度學習方面,透過神經網路生成音樂的過程有兩條路徑:

符號音樂生成——識別或將舊的音訊、舊的存量歌曲標註為音樂符號,就像五線譜一樣,標註旋律、歌詞、和絃等。用音樂符號生產新的音樂符號,再將其渲染為新的音訊。如果完全透過AI全自動完成這條路徑,那麼左邊是音樂資訊提取,下面是符號音樂生成。右邊是音訊合成或音訊渲染。符號音樂生成中有各式各樣的音樂知識生成如歌詞、旋律、歌聲。

端到端生成——直接從舊的音訊匯出新的音訊。最近在圖片生成領域出現了DALL·E 2模型,在模型中輸入文字如“宇航員吃香蕉”,會自動輸出一張圖片,圖片中有宇航員、香蕉及其他宇宙的元素搭配。端到端生成的願景類似,如隨意輸入一句話即可透過此路徑生成一段能夠描述話語的音樂。但在音樂創造行業,理想很豐滿,現實還是很骨感的,目前我們還沒有找到此類模型[注],原因會在下文進行闡述。

注:在演講時的確是這麼覺得的。不過,在演講結束之後的這半年裡,Diffusion類模型增長迅猛。我們預計在這個方面,業界是有可能出現一些端到端音樂生成的成果的。不過它不是非常影響後面的結論,即細粒度的控制仍然會是問題。

音樂創作引擎實現即時互動體驗的探索

簡單介紹一下旋律生成方面的簡單模型。

用語言模型一鍵生成音樂旋律可以簡單類比為讓AI猜測:人類創作一半的音樂,下一個音符會寫什麼?比如圖中這段音樂,完成了前面一段後蓋住,讓你猜下一個音會是什麼。如果AI剛開始什麼都不知道,那它肯定是隨便猜,在我們公佈答案之後再進行修正。所以每一條音訊,每一個音符都可以這樣出一道題。一條音訊大概有幾百個音符,幾千首歌就有幾百萬的資料樣本。在深度學習領域,這個資料樣本雖然不大,但好在旋律在符號音樂領域的token數量非常少。do、re、mi、fa、sol、la、xi從低到高,人唱歌的普遍音域也就是三個八度共36個token。所以學習空間比較小,大概有5000首歌再加上合適的標註,就能得到這種效果。

這樣一個demo聽上去挺驚豔。它會很快地去生成這樣一首音樂的旋律,乍一看好像我們作詞作曲這個部分,至少旋律創作已經有了吧?但其實不然。

作為一個“demo”,這聽起來很驚豔,但作為落地專案的話會發現兩個非常嚴重的問題。如果我是一個新使用者想使用工具生成音樂,那麼我大機率不會選擇一件全自動生成的作品,因為它不屬於我,沒有表達我的情感。也許我會生成一大堆音樂,再挑選我想要的,那麼此時我會發現第一個生成得挺好聽的,第20個也不錯,第1千個、1萬個也都還行,但它們聽起來的味道卻大同小異。

實際上當我們用神經網路模型直接這樣操作時會遇到一個問題。由於所有神經網路本質都是機率統計,在進行統計分析時一定程度上抹平了不同音樂之間的差異性。而許多優秀的音樂藝術作品好就好在差異性。

第二個問題是我們與音樂製作人交流創作時經常發生的情況——描述音樂情感。許多情感並不是簡單的語言模型能夠掌控住的。比如今天失戀了,我需要一首悲傷的音樂。也許我們在語言模型中製作各種不同的情緒標籤,把悲傷的標籤當作全域性條件輸入,獲得一條音訊,似乎行得通。但此時使用者可能提出更復雜的要求,比如希望悲傷能夠含蓄一點、深邃一點、就像大海一樣。音樂製作人肯定能夠get到這層意境,但AI就麻煩了。如果用類似DALL·E 2的方式直接輸入自然語言是否可行呢?經過嘗試,我們發現這依然存在一條鴻溝。如果用文字生成圖片,如輸入“我手裡拿著遙控器”,那麼對於視覺模型來說這是非常明確的對映。但放在音樂上,輸入“手裡拿著遙控器”,讓模型輸出一段旋律,這並不是直接的對映關係。

音樂創作引擎實現即時互動體驗的探索

實際上,音樂以情緒感受而非資訊描述為主。如果直接用語言引導在神經網路上生成旋律比較困難。

總之,目前最大的問題是很難將一鍵生成的音樂創作成果直接落地。音樂創作應該是在使用者主導下,透過不斷互動完成的,但互動過程中涉及到的使用者需求十分複雜。

音樂創作引擎實現即時互動體驗的探索

為了解決這個問題,我們訴諸了人類知識庫。音樂方面能供操作的資料集比較少,而音樂知識方面,從古典音樂至今已有幾百年的積累發展了。音樂人透過大量的學習和實踐,建立了情感和音樂知識之間的對映經驗,如果能夠獲得這些經驗,再透過某種方式指導寫作,那麼相較於普通人會更易懂得如何藉助音樂表達自身情感。

目前的資料集不夠,所以我們自研了軟體進行標註,目前已有17000首的標註,這樣能夠解決部分問題。那標註的程度如何呢?

可以看到這是一個較高精度時間對齊的標註資料,包括了主要的音樂知識。有了音樂知識後能做的事情就變多了,比如和聲,我們可以製作一個存量音樂知識的數字圖書館,進而建立情緒和音樂知識的對映關係。上文的都是和絃代號,沒有多年樂理經驗的同學看不懂,但沒關係,我們可以從音樂知識中到答案,再把建立的對映關係錄入系統。比如樂理概念中的“升四級半減七和絃”,在技術上來說就是#4、6、1、3四個音同時響起造成的聲響範圍。樂理書中還提到在流行音樂中這個和絃構成阻礙中止,帶有停滯感,能夠表達出悲慘的聲音氛圍。

那麼,如何透過AI利用以上樂理知識呢?

音樂創作引擎實現即時互動體驗的探索

我們在一萬首歌中篩選出了大概500首含有“升四級半減七和絃的歌曲”。大家可以嘗試去聽一下,四級半減七和絃基本上表達的情緒是類似的,這就是樂理知識映射出的情緒。

之前在語言模型基礎上,模型出什麼機率分佈,我們就用什麼機率分佈,如果在後處理沒有任何要求就按照神經網路的方式進行,有要求就按照音樂情緒進行,最後輸入系統迭代生成。那是否能夠結合這兩件事呢?

音樂創作引擎實現即時互動體驗的探索

再以旋律為例。在和絃的宏觀約束下,可以做一些旋律上的統計,統計不同和絃進行下旋律骨架的音高分佈。圖中橫軸的數字15634125是和絃進行,俗稱卡農進行,因為卡農這首古典音樂就是用這套和絃創作而來,有許多的流行音樂也透過這一套路生成。我們把旋律中較為重要的音叫做骨幹音。縱軸下面是do,上面是xi。顏色越亮代表使用這一套路的歌曲越多,越黑代表越不希望把對應的音當作骨幹音。可以發現在這樣的一個合成套路中有非常明顯的亮色線條,mi、re、do、xi、la、so、fa、re。實際上許多歌都是這樣寫的,比如前幾年很洗腦的《學貓叫》中所有的音都在這裡。

知道這件事後,再透過經典的核心套路就可以操作了。例如,使用者想要耳熟能詳、容易被接受的歌,那麼就把歌曲的所有音落在這些亮線上;使用者想要在某一個位置更加驚豔,那麼就把對應位置的音落在暗線上,聽起來會明顯抓耳。

demo-靈動音 音訊: 進度條 00:00 01:45 後退15秒 倍速 快進15秒

流行音樂中有各種各樣的核心套路,當你用樸素貝葉斯或更復雜的模型時,將其做成統計機率模型,就可以在複雜的和絃上進行旋律的調配。我們用相對複雜的和絃進行測試,最高音的鋼琴是全自動生成的,音符是透過上文提到的方式生成,其他部分是使用另一種編曲模型自動生成的。最後將兩部分合並就得到了現在聽到的音訊。

音樂創作引擎實現即時互動體驗的探索

上文介紹的內容主要是想表達,藉助音樂理論結合資料建立情感與音樂知識的對映可以指導AI模型和演算法的可控生成。能夠更好地服務音樂生成演算法的落地。有了以上工具後可以進一步進行互動方面的探索。

音樂創作引擎實現即時互動體驗的探索

在探索過程中我們重點考慮的指標如下:

1、自由程度:使用者能夠擁有質量多元化的操作路徑。一鍵生成再好也不可能所有事情都一鍵生成,因為客戶需要操作。

2、及時程度:使用者的操作能夠儘快反饋到聽覺效果,避免按一下要等半個多小時的情況。

3、驚豔程度:使用者進行不同操作時能夠聽到多元化並且差異較大的結果。

4、自然程度:在使用者進行音樂互動時,不會明顯的感覺到這是AI。我們希望使用者把全部精力和注意力放在與音樂的互動中,而不會意識到這背後有一個強大的模型。

音樂創作引擎實現即時互動體驗的探索

我們在不同場景下嘗試了不同方案。如影片配樂中bgm的探索。

音樂創作引擎實現即時互動體驗的探索

在K歌類場景,我們與全民K歌合作了“AI換曲風”功能。如使用者可以將林俊杰的《江南》更換為古風、DJ、R&B、搖滾等風格。而且不僅是簡單的片段,在中間的轉場也進行了特別的設計,這是由標籤引導的。此外,有的音樂發燒友希望能夠自己控制樂器。

有了AI操作,就可以解放音樂人。音樂人寫的好幾百條音樂,現在能夠透過AI一次生成。只要標註音樂,加入不同樂器立即就豐滿了起來。這種方式也適用於軌道的調控。

音樂創作引擎實現即時互動體驗的探索

那麼是否能夠再進一步?使使用者輸入旋律成為可能。

流程看似簡單有趣,但其中涉及到許多AI工作。使用者哼唱結束後需要將旋律轉變為符號,這是音樂資訊提取工作;轉變為音高符號後繼續進行樂理分析及旋律骨架識別;得出骨架後,利用多種演算法匹配和絃;最後透過自動編曲模型用多種編曲形式形成互動劇本。

音樂創作引擎實現即時互動體驗的探索

未來我們會嘗試更多不同的需求。

4、音樂創作互動的即興反饋

音樂創作引擎實現即時互動體驗的探索

不論做什麼,我們都繞不過去兩件事情。

第一件事情是音樂創作中的即興反饋。所有的計算都需要時間,尤其是AI模型。假設橫軸是時間軸,虛線時使用者進行了一次操作,想要更加勁爆一點的音樂。一般情況下是使用者操作完成之後,開始計算。計算時音樂會暫停,等計算好之後才會反饋。這樣帶給使用者的體驗很不好,中間需要等待很長時間。如果把計算時間縮短,在100、200ms左右或者更低時,可以算作即時反饋。但是這裡有一個難以解決的問題。音樂本身有節奏,會像一把尺子一樣衡量時間。即便是100ms的延遲,也會明顯感覺到這裡的卡頓。所以單純縮短計算時間不是最優解。還有一種想法是在計算時繼續播放,播放到一定時間點時,在合適的位置切斷。這樣帶來的問題是過於生硬。

那麼即興反饋到底是什麼呢?音樂播放時,使用者進行一定的操作,接下來計算的,不僅僅是接下來要播放什麼,而是接下來一段時間應該用什麼樣子的演奏方式使得它無縫銜接到你想要的狀態。音樂播放本身就是一個耗時的過程,如果計算時間小於聆聽所需要的時間,即興就可以做到。即興也意味著不再提前準備很多音訊播放,而是邊渲染邊播放。

音樂創作引擎實現即時互動體驗的探索

這就牽涉到前端的渲染過程。首先看一下音訊引擎。以手機為例。手機有一個揚聲器,其背後有一個叫做音訊執行緒的東西。這個音訊執行緒一般是作業系統裡最高優先順序的一個執行緒。它會把音訊分割成很小的切片,例如256個取樣點。在48000的取樣率下,大概一個切片的時間長度是5。3ms。之後將切片迴圈加入音訊,實現佇列播放。任何一個音訊檔案,都會被切成很小的片段。音訊執行緒將切片移交給揚聲器,再透過回撥函式獲取新的256取樣點的切片。如果不從記憶體裡直接給揚聲器切片,而是透過快速計算持續生成音訊切片,就可以實現實時播放。

在回撥函數里,放入圖中所示的連線圖,連線圖可以模擬類似混音臺的功能。左邊類似虛擬樂隊的樂手們,每一個都會接受控制訊號。之後就會在連線方塊裡進行DSP數字訊號處理的演算法。最後再進行一些加工輸出音訊。播放完成之後,再經過5。3ms,會有新的一輪迴調,重複上面的步驟即可。

雖然看上去很簡單,但是每一個方塊裡面都是他自己數字音樂訊號的結果,融合起來雖然很及時,但風險也是並存的。每5。3ms要消耗256個取樣點,這意味著每256個取樣點計算的時間都必須小於5。3ms。雖然增加緩衝可以降低要求,但是增加緩衝意味著延遲增加。想要儘量降低延遲,計算負載就不能太高。

音樂創作引擎實現即時互動體驗的探索

下一個需要解決的問題是如何讓多個樂器可以同步播放。其實只需要給每個樂器一個相同的播放頭就可以了。我們會設定兩個播放頭,紅色的叫做計算播放頭,黃色的叫做渲染播放頭。紅色的部分會先執行,稍早於實際時間。計算播放頭會動用一些AI演算法,將中間生成的結果變成一個一個音訊控制訊號放在緩衝區中。當黃色渲染播放頭刷過去時,會經過這些緩衝區的訊號,全部發到相應的軌道上,就可以同步處理了。而且得益於提前一點的計算,不用過分擔心高負載。

5、音樂驅動的音畫同步

音樂創作引擎實現即時互動體驗的探索

除了不同樂器不同軌之間的同步,還有一個同步也很重要――音畫同步。假設有一個小人在跳舞,舞蹈也得踩點,跟上音樂的節拍,這時程式就不止要在音訊執行緒內做同步了。

音樂創作引擎實現即時互動體驗的探索

這裡存在一個讓開發者頭疼的問題,視覺和音訊內容如何同步進行?同步問題是一個比較龐大的問題,其需求、場景、外部環境都不相同,大體可分為如下幾類:

資料錨定。在K歌軟體中,要使歌曲與歌詞同步,其實都是靜態資源,什麼時候該出什麼,本質是錨定的,只需將資料提前安排好即可。

動態觸發。在可互動場景中如射擊遊戲,需要根據使用者事件同步出發視覺和聽覺的資源。使用者點選滑鼠開槍,槍聲響起的聽覺和敵人倒下的視覺之間的同步,這是動態觸發的過程。不過此過程對延遲要求沒有特別高,只要保持在50ms內,使用者就不會有明顯的感知。在對時間不敏感的場景(如回合制遊戲)中,即便點選滑鼠後200ms內出現聲音造成的音畫不同步都是可以接受的,不會引起嚴重問題。

第三種情況就比較危險了,使用者在一段正在播放的音樂中實時進行了一些操作,希望實時演算的音樂和舞蹈能夠卡在節拍上。此時的主要麻煩在於時間由音樂主導。像上文提到的,音樂是時間的尺子,速度穩定。如果有個鼓點動次打次,到打節拍時差20ms就會開始被人察覺、令人不適。所以這裡存在高精度的要求。

音樂創作引擎實現即時互動體驗的探索

那麼音畫不同步的情況如何發生呢?音訊和視覺是在不同執行緒中實時渲染完成的,有各自的時鐘,時鐘不同步時就會出現問題。計算過程中有時負載高,有的位置卡頓一下會造成兩邊不同步。有了計算和渲染兩個播放頭再加上計劃表後可以較好的解決這個問題。在播放音樂時只需控制好渲染播放頭,並且讓動畫的所有控制訊號從計劃表中發出,那麼視覺上的每一幀的控制訊號並不在自己的執行緒中計算,在音訊執行緒中計算即可。一方面,播放頭由音樂主導,消費由視覺處理。能夠做到嚴格同步。另一方面,切換到沒有音樂的場景時,把音效的播放頭變成影象主導,事件消費的時間點由影象的執行緒控制。

6、未來展望

音樂創作引擎實現即時互動體驗的探索

最後介紹一下我對未來的一些看法。我認為在音樂創作方面,創作和消費的界限在慢慢溶解。幾十年前,想要錄一首歌,需要花真金白銀進錄音棚,得到一個錄音帶。現在幾乎都是軟體,我想錄多少就錄多少,都是儲存的訊號而已。如果知識的門檻可以再降一點,就意味著普通人也可以進行創作了。這個時候音樂製作可能就不再侷限於小眾創作、大眾消費的固有模式,每個人都可以創作,每個人都可以欣賞別人。那麼消費者和生產者之間的界限就會開始模糊。

音樂創作引擎實現即時互動體驗的探索

此外,我認為互動體驗會慢慢變得沉浸化和多元化。現在的音樂人只需要關心怎麼做好音樂就足夠了。但是未來,隨著VR、元宇宙概念的不斷深入,視覺體驗也會開始尋求音樂上面的多感官參與。這樣的世界正在逐步形成,我希望我們可以在這樣的世界中,擔當起一份責任。

以上就是本次分享的全部內容,謝謝。

(全文完)