首頁 >科技週邊 >人工智慧 >Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

王林
王林轉載
2023-06-14 20:25:461346瀏覽

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

  • 論文連結:https://arxiv.org/pdf/2306.02207.pdf
  • Demo 頁面:https://ga642381.github.io/SpeechPrompt/speechgen.html
  • #Code: https://github.com /ga642381/SpeechGen

#引言與動機

大型語言模型(LLMs)在人工智慧生成內容(AIGC)方面引起了相當大的關注,特別是隨著ChatGPT 的出現。

然而,如何用大型語言模型處理連續語音仍然是一個未解決的挑戰,這項挑戰阻礙了大型語言模型在語音生成方面的應用。因為語音訊號包含豐富的訊息,如說話者和情感,超越了純文字數據,基於語音的語言模型 (speech language model (speech LM)) 不斷湧現。

雖然與基於文字的語言模型相比,語音語言模型仍處於早期階段,但由於語音資料中蘊含著比文字更豐富的訊息,它們具備巨大的潛力,令人充滿期待。

研究人員正積極探索提示 (prompt) 範式的潛力,以發揮預訓練語言模型的能力。這種提示透過微調少量參數,引導預訓練語言模型做特定的下游任務。這種技術因其高效和有效而在 NLP 領域備受青睞。在語音處理領域,SpeechPrompt 展現了在參數效率方面的顯著改進,並在各種語音分類任務中取得了競爭性的表現。

然而,提示能否幫助語音語言模型完成生成任務仍是未解之謎。在本文中,我們提出一個創新的統一框架:SpeechGen,旨在激發語音語言模型進行生成任務的潛力。如下圖所示,將一段語音、一個特定的提示 (prompt) 餵給 speech LM 作為輸入,speech LM 就能做特定的任務。例如將紅色的 prompt 當作輸入,speech LM 就能做 speech translation 的任務。

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

我們提出的框架具有以下優點:

1. 無文字(Textless):我們的框架以及其所依賴的語音語言模型獨立於文字數據,擁有無可估量的價值。畢竟,取得標記文字與語音配對的過程耗時繁瑣,在某些語言中甚至無法找到合適的文字。無需文字的特性使得我們的強大語音生成能力得以涵蓋各種語言需求,讓全人類受益匪淺。

2. 多功能性 (Versatility):我們發展的框架通用性極高,能應用於各種不同的語音產生任務。論文中實驗使用語音翻譯、語音修復、語音連續當作例子。  

3. 簡易性 (Easy to follow):我們提出的架構為各類語音產生任務提供了通用解決方案,讓設計下游模型和損失函數變得輕而易舉。

4. 可遷移性 (Transferability):我們的框架不僅容易適應未來更先進的語音語言模型,還蘊藏著巨大的潛力,讓效率和效果進一步提升。尤其令人振奮的是,隨著先進語音語言模型即將問世,我們的框架將迎來更強大的發展。  

5. 經濟性 (Affordability):我們的架構經過精心的設計,只需訓練少量參數,而不是整個龐大的語言模型。這大大減輕了運算負擔,並允許在 GTX 2080 GPU 上執行訓練過程。大學的實驗室也能負擔這樣的運算開銷。

SpeechGen介紹


#

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

我們的研究方法在於建構一個全新的框架SpeechGen,主要利用語音語言模型(Spoken Language Models, SLMs)進行各種下游語音生成任務的微調。在訓練過程中,SLMs 的參數保持不變,我們的方法著重於學習任務特定的提示(Prompt)向量。 SLMs 透過同時對提示向量和輸入單元進行條件設置,有效地產生特定語音生成任務所需的輸出。然後,這些離散單元輸出被輸入到基於單元的語音合成器中,產生對應的波形。

我們的 SpeechGen 框架由三個元素組成:語音編碼器、SLM 和語音解碼器(Speech Decoder)。

首先,語音編碼器將波形作為輸入,並將其轉換為由有限詞彙表導出的單位序列。為了縮短序列長度,會移除重複的連續單位以產生壓縮的單位序列。然後,SLM 作為單位序列的語言模型,透過預測前一單位和單位序列的後續單位來優化可能性。我們對 SLM 進行提示調整,以引導其根據任務產生適當的單位。最後,SLM 產生的標記由語音解碼器處理,將其轉換回波形。在我們的提示調整策略中,提示向量會在輸入序列的開始處插入,這將引導 SLMs 在生成過程中的方向。具體插入的提示數量,則取決於 SLMs 的架構。在序列到序列的模型中,編碼器輸入和解碼器輸入都會加入提示,但在只有編碼器或只有解碼器的架構中,只會在輸入序列前面加上一個提示。

在序列到序列的 SLMs(如 mBART)中,我們採用了自我監督學習模型(如 HuBERT)來處理輸入和目標語音。這樣做可以為輸入產生離散單元,並為目標產生對應的離散單元。我們在編碼器和解碼器輸入的前面都加入了提示向量,以建構輸入序列。此外,我們還透過替換注意力機制中的關鍵值對,以進一步增強提示的指導能力。

在模型訓練中,我們以交叉熵損失作為所有生成任務的目標函數,透過比較模型的預測結果和目標離散單元標籤來計算損失。在這個過程中,提示向量是模型中唯一需要訓練的參數,而 SLMs 的參數在訓練過程中保持不變,這確保了模型行為的一致性。我們透過插入提示向量,引導 SLMs 從輸入中提取任務特定訊息,並提高產生符合特定語音生成任務的輸出的可能性。這種方法讓我們可以微調並調整 SLMs 的行為,而無需修改其基礎參數。

