一個開源庫搞定各類文本到音頻生成,Meta發(fā)布AudioCraft
近來,Meta 發(fā)布并開源了多個 AI 模型,例如 Llama 系列模型、分割一切的 SAM 模型。這些模型推動了開源社區(qū)的研究進(jìn)展?,F(xiàn)在,Meta 又開源了一個能夠生成各種音頻的 PyTorch 庫 ——AudioCraft,并公開了其技術(shù)細(xì)節(jié)。
- 代碼地址:https://github.com/facebookresearch/audiocraft
- 項(xiàng)目主頁:
https://audiocraft.metademolab.com/?utm_source=twitter&utm_medium=organic_social&utm_campaign=audiocraft&utm_cnotallow=card
AudioCraft 能夠基于用戶輸入的文本生成高質(zhì)量、高保真的音頻。我們先來聽一下生成效果。
AudioCraft 可以生成一些現(xiàn)實(shí)場景中的聲音,例如輸入文本 prompt:「Whistling with wind blowing(風(fēng)呼嘯而過)」
語音1,機(jī)器之心,5秒
還能生成有旋律的音樂,例如輸入文本 prompt:「Pop dance track with catchy melodies, tropical percussions, and upbeat rhythms, perfect for the beach(流行舞曲,具有朗朗上口的旋律、熱帶打擊樂和歡快的節(jié)奏,非常適合海灘)」
語音2,機(jī)器之心,30秒
甚至還可以選擇具體的樂器,生成特定的音樂,例如輸入文本輸入文本 prompt:「Earthy tones, environmentally conscious, ukulele-infused, harmonic, breezy, easygoing, organic instrumentation, gentle grooves(樸實(shí)的曲調(diào),環(huán)保理念,尤克里里,和聲,輕松,隨和,有機(jī)樂器,柔和的節(jié)奏)」
語音3,機(jī)器之心,30秒
AudioCraft 簡介
相比于文本、圖像,音頻生成是更具挑戰(zhàn)性的,因?yàn)樯筛弑U嬉纛l需要對復(fù)雜的信號和模式進(jìn)行建模。
為了高質(zhì)量地生成各類音頻,AudioCraft 包含三個模型:MusicGen、AudioGen 和 EnCodec。其中,MusicGen 使用 Meta 具有版權(quán)的音樂數(shù)據(jù)進(jìn)行訓(xùn)練,基于用戶輸入的文本生成音樂;AudioGen 使用公共音效數(shù)據(jù)進(jìn)行訓(xùn)練,基于用戶輸入的文本生成音頻;EnCodec 用于壓縮音頻并以高保真度重建原始信號,保證生成的音樂是高質(zhì)量的。
從原始音頻信號生成音頻需要對極長的序列進(jìn)行建模。例如,以 44.1 kHz 采樣的幾分鐘音樂曲目由數(shù)百萬個時間步(timestep)組成。相比之下,Llama 和 Llama 2 等基于文本的生成模型是將文本處理成子詞,每個樣本僅需要幾千個時間步。
MusicGen 是專門為音樂生成量身定制的音頻生成模型。音樂曲目比環(huán)境聲音更復(fù)雜,在創(chuàng)建新的音樂作品時,在長程(long-term)結(jié)構(gòu)上生成連貫的樣本非常重要。MusicGen 在大約 400000 個錄音以及文本描述和元數(shù)據(jù)上進(jìn)行訓(xùn)練,總計 20000 小時的音樂。
AudioGen 模型可以生成環(huán)境聲音及聲效,例如狗叫聲、汽車?yán)嚷暬蚰_步聲。
AudioGen 模型架構(gòu)。
EnCodec 神經(jīng)音頻編解碼器從原始信號中學(xué)習(xí)離散音頻 token,這相當(dāng)于給音樂樣本提供了新的固定「詞匯」;然后研究團(tuán)隊(duì)又在這些離散的音頻 token 上訓(xùn)練自回歸語言模型,以在使用 EnCodec 的解碼器將 token 轉(zhuǎn)換回音頻空間時生成新的 token、聲音和音樂。
總的來說,AudioCraft 簡化了音頻生成模型的整體設(shè)計。MusicGen 和 AudioGen 均由單個自回歸語言模型組成,并在壓縮的離散音樂表征流(即 token)上運(yùn)行。AudioCraft讓用戶可以使用不同類型的條件模型來控制生成,例如使用預(yù)訓(xùn)練的文本編碼器完成文本到音頻生成。