當前位置:
首頁 > 新聞 > 谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

選自Magenta

作者:Jesse Engel等

機器之心編譯

參與:晏奇、黃小天


Magenta 的目標之一是運用機器學習發現人類表達的新途徑,因此,今天我們驕傲地宣布推出由谷歌大腦和DeepMind團隊合力打造的 NSynth(Neural Synthesizer(神經合成器))——一種全新的啟迪音樂創作的合成方法。機器之心此前曾對Magenta做過報道,請參見《谷歌Magenta項目是如何教神經網路編寫音樂的?》

Magenta 的目標之一是運用機器學習發現人類表達的新途徑,因此,今天我們驕傲地宣布推出 NSynth(Neural Synthesizer(神經合成器))——一種全新的啟迪音樂創作的合成方法。

傳統語音合成器藉助手工設計的組件比如振蕩器(oscillator)和波表(wavetable)生成語音,而 NSynth 則是通過深度神經網路在個人樣本的層面上生成語音。由於從數據中直接學習,NSynth 可幫助音樂人憑直覺掌控音色、(音樂中的)力度強弱以及探索藉由手動調節合成器而非常難或不可能實現的新聲音的能力。所學習樂器的聲學質量依賴於實用的模型和可用的訓練數據,因此我們很高興公布這兩方面的進展:

  • 音符數據集(https://magenta.tensorflow.org/datasets/nsynth),比其他所有公開可用的語料庫大一個數量級。

  • 一個全新的 WaveNet 風格自編碼器模型(https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth),可以學習有意義地表示樂器聲音空間的代碼。

關於數據集和演算法的完整描述可在 arXiv 論文(https://arxiv.org/abs/1704.01279)上找到。

NSynth 數據集

我們想為音樂人開發一款創作工具,並在機器學習社區發起一項激發音樂生成模型研究的新挑戰。

為實現這兩個目標,我們打造了 NSynth 數據集,裡面收錄了從各個樂器採集的大量注釋的音符,包括不同的音高和速率。我們共採集了來自 1000 種樂器的 30 萬個音符,比同類的公共數據集大了一個數量級。你可以從這裡下載(https://magenta.tensorflow.org/datasets/nsynth)。

NSynth 數據集背後的動機是,它讓我們能清晰地將音樂的生成因素分解為音符和其它音樂特質。簡便起見,我們沒有進一步分解那些其它音樂特質,於是我們有了:

P(音頻)=P(音頻 | 音符)P(音符)P(音頻)=P(音頻 | 音符)P(音符)

目的是建模 P(音頻 | 音符)P(音頻 | 音符)(被稱為音色),並且假設 P(音符)P(音符)來自一個音樂的更高級「語言模型」,就像我們之前提到的音符序列 RNN 一樣雖然並不完美,但是這種因素分解卻是基於樂器的工作原理並且出人意料地有效。實際上,大部分現代音樂製作都採用了這種分解方式。用 MIDI(Musical Instrument Digital Interface(音樂樂器數字介面))來獲取音符序列,用軟體合成器來生成音色。當然,這種方法在樂器之間也並非通用,對於有些樂器(如鋼琴、電子合成器)來說,這種方法就會比另一些(如吉他和薩克斯)更好,因為後者音符對音符的音色依賴性更為明顯。

NSynth 數據集的靈感源自圖像識別數據集,後者是近期深度學習取得進展的核心。類似於每個示例中有多少圖像數據集集中在單個對象上,NSynth 數據集專註於單一音符。我們鼓勵更多的社區將其作為一個基準和音頻機器學習的入口來使用。我們希望 NSynth 可以成為未來數據集的墊腳石,並由此構想一個高質量多音符的數據集,用於生成和轉錄等涉及學習複雜語言依賴關係的任務。

學習時態嵌入(Temporal Embedding)

WaveNet 是一個關於語音和音樂等時序的表達模型。正如擴展式卷積的深度自回歸網路(deep autoregressive network),它一次建模一個聲音樣本,類似於非線性無限脈衝響應濾波器。由於目前這一濾波器的語境僅有幾千個樣本(約半秒),長期結構需要一個引導性的外部信號。先前的工作在文本到語音的情況下證明了這一情況,並且使用之前學習過的語言嵌入得出了出色結果。

在這一工作中,通過部署一個 WaveNet 風格的自編碼器學習其時態嵌入,我們擯棄了調節外部特徵的需要。

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

時態編碼器看起來非常像 WaveNet,並擁有相同的擴張塊結構(dilation block structure)。然而,它的卷積並沒有因果性,因此可看到輸入塊的整個語境。經過 30 層計算之後,會出現一個最終平均池以為 512 個樣本創造 16 維度的時態嵌入。因此,嵌入可被看作是原始數據 32x 的壓縮。

通過將嵌入上採樣到原始時間解析度,應用 1x1 卷積並最終將這一結果作為偏差(bias)添加到解碼器的 30 個層中,我們可以使用這一嵌入調節普通的 WaveNet 解碼器。注意這種調節不是外部的,因為它通過模型進行學習。由於嵌入與自回歸系統偏離,我們可以把它看作是非線性振蕩器的驅動函數。嵌入的大小輪廓模仿音頻本身的輪廓這一事實證明了這一闡釋。

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

本文所有音頻樣本請點擊閱讀原文收聽。

音頻的「彩虹圖」與 3 個不同樂器的在線。這些是 CQT 測試圖,強度表示大小,顏色表示即時頻率。頻率在垂直軸上,時間在水平軸上。對於嵌入,不同的顏色表示 125 個時間步(timestep)(每步 32 毫秒)中 16 個不同的維度。由於 8 位 μ律編碼的壓縮,存在輕微的內置失真。這對很多樣本影響較小,但對更低的頻率影響顯著。

音色與力度強弱的潛在空間

我們很快就將發布一款互動演示設備;與此同時,至於對這項技術的使用方法,這裡有一個具有啟發性的例子。

下方有兩列與兩行彩虹圖(rainbowgram)匹配的音頻剪輯(audio clip)。第一行的彩虹圖對應了左邊那列音頻,它是通過添加信號在樂器間進行均勻插值(evenly interpolating)得到的結果。第二行彩虹圖對應了右列的音頻,它是使用 NSynth 在嵌入空間進行線性插值的結果。我們嘗試從低音樂器開始播放剪輯,然後低音長笛等等。你在左列聽到的即是音頻輸出空間中信號的線形添加。正如預期的一樣,它聽起來像是在同時演奏兩種樂器。然而在右列中,新音符結合了兩個原始音樂的語義面向,創造出了一種獨特且依然是音樂的聲音。

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

進一步而言,所學習的嵌入僅僅捕捉本地語境,就像光譜圖一樣,使得它們可以及時推廣。儘管只在短的單音符上訓練,模型卻可成功地再現一整系列的音符以及播放時間超過 3 秒的音符。

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

儘管 WaveNet 自編碼器在原始音色上添加了更多諧波(harmonic),然而它依然遵循基本頻率上下兩個八度。

兩個音符之間從來沒有過渡的事實很明顯,因為最佳近似之處在於它們之間的平穩滑動。

版本++

除了音樂示例和數據集,我們還發布了支持 NSynth 的 WaveNet 自編碼器和我們最好的基線光譜自編碼器模型的代碼。此外,我們還以 TensorFlow 檢查站和腳本的形式發布了被訓練的權重,可以幫助你節省 WAV 文件中的嵌入。你可以在存儲庫(https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth)中找到所有的代碼,並下載檢查站文件(http://download.magenta.tensorflow.org/models/nsynth/wavenet-ckpt.tar)。

Magenta 目標的一部分是打造藝術創作行為與機器學習之間的閉環。因此請留意即將發行的版本,這些技術將對你的音樂創作大有幫助。

谷歌發布神經音頻合成器NSynth:專註於啟迪音樂創作

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

OpenAI新研究發現無監督情感神經元:可調控生成文本的情感
谷歌提出協同機器學習:通過分散的手機更新同一個雲端模型
這五十家人工智慧公司正引導著AI變革
人工智慧背後的人

TAG:機器之心 |