音訊課程文件

使用管道進行音訊生成

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

使用管道進行音訊生成

音訊生成包含一系列涉及生成音訊輸出的通用任務。我們將在這裡探討的任務是語音生成(又稱“文字轉語音”)和音樂生成。在文字轉語音中,模型將一段文字轉換為逼真的口語,為虛擬助手、視障輔助工具和個性化有聲讀物等應用打開了大門。另一方面,音樂生成可以實現創造性表達,主要用於娛樂和遊戲開發行業。

在 🤗 Transformers 中,您會找到一個涵蓋這兩個任務的管道。這個管道被稱為 "text-to-audio",但為了方便起見,它也有一個 "text-to-speech" 別名。在這裡我們將同時使用這兩個,您可以自由選擇哪個更適用於您的任務。

讓我們探討如何使用此管道,僅需幾行程式碼即可開始為文字生成音訊旁白和音樂。

此管道是 🤗 Transformers 的新功能,作為 4.32 版本的一部分發布。因此,您需要將庫升級到最新版本才能獲得此功能

pip install --upgrade transformers

生成語音

讓我們從探索文字轉語音生成開始。首先,就像音訊分類和自動語音識別一樣,我們需要定義管道。我們將定義一個文字轉語音管道,因為它最能描述我們的任務,並使用 suno/bark-small 檢查點。

from transformers import pipeline

pipe = pipeline("text-to-speech", model="suno/bark-small")

下一步就像將一些文字傳遞給管道一樣簡單。所有預處理都將在幕後為我們完成

text = "Ladybugs have had important roles in culture and religion, being associated with luck, love, fertility and prophecy. "
output = pipe(text)

在筆記本中,我們可以使用以下程式碼片段來收聽結果

from IPython.display import Audio

Audio(output["audio"], rate=output["sampling_rate"])

我們與管道一起使用的模型 Bark 實際上是多語言的,因此我們可以輕鬆地將原始文字替換為法語文字,並以完全相同的方式使用管道。它會自行識別語言

fr_text = "Contrairement à une idée répandue, le nombre de points sur les élytres d'une coccinelle ne correspond pas à son âge, ni en nombre d'années, ni en nombre de mois. "
output = pipe(fr_text)
Audio(output["audio"], rate=output["sampling_rate"])

這個模型不僅是多語言的,它還可以生成包含非語言交流和歌唱的音訊。以下是您可以讓它唱歌的方法

song = "♪ In the jungle, the mighty jungle, the ladybug was seen. ♪ "
output = pipe(song)
Audio(output["audio"], rate=output["sampling_rate"])

我們將在後續專門介紹文字轉語音的單元中深入探討 Bark 的具體細節,並展示如何將其他模型用於此任務。現在,讓我們生成一些音樂!

生成音樂

和之前一樣,我們首先例項化一個管道。對於音樂生成,我們將定義一個文字轉音訊管道,並使用預訓練檢查點 facebook/musicgen-small 初始化它。

music_pipe = pipeline("text-to-audio", model="facebook/musicgen-small")

讓我們建立一個我們想要生成的音樂的文字描述

text = "90s rock song with electric guitar and heavy drums"

我們可以透過向模型傳遞一個額外的 max_new_tokens 引數來控制生成輸出的長度。

forward_params = {"max_new_tokens": 512}

output = music_pipe(text, forward_params=forward_params)
Audio(output["audio"][0], rate=output["sampling_rate"])
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.