Meta最近開源了一個(gè)7B尺寸的Spirit LM的多模態(tài)語(yǔ)言模型,能夠理解和生成語(yǔ)音及文本,可以非常自然地在兩種模式間轉(zhuǎn)換,不僅能處理基本的語(yǔ)音轉(zhuǎn)文本和文本轉(zhuǎn)語(yǔ)音任務(wù),還能捕捉和再現(xiàn)語(yǔ)音中的情感和風(fēng)格。
在純文本大模型取得進(jìn)展的同時(shí),其他模態(tài)數(shù)據(jù),如語(yǔ)音與文本結(jié)合的語(yǔ)言模型(SpeechLMs)也成為了一個(gè)熱門的研究領(lǐng)域,但現(xiàn)有的模型要么在僅包含語(yǔ)音的數(shù)據(jù)上進(jìn)行訓(xùn)練,要么是關(guān)注特定任務(wù),如文本轉(zhuǎn)語(yǔ)音(TTS)、自動(dòng)語(yǔ)音識(shí)別(ASR)或翻譯,在其他模態(tài)數(shù)據(jù)和任務(wù)上的泛化能力十分有限。
在大型語(yǔ)言模型(LLM)性能不斷提升的情況下,一個(gè)常用的方法是先用ASR模型將語(yǔ)音轉(zhuǎn)錄成文本,然后用文本模型來(lái)生成新的文本,最后再用TTS模型將文本轉(zhuǎn)換成語(yǔ)音,這種流程的一個(gè)顯著缺陷就是語(yǔ)音表達(dá)性不佳,語(yǔ)言模型無(wú)法建模并生成富有表現(xiàn)力的語(yǔ)音數(shù)據(jù)。
最近,Meta開源了一個(gè)基礎(chǔ)多模態(tài)語(yǔ)言模型Spirit LM,基于一個(gè)70億參數(shù)的預(yù)訓(xùn)練文本語(yǔ)言模型,交錯(cuò)使用文本和語(yǔ)音數(shù)據(jù)進(jìn)行訓(xùn)練,使模型能夠自由地混合文本和語(yǔ)音,在任一模態(tài)中生成語(yǔ)言內(nèi)容。
將語(yǔ)音和文本序列拼接成一條token流,并使用一個(gè)小型的、自動(dòng)整理(automatically-curated)的語(yǔ)音-文本平行語(yǔ)料庫(kù),采用逐詞交錯(cuò)的方法進(jìn)行訓(xùn)練。
Spirit LM有兩個(gè)版本:基礎(chǔ)版(Base)使用語(yǔ)音音素單元(HuBERT),表達(dá)版(Expressive)還額外使用音高和風(fēng)格單元來(lái)模擬表達(dá)性,以增強(qiáng)模型在生成語(yǔ)音時(shí)的表現(xiàn)力,也就是說(shuō)模型不僅能夠理解和生成基本的語(yǔ)音和文本,還能在表達(dá)情感和風(fēng)格方面表現(xiàn)得更加豐富和自然。
對(duì)于兩個(gè)版本的模型,文本都使用子詞BPE標(biāo)記進(jìn)行編碼,最終得到的模型既展現(xiàn)了文本模型的語(yǔ)義能力,也具備語(yǔ)音模型的表達(dá)能力;模型還能夠在少量樣本的情況下跨模態(tài)學(xué)習(xí)新任務(wù)(例如自動(dòng)語(yǔ)音識(shí)別、文本轉(zhuǎn)語(yǔ)音、語(yǔ)音分類)。
不過(guò)需要注意的是,和其他預(yù)訓(xùn)練模型一樣,Sprit LM也可能會(huì)生成一些不安全的內(nèi)容,所有基于該技術(shù)的應(yīng)用都需要進(jìn)行額外的安全測(cè)試和調(diào)整。
Spirit LM
模型的架構(gòu)比較簡(jiǎn)單,訓(xùn)練過(guò)程就是基本的「預(yù)測(cè)下一個(gè)詞」,不過(guò)「詞」是通過(guò)編碼器從語(yǔ)音或文本中提取的,然后通過(guò)解碼器以原來(lái)的模態(tài)進(jìn)行重新呈現(xiàn);訓(xùn)練數(shù)據(jù)包括三種:僅包含文本的序列、僅包含語(yǔ)音的序列以及交錯(cuò)的語(yǔ)音-文本序列的混合數(shù)據(jù)。
基礎(chǔ)版
語(yǔ)音編碼器
使用的HuBERT模型,該模型在多個(gè)數(shù)據(jù)集的混合上進(jìn)行訓(xùn)練,包括多語(yǔ)言的LibriSpeech、Vox Populi、Common Voice、Spotify以及Fisher,最后得到一個(gè)包含501個(gè)音素語(yǔ)音token的詞匯表。
語(yǔ)音和文本分詞器
使用LLaMA默認(rèn)的分詞器來(lái)處理文本,使用前述的HuBERT分詞器來(lái)處理語(yǔ)音;為了提高模型的質(zhì)量,對(duì)HuBERT的token進(jìn)行了去重處理;對(duì)于單模態(tài)數(shù)據(jù)集(僅文本和僅語(yǔ)音),在分詞后的數(shù)據(jù)前加上相應(yīng)的模態(tài)標(biāo)記。
文本數(shù)據(jù):[TEXT]這是一個(gè)文本句子
音頻數(shù)據(jù):[SPEECH][Hu262][Hu208][Hu499][Hu105]
交錯(cuò)語(yǔ)音和文本(Interleaving Speech and Text)
對(duì)于對(duì)齊的語(yǔ)音+文本數(shù)據(jù)集,通過(guò)在單詞級(jí)別交錯(cuò)語(yǔ)音和文本來(lái)混合:[TEXT]the cat [SPEECH][Hu3][Hu7]..[Hu200][TEXT]the mat
研究人員認(rèn)為,交錯(cuò)訓(xùn)練可以幫助模型學(xué)習(xí)語(yǔ)音和文本之間的對(duì)應(yīng)關(guān)系,從而實(shí)現(xiàn)更好的文本到語(yǔ)音的轉(zhuǎn)換;在每個(gè)訓(xùn)練步驟中,句子中的語(yǔ)音和文本部分是隨機(jī)采樣的。
語(yǔ)音解碼器
在從語(yǔ)音token進(jìn)行語(yǔ)音合成方面,研究人員在Expresso數(shù)據(jù)集上訓(xùn)練了一個(gè)HifiGAN聲碼器,其依賴于HuBERT語(yǔ)音token和Expresso特定說(shuō)話人的嵌入向量。
在訓(xùn)練期間,HifiGAN模型會(huì)輸入重復(fù)的token,但同時(shí)也會(huì)訓(xùn)練一個(gè)時(shí)長(zhǎng)預(yù)測(cè)模塊,可以更準(zhǔn)確地知道每個(gè)語(yǔ)音token在實(shí)際語(yǔ)音中應(yīng)該持續(xù)多久,最終生成一個(gè)語(yǔ)音波形。
表達(dá)版
HuBERT能夠從語(yǔ)音中捕獲良好的音素信息,但在表達(dá)性方面表現(xiàn)不佳。
研究人員的目標(biāo)是在不依賴生物特征識(shí)別的情況下,模型依然能夠理解和保留輸入語(yǔ)音中的情感,所以需要用額外的音高token和風(fēng)格token來(lái)補(bǔ)充HuBERT的音素語(yǔ)音token,并將其包含在語(yǔ)言模型訓(xùn)練中,以便訓(xùn)練后的Spirit LM Expressive模型能夠捕獲并生成更具表現(xiàn)力的語(yǔ)音。
pitch(音高) token
在語(yǔ)音合成和處理中,音高是一個(gè)關(guān)鍵因素,決定了聲音的高低,對(duì)人類理解語(yǔ)句的情感和語(yǔ)氣來(lái)說(shuō)非常關(guān)鍵。音高token可以用來(lái)捕捉音高變化。當(dāng)我們說(shuō)話時(shí),聲音的高低起伏不僅可以表達(dá)不同的情感,比如興奮時(shí)聲音高亢,悲傷時(shí)聲音低沉,還可以幫助我們?cè)诳谡Z(yǔ)交流中區(qū)分不同的詞語(yǔ)和句子的意圖。
研究人員在Expresso數(shù)據(jù)集上訓(xùn)練了一個(gè)VQ-VAE模型,碼本大小為64,下采樣率為128,即每秒可以產(chǎn)生12.5個(gè)音高token;在訓(xùn)練音高量化器時(shí),使用pyaapt8提取基頻(F0);使用FCPE9,一個(gè)基于Transformer的快速音高估計(jì)器,來(lái)提高推理速度。
style(風(fēng)格) token
研究人員提取了語(yǔ)音風(fēng)格特征來(lái)捕捉輸入語(yǔ)音的表達(dá)風(fēng),在輸入片段上進(jìn)行平均池化處理,每秒生成一個(gè)特征,然后在Expresso數(shù)據(jù)集上微調(diào)特征來(lái)預(yù)測(cè)表達(dá)風(fēng)格,從而進(jìn)一步從語(yǔ)音風(fēng)格特征中去除說(shuō)話人信息,最后在Expresso數(shù)據(jù)集的規(guī)范化特征上訓(xùn)練了一個(gè)有100個(gè)單元的k均值聚類。
表達(dá)性語(yǔ)音分詞器(Expressive Speech Tokenization)
將三種類型的標(biāo)記(每秒25次的HuBERT標(biāo)記、每秒12.5次的音高標(biāo)記和每秒1次的風(fēng)格標(biāo)記)按照對(duì)應(yīng)的時(shí)間戳進(jìn)行排序,混合成一個(gè)單一的token序列。
與Spirit LM基礎(chǔ)版相同,表達(dá)版同樣對(duì)HuBERT的token和音高token進(jìn)行去重,最后輸入序列類似于:[SPEECH][St10][Pi0][Hu28][Hu22][Pi14][Hu15][Pi32][Hu78][Hu234][Hu468]
表達(dá)性語(yǔ)音解碼器(Expressive Speech Decoder)
研究人員訓(xùn)練了一個(gè)HifiGAN模型,依賴于HuBERT token、音高token、風(fēng)格token以及來(lái)自Expresso聲音的1-hot說(shuō)話人嵌入向量。同時(shí)還訓(xùn)練了一個(gè)時(shí)長(zhǎng)預(yù)測(cè)器來(lái)預(yù)測(cè)HuBERT token持續(xù)時(shí)間。在推理過(guò)程中,將每個(gè)HuBERT token與相應(yīng)的音高token和風(fēng)格標(biāo)記token,并根據(jù)需要進(jìn)行重復(fù)。
實(shí)驗(yàn)結(jié)果
Spirit LM能夠在接收語(yǔ)音token或文本token的提示時(shí),生成語(yǔ)義和表達(dá)上一致的內(nèi)容,將通過(guò)定量評(píng)估一系列需要生成文本或語(yǔ)音token的基準(zhǔn)測(cè)試,特別評(píng)估Spirit LM在單模態(tài)和跨模態(tài)場(chǎng)景中的語(yǔ)義能力。
自動(dòng)語(yǔ)音識(shí)別(ASR)和文本轉(zhuǎn)語(yǔ)音(TTS)
與文本語(yǔ)言模型類似,SPIRIT語(yǔ)言智能體可以通過(guò)少量樣本提示來(lái)執(zhí)行特定任務(wù)。
可以看到,Spirit LM使用10個(gè)樣本的提示能夠獲得最佳性能,最佳模型在Librispeech清潔數(shù)據(jù)上的詞錯(cuò)誤率為21.9,文本轉(zhuǎn)語(yǔ)音的字符錯(cuò)誤率為45.5
在訓(xùn)練中加入平行的ASR和TTS樣本可以極大提高性能,但加入ASR和TTS數(shù)據(jù)對(duì)其他任務(wù)的影響非常有限。
在執(zhí)行語(yǔ)音意圖分類(IC)任務(wù)時(shí)可以發(fā)現(xiàn),隨著樣本數(shù)量的增加,準(zhǔn)確率也提高了,模型準(zhǔn)確率達(dá)到了79%
跨模態(tài)對(duì)齊
為了更好地理解模型在僅在交錯(cuò)數(shù)據(jù)和原始語(yǔ)音和文本上訓(xùn)練的情況下,如何實(shí)現(xiàn)良好的跨模態(tài)性能的隱藏機(jī)制,研究人員查看了模型特征的token級(jí)相似性,其中特征來(lái)自于HuBERT token的輸入序列和相應(yīng)的BPE token,計(jì)算了從不同層提取的語(yǔ)音和文本特征的相同單詞的最大相似性。
結(jié)果發(fā)現(xiàn),模型內(nèi)部口語(yǔ)和書面序列之間的相似性從第2層和第20層開始增加,并且在早期到中間層中,在用單詞級(jí)轉(zhuǎn)錄訓(xùn)練的模型中效果較差,表明模態(tài)混合可以對(duì)齊語(yǔ)音和文本,使模型能夠?qū)⒄Z(yǔ)音序列與相應(yīng)的文本序列映射起來(lái)。
表達(dá)性建模
當(dāng)不給智能體任何先前的樣本,直接根據(jù)語(yǔ)音或文本提示生成內(nèi)容(零樣本)時(shí),可以發(fā)現(xiàn)帶有額外音高和風(fēng)格token的表達(dá)版模型在大多數(shù)情況下都比基礎(chǔ)版模型的表現(xiàn)更好,只是在文本內(nèi)容生成(文本到文本)方面兩者表現(xiàn)差不多。
當(dāng)給模型少量樣本來(lái)學(xué)習(xí)時(shí),可以發(fā)現(xiàn)這種方法對(duì)于除了語(yǔ)音內(nèi)容生成(語(yǔ)音到語(yǔ)音)之外的所有情況都有幫助。無(wú)論是零樣本還是少量樣本,保持情感的連續(xù)性在相同類型的數(shù)據(jù)(比如文本到文本或語(yǔ)音到語(yǔ)音)中比在不同類型的數(shù)據(jù)(比如語(yǔ)音到文本)中做得更好;在所有測(cè)試中,語(yǔ)音到文本的方向得分最低。
此外,研究人員還直接評(píng)估了模型對(duì)輸入提示的處理能力,結(jié)果發(fā)現(xiàn),無(wú)論是哪種提示,模型都能得到很高的評(píng)分,表明還有很大的空間來(lái)進(jìn)一步提高模型在保持情感表達(dá)方面的能力,也意味著,智能體在理解和生成情感豐富的內(nèi)容方面還有很大的潛力可以挖掘。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。