AI 玩即興音樂, 為時不遠了.

今天看到一篇簡中文章. 描述了AI即興演奏的可能性. 大概看下來, 似乎作者承認即興還有困難, 不過隻是資源上的限製. 資源夠了, 完全可以和人一樣玩即興. 人玩機型的時候因為有主題和情緒, 所以實際上對人腦的算力要求小得多, 但是時間長了, 腦子會斷篇. 很難超過10分鍾而不亂. 機器卻沒有這個限製.

我雖不是專業, 但是大概理解的AI即興流程, 涉及到緩衝, 實際上人即興也是一樣的. 這麽看來, AI能力的邊界其實不是AI算法和玩法, 應該是肉人本身的極限.

換句話說, 肉人能做的, 隻要將肉人的行為模式分析清楚了, 告訴機器, 機器完全可以從方法論上模擬人的幾乎一切行為.

這麽看來, AI意識也不是不可能, 一旦人搞清楚了自己的意識真相, 秘密就回被AI攫取, 進而模擬出類人的意識. 這有點瘮人了. 人最好不要繼續研究意識了.

看完這篇, 感覺涼透了, 以為人在現場即興演出中還有優勢, 樂手們還有飯碗, 現在看, 不一定了. 搞個機器人殼子, 然後AI音樂給足了算力, 完全可以娛樂喝醉了的肉身們…

、音樂創作交互的即興反饋

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

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

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

 

 

這就牽涉到前端的渲染過程。首先看一下音頻引擎。以手機為例。手機有一個揚聲器,其背後有一個叫做音頻線程的東西。這個音頻線程一般是操作係統裏最高優先級的一個線程。它會把音頻分割成很小的切片,例如256個采樣點。在48000的采樣率下,大概一個切片的時間長度是5.3ms。之後將切片循環加入音頻,實現隊列播放。任何一個音頻文件,都會被切成很小的片段。音頻線程將切片移交給揚聲器,再通過回調函數獲取新的256采樣點的切片。如果不從內存裏直接給揚聲器切片,而是通過快速計算持續生成音頻切片,就可以實現實時播放。

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

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

 

 

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

所有跟帖: 

省流:iPhone 28解鎖更多新福利 -xerl- 給 xerl 發送悄悄話 xerl 的博客首頁 (0 bytes) () 07/21/2024 postreply 08:49:44

28? 沒見過啊. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/21/2024 postreply 13:53:28

讚一個,回頭來細看了! -還依- 給 還依 發送悄悄話 還依 的博客首頁 (0 bytes) () 07/21/2024 postreply 10:25:11

為啥AI要模擬人類即興的過程,直接模擬即興風格不就可以了嗎?~~ -還依- 給 還依 發送悄悄話 還依 的博客首頁 (0 bytes) () 07/21/2024 postreply 18:07:21

即興不是說生成一段音樂, 更多的是, 根據已有的音樂, 在幾毫秒內, 理解並生成新的小節. 機器目前還不行, 主要是算力 -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (191 bytes) () 07/21/2024 postreply 19:36:12

你說自動駕駛需要的算力大還是即興演奏需要的算力大? -還依- 給 還依 發送悄悄話 還依 的博客首頁 (0 bytes) () 07/21/2024 postreply 19:55:56

不知道啊, 音頻壓縮和token壓縮技術, 視頻壓縮token壓縮技術, 不知哪個更難, 不是搞技術的... -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/22/2024 postreply 09:37:18

而且這裏說的算力並不是洪荒之力, 指的是合理的消費者能分配的算力, 達到即興還不行. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/22/2024 postreply 09:38:29

謝謝 -還依- 給 還依 發送悄悄話 還依 的博客首頁 (0 bytes) () 07/24/2024 postreply 07:48:48

老楓一向玩得挺高技術的哈:)慢慢學習。。 -偶爾閃閃- 給 偶爾閃閃 發送悄悄話 偶爾閃閃 的博客首頁 (0 bytes) () 07/21/2024 postreply 13:27:54

哪有, 我一個技術盲,,,就是感慨AI能做到的太多. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/21/2024 postreply 13:54:18

感覺看半天有點兒雲裏霧裏,是不是就是要強調下麵就著重研究如何將計算時間小於5.3ms就可以AI即興了,是這意思嗎? -老地雷- 給 老地雷 發送悄悄話 老地雷 的博客首頁 (0 bytes) () 07/21/2024 postreply 13:56:07

本文, 我的意思是, AI可以做到一切人類的行為, 隻要行為機為機理清楚. 肉人即興的真正原理和流程, 還沒研究清楚吧. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/21/2024 postreply 14:55:03

最艱難的肉人行為機理, 就是所謂意識, 如果全人類不研究意識了, 這樣機器也不會覺醒意識. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (0 bytes) () 07/21/2024 postreply 14:55:51

我的老師給我們歸納了幾點AI不能代替的,分享一下 -老地雷- 給 老地雷 發送悄悄話 老地雷 的博客首頁 (340 bytes) () 07/21/2024 postreply 16:31:06

不一定, 1. 兩個肉人雙solo, 最為精彩的即興, AI其實隻要算力足夠, 是可以做到的. -楓林曉- 給 楓林曉 發送悄悄話 楓林曉 的博客首頁 (654 bytes) () 07/21/2024 postreply 19:33:12

請您先登陸,再發跟帖!