蘋果接入GPT-4o,Siri史詩級(jí)加強(qiáng)背后的語音技術(shù)是如何實(shí)現(xiàn)的?
共 22813字,需瀏覽 46分鐘
·
2024-06-14 10:33
??目錄
1 語音的離散化:向 LLM 看齊!
2 讓 LLM 理解語音 token!
3 LLM 如何合成語音:Zero-shot TTS
4 其他問題
5 對(duì)游戲配音業(yè)務(wù)的思考
6 全文總結(jié)
在語音方面,GPT-4o 做到了實(shí)時(shí)低延遲,平均響應(yīng)時(shí)間與人類反應(yīng)速度相當(dāng),輸出的語音能夠理解極度貼合對(duì)話上下文,能夠理解人類的情感情緒,聽覺質(zhì)量上佳,與真人無異。這背后的技術(shù)實(shí)現(xiàn),是怎么做到的?
馬斯克在 X(原Twitter)上的連番炮轟,為這個(gè)新聞增添了又一輪熱度,他表示倘若蘋果在操作系統(tǒng)層面集成 OpenAI,他就將禁止其設(shè)備進(jìn)入自己旗下的公司,指責(zé)蘋果這是出賣用戶數(shù)據(jù)。并且配了一張意味深長的圖:
技術(shù)背后的八卦與口水戰(zhàn),看看就好,技術(shù)人還是要回歸技術(shù)的本源,去了解那些真正底層的知識(shí)價(jià)值。為什么 GPT-4o 的出現(xiàn)改寫了人機(jī)交互?又為什么 GPT-4o 的語音技術(shù)顛覆了此前所有的語音助手功能?本文作者將為你詳細(xì)解析。
-
語音如何離散化? -
如何讓 LLM 理解語音的 token?加入語音 token 之后,LLM 在語音數(shù)據(jù)的理解上是否具有涌現(xiàn)性? -
LLM 如何合成/解碼語音?
01
02
-
要想讓 LLM 輸出上下文連貫的高表現(xiàn)力語音,必須要讓 LLM 看到語義 token 和聲學(xué) token,只有語義 token,那語音就會(huì)顯得呆板機(jī)械,只有聲學(xué) token,那語音就不知所云; -
LLM 的指令微調(diào)同樣可以遷移到語音-文本多模態(tài)領(lǐng)域中,LLM 的指令微調(diào)同樣可以帶來如同 NLP 一樣的涌現(xiàn)性; -
高質(zhì)量指令微調(diào)數(shù)據(jù)集的構(gòu)建應(yīng)該是最大的瓶頸!一下子讓 LLM 同時(shí)做語音理解和語音生成,難度非常大。不如分步進(jìn)行。 -
如果要分步進(jìn)行的話,要先實(shí)現(xiàn)一個(gè)類似于 SALMONN[10] 那樣的多模態(tài)理解模型和一個(gè)強(qiáng)大的 Zero-shot TTS 模型。前者用于給語音數(shù)據(jù)打上豐富的標(biāo)簽,可以是情感情緒、韻律、音高、語速,也可以是口音、意圖和說話環(huán)境;后者則用于生成高質(zhì)量的語音數(shù)據(jù)。畢竟,高質(zhì)量的、文本和語音嚴(yán)格對(duì)齊的 TTS 數(shù)據(jù)實(shí)在是太少了,尤其是中文領(lǐng)域。有了這兩個(gè)模型的加持,我們其實(shí)就能夠構(gòu)造出高質(zhì)量的指令微調(diào)數(shù)據(jù)集。我不知道 OpenAI 是否有 SALMONN 這樣的模型,但 OpenAI 的 OpenVoice 模型應(yīng)該足夠?yàn)槠涮峁└哔|(zhì)量的語音數(shù)據(jù)了。
03
-
語音既有語義 token,又有聲學(xué) token,應(yīng)該要如何解碼成語音? -
SLM 在合成語音的過程中是否能夠遵循多輪對(duì)話中的文本指令和語音指令?這個(gè)很重要!這允許模型根據(jù)用戶的即時(shí)要求來生成語音回復(fù)。比如說,OpenAI 演示視頻中出現(xiàn)的:“將語速提高兩倍”、“采用更加機(jī)械化的語氣”這樣的要求。
-
在 LLM 大行其道、scaling law 大顯神威的時(shí)代,TTS 模型的訓(xùn)練數(shù)據(jù)規(guī)模已經(jīng)突破了萬小時(shí),甚至達(dá)到了數(shù)十萬小時(shí)的級(jí)別。在大數(shù)據(jù)的加持下,TTS 任務(wù)上也涌現(xiàn)出了 in-context learning 能力。 -
語音信息的解碼通常都要層次化或者多步進(jìn)行,不能一步到位。自回歸、擴(kuò)散模型和流匹配都能在 TTS 中發(fā)揮作用; -
借鑒 NLP instruction fine-tuning 和文生圖的經(jīng)驗(yàn),TTS 模型同樣可以遵循文本指令或者語音指令,合成符合用戶即時(shí)要求的語音,擺脫對(duì)參考音頻的依賴,這或許也能規(guī)避一些知識(shí)產(chǎn)權(quán)的困擾(比如最近有名的寡姐投訴 OpenAI 事件)。同時(shí),用戶也能在對(duì)話過程中隨時(shí)切換語音回復(fù)的風(fēng)格,這一點(diǎn)在 OpenAI 的 demo 中有很明確的體現(xiàn)。另外,不知道大家有沒有注意,GPT-4o 合成的語音是可以是放映所處的聲學(xué)環(huán)境的:有一段語音背后似乎是有鋼琴聲的。 -
text-guided zero-shot TTS 在模型架構(gòu)上和 zero-shot TTS 有非常大的相似性。但訓(xùn)練數(shù)據(jù)可能較為缺乏。先開發(fā) zero-shot TTS,再用類似 SALMONN 那樣的多模態(tài)理解模型來打標(biāo)簽(類似 DALLE3 的做法),這樣數(shù)據(jù)集構(gòu)造方式,可能會(huì)是更好的選擇。
-
如果要做流式推理,外接類似 HIFIGAN 這樣的聲碼器的方式可能不是好的選擇。HIFIGAN 并不天然支持流式解碼。相反地,諸如 SoundStream 和 Encodec 這樣的方法,同時(shí)有流式變體和非流式變體; -
先做語義 token 的解碼,這個(gè)解碼大概率是自回歸解碼。語義 token 畢竟是建模上下文依賴關(guān)系,自回歸方法已經(jīng)在 NLP 上證明了這一點(diǎn); -
然后做聲學(xué) token 的解碼,擴(kuò)散或者 flow-matching 可能是更好的選擇。擴(kuò)散模型或者流匹配可以很好地修補(bǔ)語音的細(xì)節(jié);
04
05
-
用自然語言提示去合成音色穩(wěn)定的語音,擺脫對(duì)參考音頻的依賴,在業(yè)務(wù)中能夠更加靈活,至少比克隆已有人物/角色的語音的方式更加方便,更不容易出戲。舉個(gè)例子,在開放世界劇情類游戲的研發(fā)階段,我們會(huì)設(shè)定一些 profile 賦予 NPC,讓玩家跟 NPC 聊天。我們?cè)?jīng)用克隆《原神》、《崩壞:星穹鐵道》已有角色的方式賦予這些 NPC 角色語音,但放在那些歐美背景的 NPC 中,就是很有違和感,沒有現(xiàn)實(shí)世界中的 accent,不夠 decent。 -
劇情任務(wù)中的配音會(huì)更加真人化、更有沉浸感。過年期間過《崩壞:星穹鐵道》花火和黑天鵝的同行任務(wù)的時(shí)候,部分 NPC 角色會(huì)有六公主的翻譯腔,這是花火行于歡愉命途的惡趣味,空氣中頓時(shí)充滿了快活的味道。如果走 bv2、gsv 的語音克隆方案,應(yīng)該是很難有這種效果的。而且,玩家在劇情任務(wù)中勢必會(huì)經(jīng)過不同的地勢地貌,至少室內(nèi)、室外的聲音聽起來是有不同的。室內(nèi)的聲音至少會(huì)有回響、混響的吧。這種感覺語音克隆方案也是無法做到的。
06
-
audio & text tokenizer 的實(shí)現(xiàn)應(yīng)該是語音離散化部分所用的技術(shù),例如 SoundStream、Encodec、SpeechTokenizer,或者是 MEL+VQ 最后配合聲碼器來解碼;參考 zero-shot TTS、AudioLM/AudioPaLM、SpeechGPT-Gen 等工作的結(jié)果,LLM 中語音 token 的解碼應(yīng)該是要走層次化或者多步的方法,先解碼語義特征,再解碼聲學(xué)特征,或者是先解碼 MEL,再加一個(gè)HIFIGAN 這樣的聲碼器。另外,如果做 audio/speech/music 這樣的通用聲合成的話,可能也能通過 prompt 來控制。AudioLDM2 雖然做了這方面的工作,但 audio/music 和 speech 的參數(shù)其實(shí)是不一樣的,說到底還不是同一個(gè)模型。 -
對(duì)于指令微調(diào),數(shù)據(jù)集的構(gòu)造非常重要,大概率要用到合成數(shù)據(jù)。其一,網(wǎng)絡(luò)上高質(zhì)量語音數(shù)據(jù)的量級(jí)遠(yuǎn)遠(yuǎn)不及文本,直接拿 ASR 數(shù)據(jù)來做肯定會(huì)影響模型合成語音的音質(zhì);其二,大語言模型合成的 instruction 往往觸及不到語音的細(xì)粒度特征,這樣的 instruction 其實(shí)無法準(zhǔn)確詳盡地描述 text 和 speech 之間的關(guān)系。因而,需要引入強(qiáng)大的 zero-shot TTS 模型合成高質(zhì)量語音,然后用多模態(tài)語音理解模型來為合成語音打標(biāo)簽,當(dāng)然也可以評(píng)分做篩選什么的。 -
最后是要讓大模型的輸出對(duì)齊人類的偏好。這方面的方法有很多,有 DPO、PPO 什么的,都可以用。
作者主頁鏈接:https://www.zhihu.com/people/wen-xue-zhi-45/posts
????歡迎加入騰訊云開發(fā)者社群,享前沿資訊、大咖干貨,找興趣搭子,交同城好友,更有鵝廠招聘機(jī)會(huì)、限量周邊好禮等你來~
(長按圖片立即掃碼)
評(píng)論
圖片
表情