總的來說,我們的研究方法是基於一種全新的框架SpeechGen,透過訓練提示向量,引導模型的生成過程,並使其能有效地產生符合特定語音產生任務的輸出。

實驗

我們的框架可以用於任意的 speech LM 及各類生成任務,具有很好的潛力。在我們的實驗中,由於 VALL-E 和 AudioLM 不是開源的,我們選擇使用 Unit mBART 作為 speech LM 進行案例研究。我們用語音翻譯 (speech translation)、語音修復 (speech inpainting)、語音連續 (speech continuation) 當作例子,來展示我們框架的能力。這三個任務的示意圖如下圖所示。所有的任務都是語音輸入,語音輸出,無需文字幫助。

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

語音翻譯

##我們正在訓練語音翻譯(speech translation) 時,用的是西班牙文轉英文的任務。我們給模型輸入西班牙語的語音,希望模型產生英文的語音,整個過程無需文字幫助。以下是幾個語音翻譯的例子,我們會展示正確答案 (ground truth) 與模型的預測 (model prediction)。這些演示範例表明模型的預測捕捉到了正確答案的核心含義。

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

语音修补

在我们进行语音修补 (speech inpainting) 的实验中,我们特别选取超过 2.5 秒的音频片段作为后续处理的目标语音,并通过随机选择过程挑选出一段时长介于 0.8 至 1.2 秒的语音片段。然后我们对选出的片段进行掩码,模拟语音修补任务中缺失或受损的部分。我们使用词错误率 (WER) 和字符错误率 (CER) 作为评估受损片段修复程度的指标。

对 SpeechGen 生成的输出与受损语音进行比较分析,我们的模型可以显著重建口语词汇,将 WER 从 41.68% 降低到 28.61%,将 CER 从 25.10% 降低到 10.75%,如下表所示。这意味着我们提出的方法能够显著提高语音重建的能力,最终促进语音输出的准确性和可理解性。

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

下图是一个展示样例,上面的子图是受损的语音,下面的子图是 SpeechGen 产生的语音,可以看到,SpeechGen 很好地修复了受损的语音。

Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務

语音连续

我们将通过 LJSpeech 展示语音连续任务的实际应用。在训练提示(prompt)期间,我们的策略是让模型只看到片段的 seed segment,这个 seed segment 占据了语音总长度的部分比例,我们将其称为条件比率(condition ratio, r),并让模型继续生成后续的语音。

以下是一些实例,黑色的文字代表种子片段(seed segment),红色的文字则是 SpeechGen 生成的句子(这里的文字首先经过语音识别得到结果。在训练和推理过程中,模型完全进行的是语音到语音的任务,且完全不接收任何文字信息)。不同的条件比率使 SpeechGen 能够生成不同长度的语句以实现连贯性,并完成一句完整的话。从质量角度看,生成的句子与种子片段在语法上基本一致,并且语义相关。虽然,生成的语音仍然无法完美地传达一个完整的意思。我们预期这个问题将在未来更强大的语音模型中得到解决。

不足与未来方向

语音语言模型和语音生成正处于蓬勃发展的阶段,而我们的框架则提供了一种巧妙地利用强大语言模型进行语音生成的可能性。然而,这个框架仍有一些尚待完善之处,也有许多值得我们深入研究的问题。

1. 与基于文本的语言模型相比,语音语言模型目前还处于发展的初级阶段。虽然我们提出的提示框架能激发语音语言模型做语音生成任务,但并不能达到卓越的性能。不过,随着语音语言模型的不断进步,比如从 GSLM 到 Unit mBART 的大转身,提示的表现有了明显的提升。特别是以前对 GSLM 具有挑战性的任务,现在在 Unit mBART 下表现出更好的性能。我们预计未来会出现更多先进的语音语言模型崭露头角。

2. 超越内容信息:当前的语音语言模型并不能完全捕捉到说话者和情感信息,这给当前的语音提示框架在有效处理这些信息方面带来了挑战。为了克服这个限制,我们引入即插即用模块,专门为框架注入说话者和情感信息。展望未来,我们预计未来的语音语言模型将整合和利用这些内容之外的信息,以提高性能并更好地处理语音生成任务中的说话者和情感相关方面。

3. 提示生成的可能性:對於提示生成,我們有著靈活多變的選擇,可以整合各種類型的指示,包括文字和圖像指示。想像一下,我們可以訓練一個神經網絡,讓它用圖像或文字作為輸入,而不是像本文中那樣使用訓練好的 embedding 當作提示。這個訓練好的網路將成為提示產生器,為框架增添了多樣性。這樣的方式會讓提示生成變得更加有趣、更加豐富多彩。

結論

本文我們探討了使用提示來解鎖語音語言模型在各種生成任務中的表現。我們提出了一個名為 SpeechGen 的統一框架,只有約 10M 的可訓練參數。我們所提出的框架具有幾大特性,包括無需文字、多功能性、高效性、可轉移性和可負擔性。為了展示 SpeechGen 框架的能力,我們以 Unit mBART 為案例進行研究,並在三個不同的語音生成任務上進行實驗:語音翻譯、語音修復和語音延續。

當這篇論文提交到arXiv 時,Google 提出了更先進的語音語言模型——SPECTRON,它為我們展示了語音語言模型在建模說話者和情感等資訊的可能性。這無疑是一個令人興奮的消息,隨著先進語音語言模型的不斷提出,我們的統一框架具有巨大的潛力。

以上是Prompt解鎖語音語言模型生成能力,SpeechGen實現語音翻譯、修補多項任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除