近年來,智能語音語言技術(shù)蓬勃發(fā)展,逐步改變著人們生產(chǎn)生活的方式,在社交領(lǐng)域更是對智能語音技術(shù)提出了更高的要求。
日前,在51CTO主辦的AISummit全球人工智能技術(shù)大會上,Soul語音算法負(fù)責(zé)人劉忠亮,帶來了主題演講《Soul智能語音技術(shù)實踐之路》,立足于Soul的一些業(yè)務(wù)場景,分享了Soul在智能語音技術(shù)的一些實踐經(jīng)驗。
現(xiàn)將演講內(nèi)容整理如下,希望對大家有所啟發(fā)。
Soul的語音應(yīng)用場景
Soul是一個基于興趣圖譜推薦的具有沉浸感的社交場景,在這個場景下,語音交流非常多,所以在過去一段時間積累了很多的數(shù)據(jù)。目前大概一天有上百萬小時的量級,如果去除掉語音通話當(dāng)中的一些靜音、噪聲等等,只統(tǒng)計這些有意義的音頻片段的話,大概有六七億條音頻片段。Soul的語音業(yè)務(wù)入口主要是以下幾個:
語音派對
群組可以創(chuàng)建房間,很多用戶在里面進行語音聊天。
視頻派對
Soul平臺的用戶,其實大部分是不希望露臉的,不希望暴露自己的,所以我們就做了一個自研的3D的Avatar形象或者頭套給用戶使用,幫助用戶更好地去表達自己或者是無壓力的表達自己。
狼人殺游戲
也是一個房間,里面也可以是好多人一起玩游戲。
語音匹配
一個比較有特色的場景,就是語音匹配,或者說它跟微信打電話一樣,就是可以一對一的去聊天。
基于這些場景,我們構(gòu)建了自研語音能力,主要圍繞兩大方向:第一是自然的人機交互,第二是內(nèi)容理解與生成。主要四個方面:第一是語音識別和語音合成;其次是語音分析和語音動畫,下圖是我們用到的常見的語音工具,主要有語音分析,比如音質(zhì)、音效、音樂這些方向。然后是語音識別,比如中文識別、歌聲識別、中英混讀。第三是語音合成相關(guān)的,比如文娛轉(zhuǎn)換、語音轉(zhuǎn)換、歌聲合成相關(guān)的事情。第四是語音動畫,主要是做了一些文字驅(qū)動口形、語音驅(qū)動口形等等一些語音動畫的技術(shù)。
基于這些語音算法能力,我們有很多語音應(yīng)用形式,比如語音質(zhì)量的檢測,包括增強,語音審核,文字配音、語音話題、虛擬環(huán)境音,比如這些3D的空間音效等等。下面針對語音審核和虛擬形象兩個業(yè)務(wù)場景下用到的技術(shù)進行介紹。
語音內(nèi)容審核
語音內(nèi)容審核是通過對音頻片段進行涉政、色情、辱罵、廣告等這些維度的內(nèi)容進行打標(biāo)簽,或者是進行識別,通過這些違規(guī)標(biāo)簽的檢測和審核,來保障網(wǎng)絡(luò)安全。這里面用到的最核心的技術(shù)就是端到端語音識別,它輔助將用戶的音頻轉(zhuǎn)成文字,然后再給下游的審核人員進行二次質(zhì)檢。
端到端的語音識別系統(tǒng)
下圖是我們目前正在使用的一個端到端語音識別框架,首先它會抓取用戶的一個片段音頻進行特征提取,目前用到的特征有很多,我們主要是用了Alfa-Bank特征,在一部分場景下嘗試用了Wav2Letter這種預(yù)訓(xùn)練得到的特征。得到音頻特征之后會進行一個端點檢測,就是檢測這個人是不是在說話,這個音頻片段有沒有人聲。目前用到的基本上是一些經(jīng)典的能量VD和模型DNVD。
拿到這些特征之后,我們會送到一個聲學(xué)打分的模塊,這個聲學(xué)模型我們在開始的時候是用的Transformer CDC,目前已經(jīng)迭代到了Conformer CDC。經(jīng)過這個聲學(xué)打分之后,我們會把一系列的序列的分?jǐn)?shù)送給解碼器,解碼器負(fù)責(zé)解碼出文字來,它會基于識別結(jié)果再進行二次打分。在這個過程中,我們用到的模型基本上還是一些比如傳統(tǒng)的EngelM模型,還有一些目前比較主流的Transformer深度學(xué)習(xí)的模型進行重打分。最后,我們還會做一個后處理,比如經(jīng)過一些標(biāo)點的檢測、文本正則化、語句順滑等這些處理,最終得到一個有意義的比較準(zhǔn)確的識別文字結(jié)果,比如“2022年全球人工智能大會”。
在端到端語音識別系統(tǒng)里面,其實我們講的端到端主要是在聲學(xué)打分這部分我們是使用了端到端技術(shù),其他的主要還是一些傳統(tǒng)的和一些經(jīng)典的深度學(xué)習(xí)方式。
在構(gòu)建上面這個系統(tǒng)過程中,我們實際上是遇到了很多問題,在這里主要是列舉三個:
有監(jiān)督聲學(xué)數(shù)據(jù)太少 這也是大家通常都遇到的事情。主要原因就是,一是音頻你必須要的聽完才能做標(biāo)注。第二,它的標(biāo)注成本也是非常高的。所以這部分?jǐn)?shù)據(jù)少是一個大家都共性的問題。
模型識別效果差 這個有很多原因。第一個是比如在中英混讀或者多領(lǐng)域的時候,用通用模型去識別它會存在比較差的現(xiàn)象。
模型速度慢
針對這幾個問題,我們主要是通過如下三個方式去解決的。
數(shù)據(jù)預(yù)處理
Soul的場景多且比較復(fù)雜。比如群聊派對,它會出現(xiàn)多個人交疊的情況或者AB一直在對話。比如在在線KTV,它會出現(xiàn)一些邊唱歌邊說話的情況。但是我們在標(biāo)注數(shù)據(jù)的時候,因為它比較昂貴,所以我們會選取這些場景下面比較干凈的數(shù)據(jù)進行標(biāo)注,比如可能會標(biāo)注一萬小時干凈數(shù)據(jù)。但是干凈的數(shù)據(jù)跟真實場景的數(shù)據(jù)的復(fù)雜性是不一樣的,所以我們會基于這些干凈數(shù)據(jù)做一些數(shù)據(jù)預(yù)處理。比如一些經(jīng)典的加噪、加混響、調(diào)速,比較把速度調(diào)快一些或者調(diào)慢一些,調(diào)能量,把能量調(diào)大、調(diào)小一些,經(jīng)過這些比較經(jīng)典的一些數(shù)據(jù)預(yù)處理方式。
除了這些方式,我們會針對我們業(yè)務(wù)場景下出現(xiàn)的一些問題,我們會做一些針對性的數(shù)據(jù)預(yù)處理或者數(shù)據(jù)增廣。比如剛才提到群聊派對很容易出現(xiàn)多說話人交疊的情形,所以我們會做一個多說話人拼接音頻,也就是說把ABC三個說話人的音頻片段我們會做一個cut,一起去做數(shù)據(jù)增廣。
因為在音視頻通話里面有一些會在整個音頻前端做一些基本的3D算法的預(yù)處理,比如自動回聲消除、智能降噪等等,所以說我們也會為了適配線上的使用場景也會做一些3D算法的預(yù)處理。
經(jīng)過這些方式的數(shù)據(jù)預(yù)處理之后,我們可以得到多樣性的這些數(shù)據(jù),比如帶噪聲的、有一些混響的、多人甚至多風(fēng)格的這種數(shù)據(jù)都會增廣出來。比如我們會把一萬小時增廣成大概五萬小時甚至比如八九萬小時這么一個量級,這樣的話,數(shù)據(jù)的覆蓋度、廣度就會非常高。
模型微創(chuàng)新
我們使用的模型的主要框架還是Conformer結(jié)構(gòu)。在這個Conformer結(jié)構(gòu)左邊就是經(jīng)典的Encoder CDC框架。右邊是一個Attention Decoder。但是大家注意到,我們在右邊這個Loss里邊,原來的Conformer結(jié)構(gòu)是一個CE Loss,而我們這邊把它換成了Focal Loss。主要是我們是使用Focal Loss去解決稀疏單元、稀疏數(shù)據(jù)訓(xùn)練不收斂的問題,或者訓(xùn)練差的問題,它是可以解決的。
比如在中英混讀里面,有些英文單詞我們在訓(xùn)練數(shù)據(jù)里面是很少的,這種情況下這個單元是學(xué)不好的。通過Focal Loss我們可以把它的Loss權(quán)重給調(diào)高一些,可以緩解一部分?jǐn)?shù)量問題或者訓(xùn)練不好的問題,能夠解決一部分bad case。
第二個點,我們在訓(xùn)練策略上會不一樣,比如我們在訓(xùn)練策略也會采用一些混合訓(xùn)練的方式,比如在前期訓(xùn)練的時候,我們訓(xùn)練Decode這部分輸入的時候,我們還是采用精標(biāo)的Label序列數(shù)據(jù)作為輸入。但是隨著訓(xùn)練模型收斂,后期的時候我們會按照一定概率去采樣一部分預(yù)測出來的Label作為Decoder的輸入,來做一些Trick,這個trick主要解決什么?就是訓(xùn)練模型跟線上推理模型的輸入特征不一致的現(xiàn)象,通過這種方式我們是可以解決一部分的。
但還有一個問題就是,其實在這個Conformer模型原來或者比如Vnet或者ESPnet他們提供的模型里面,默認(rèn)是一個絕對位置信息。但是絕對位置信息它不能解決序列過長的時候的識別問題,所以我們會把絕對位置信息改成相對位置編碼來解決這個問題。通過這種方式,可以解決識別過程中出現(xiàn)的比如說有些詞重復(fù)或者是偶發(fā)的丟字或者丟詞的現(xiàn)象,這個問題也是可以解決的。
推理加速度
第一個是聲學(xué)模型,我們會把自回歸的模型改成這種基于Encoder CDC+WFST解碼的方式,先解出一部分識別結(jié)果,比如NBest、10best或者20best;20best,我們會送到Decorde Rescore去做一個二遍重打分,這樣的話可以避免時序依賴的關(guān)系,便于GPT并行的進行計算或推理。
除了經(jīng)典的這種加速的方式,我們還做了混合量化的方式,就是我們在深度學(xué)習(xí)前向推理的過程中,我們一部分使用8Bit進行計算,但是在核心的一部分,比如金融函數(shù)這部分我們依然使用16bit,主要是在速度和精度方向上我們會做一個適當(dāng)?shù)钠胶狻?/p>
經(jīng)過這些優(yōu)化之后,整個推理速度是比較快的。但是在我們的實際上線過程中,我們還發(fā)現(xiàn)了一些小問題,我覺得也算是一個Trick。
在語言模型層面上,在語言模型層面上,比如我們場景閑聊的文本比較多,但是也有唱歌的,我們要同一個模型既要解決說話,又要解決歌聲。在語言模型上面,比如閑聊文本,它通常比較碎、比較短,所以我們經(jīng)過實驗之后,我們發(fā)現(xiàn)三元的是比較好的,五元反而沒有帶來提升。
但是比如歌聲的話,它的文本比較長,且它的句式、文法相對比較固定,所以在實驗過程中,五元是比三元好的。出現(xiàn)這種情況,我們使用的是混合文法來對閑聊文本和歌聲文本共同進行語言模型的建模。使用了“三元+五元”混合的模式,但這個“三元+五元”混合并不是我們傳統(tǒng)意義上說的差值,我們并沒有做差值,而是把閑聊的三元的文法跟四元的歌聲和五元的文法拿過來直接做一個合并。這么得到的arpa目前是更小的,在解碼的過程中也比較快,更重要一點就是顯存占用比較小。因為在GPU上解碼的話,顯存大小是固定的。所以說我們是需要控制一定的語言模型大小的情況下,來盡可能通過語言模型提升識別的效果。
經(jīng)過聲學(xué)模型和語言模型的一些優(yōu)化和Trick之后,目前我們的推理速度也是非?斓摹崟r率基本上能到0.1、0.2的水平。
虛擬仿真
主要是通過將聲音、口形、表情、姿態(tài)等這些內(nèi)容進行生成,來幫助用戶更無壓力或者更自然、更自由地去表達,這背后需要的核心技術(shù)之一就是多模態(tài)語音合成。
多模態(tài)語音合成
下圖是目前正在使用的語音合成系統(tǒng)的基本框架。首先我們會獲取用戶的輸入文字,比如“2022全球人工智能大會”,然后我們會送到文本分析這個模塊,這個模塊主要是對文本進行一些各方面的分析,比如進行文本的正則化,還有一些分詞,最重要一點是自轉(zhuǎn)移,把文字轉(zhuǎn)成音素,還有一些韻律預(yù)測等等功能。經(jīng)過這個文本分析之后,我們就可以拿到用戶的這句話的一些語言學(xué)特征,這個特征會送到聲學(xué)模型里面。聲學(xué)模型目前我們主要是使用的基于FastSpeech這個框架做的一些模型的改進和訓(xùn)練。
聲學(xué)模型得到聲學(xué)特征,比如梅爾特征,或者時長或者能量等等信息,它的特征流向會分兩部分。一部分我們會送到聲碼器里面,主要是用來生成我們可以聽的音頻波形。另外一個流向是送到唇形預(yù)測里面,我們通過唇形預(yù)測模塊可以預(yù)測出口形對應(yīng)的BS系數(shù)。得到BS特征值之后,我們會送到視頻生成模塊,這部分是由視覺團隊負(fù)責(zé),可以生成虛擬頭像,就是帶口形、帶表情的這種虛擬形象。最終我們會把虛擬頭像和音頻會做一個合并,最終生成音視頻動畫。這就是我們整個多模態(tài)語音合成的基本框架、基本流程。
多模態(tài)語音合成過程中的主要問題:
語音音庫數(shù)據(jù)質(zhì)量比較差。
合成音質(zhì)較差。
音畫延遲大,口型和聲音對不上
Soul的處理方式與在改進端到端的語音識別系統(tǒng)中類似。
數(shù)據(jù)預(yù)處理
我們的音庫來源是比較多的,左邊這個圖就是第一我們會采集錄制。第二,當(dāng)然我們非常感謝開源的數(shù)據(jù)公司,它會開源一些音庫,我們也會用它來做一些實驗。第三,我們平臺上在公司級會有一些公開的營銷視頻,在做視頻的時候,請了一些優(yōu)質(zhì)主播來做,所以這里面的音色也是非常優(yōu)質(zhì)的。第四,一些公開的網(wǎng)絡(luò)數(shù)據(jù),比如在對話的過程中,有些音色質(zhì)量比較高,所以我們也會爬取一些,然后做一些預(yù)標(biāo)注,主要是做一些內(nèi)部的實驗和預(yù)訓(xùn)練。
針對這些數(shù)據(jù)復(fù)雜性,我們做了一些數(shù)據(jù)預(yù)處理,比如短句的拼接,剛才提到在采集的過程中,句子是有長有短的,我們?yōu)榱藬U增音庫的時長,我們會把短句做一個cut,過程中我們會去掉一些靜音,靜音太長的話也會有一些影響。
第二,就是去噪,比如在拿到的這些網(wǎng)絡(luò)數(shù)據(jù)或者營銷視頻,在這里面的噪聲我們會通過一些語音增強的方式把噪聲去掉。
第三,其實現(xiàn)在的標(biāo)注大部分是標(biāo)注的音轉(zhuǎn)字,但音素的邊界現(xiàn)在基本上就不作為標(biāo)注了,所以我們通常是通過這種MFA強制對齊的方式去獲得音素的邊界信息。
然后下面人聲分離的話是比較特殊的,因為是在營銷視頻里面我們是有背景音樂,所以說我們會做一個人聲分離,會把背景音樂給去掉,獲取到干聲數(shù)據(jù)。我們還做一些能量規(guī)整,還有一些VAD,VAD主要是在對話或者網(wǎng)絡(luò)數(shù)據(jù)里面,我通過VAD去檢測到有效的人聲,再拿去做一些預(yù)標(biāo)注或者預(yù)訓(xùn)練。
模型微創(chuàng)新
我們在做FastSpeech的過程中,我們主要做了三個方面的改動。左邊這個圖左邊這一類是FastSpeech的基礎(chǔ)模型,我們首先做了第一個變化就是我們會把音素和音調(diào)進行解耦建模,就是正常情況下大家的文本前端轉(zhuǎn)出來的是音素序列,像左邊這個圖一樣,“你好”這種單調(diào)的音素序列。但是我們會把它拆成右邊這部分,兩部分,就是左邊一部分是音素序列,只有音素,沒有聲調(diào)。右邊是只有聲調(diào),沒有音素。這樣的話我們會分別輸送到一個ProNet(音)里面,會得到兩個Embedding。兩個Embedding會cut到一起,來替代之前的這種Embedding的方式。這樣的話,好處就是它可以解決稀疏發(fā)音的問題,或者是有些發(fā)音不在我們的訓(xùn)練語料里面,這種問題是基本上都可以解決的。
第二個我們改動的方式是原來的方式是先預(yù)測一個時長,就是右邊這個圖,然后再基于這個時長我們把聲音集進行擴展,然后預(yù)測能量和Pitch,F(xiàn)在我們是換了一下順序,我們會基于音素級的去預(yù)測Pitch和Energy,然后預(yù)測完之后我們才會去對它進行一個幀級別的時長的擴展。這樣的好處就是,在整個完整的音素的發(fā)音過程中,它的發(fā)音就比較穩(wěn)定,這是在我們場景下的一個變化。
第三個就是我們在Decoder這部分,就是最上面這部分,Decoder這部分我們做了一個替代變化。原來的Decoder里面是用的這種Attention的方式,我們現(xiàn)在換成了這種Iconv或者Convolution的方式。這個好處就是因為Self-Attention它雖然能捕獲很強大的歷史信息、上下文信息,但是對逐步建模的能力是比較差的。所以說換成Convolution之后,我們在處理這種局部建模的能力會更好一些。比如在發(fā)音的時候,剛才提到的這種發(fā)音比較啞音或者模糊的現(xiàn)象,基本上它是可以解決的。這是我們目前的一些主要的變化。
共享聲學(xué)模型
左邊是合成口形,右邊是合成聲音,他們共享聲學(xué)模型里面的一些Encoder和時長信息。
我們主要是做了三個動作。第一個是,我們是真實的采集了一些高精度的數(shù)據(jù),比如我們會找一些真人佩戴一些高精度傳感器,去驅(qū)動我們已經(jīng)預(yù)測好的Avatar形象,得到高分辨率的音視頻,做一些標(biāo)注。這樣就會得到文字、音頻、視頻的三者同步的一些數(shù)據(jù)。
第二個事情就是,可能也提到我們怎么解決音畫一致性呢?因為我們最開始是先通過合成,文本合成聲音,拿到聲音之后,我們會做一個聲音到口形的預(yù)測,這個過程中它會出現(xiàn)幀級別不對稱的現(xiàn)象。目前我們是通過這種合成口形和合成聲音共享聲學(xué)模型的方式,并且在幀級序列進行擴展之后去做。目前是可以保證在幀級上是可以對齊的,能夠保證音畫一致性。
最后,我們目前并沒有基于序列的方式去預(yù)測口形或者BS基,我們是基于LSTM的這種方式去預(yù)測BS基。預(yù)測的BS系數(shù)之后,但是它有可能預(yù)測得有些異常,我們還會做一些后處理,比如正則化,比如BS基太大或者太小,都會導(dǎo)致口形張得太大甚至變化太小,我們都會設(shè)置一個范圍,不能太大了,會控制在一個合理的范圍之內(nèi)。目前基本上是可以保證音畫一致性的。
未來展望
一是多模態(tài)識別,在高噪情況下,音頻結(jié)合口形做多模態(tài)識別,提高識別準(zhǔn)確率。
二是多模態(tài)的語音合成實時語音轉(zhuǎn)換,可以保留用戶的情感、風(fēng)格這些特征,只是把用戶的音色轉(zhuǎn)換到另外一個音色上面。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹(jǐn)慎對待。投資者據(jù)此操作,風(fēng)險自擔(dān)。
2024年的Adobe MAX 2024發(fā)布會上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實質(zhì)性的幫助,雙十一期間低至2799元,性價比很高,簡直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會——工業(yè)互聯(lián)網(wǎng)標(biāo)識解析專題論壇在沈陽成功舉辦。