0
雷鋒網(wǎng) AI 科技評(píng)論按:從 WaveNet 到 Tacotron,再到 RNN-T,谷歌一直站在語(yǔ)音人工智能技術(shù)的最前沿。近日,他們又將多人語(yǔ)音識(shí)別和說(shuō)話(huà)人分類(lèi)問(wèn)題融合在了同一個(gè)網(wǎng)絡(luò)模型中,在模型性能上取得了重大的突破。
對(duì)于自動(dòng)理解人類(lèi)音頻的任務(wù)來(lái)說(shuō),識(shí)別「誰(shuí)說(shuō)了什么」(或稱(chēng)「說(shuō)話(huà)人分類(lèi)」)是一個(gè)關(guān)鍵的步驟。例如,在一段醫(yī)生和患者的對(duì)話(huà)中,醫(yī)生問(wèn):「你按時(shí)服用心臟病藥物了嗎?」患回答道:「Yes」。這與醫(yī)生反問(wèn)患者「Yes?」的意義是有本質(zhì)區(qū)別的。
傳統(tǒng)的說(shuō)話(huà)人分類(lèi)(speaker diarization,SD)系統(tǒng)有兩個(gè)步驟。在第一步中,系統(tǒng)將檢測(cè)聲譜中的變化,從而確定在一段對(duì)話(huà)中,說(shuō)話(huà)人什么時(shí)候改變了;在第二步中,系統(tǒng)將識(shí)別出整段對(duì)話(huà)中的各個(gè)說(shuō)話(huà)人。這種基礎(chǔ)的多步方法(相關(guān)閱讀:https://ieeexplore.ieee.org/document/1202280/)幾乎已經(jīng)被使用了 20 多年,而在么長(zhǎng)的時(shí)間內(nèi),研究者們僅僅在「說(shuō)話(huà)人變化檢測(cè)」部分提升了模型性能。
近年來(lái),隨著一種名為遞歸神經(jīng)網(wǎng)絡(luò)變換器(RNN-T,https://arxiv.org/abs/1211.3711)的新型神經(jīng)網(wǎng)絡(luò)模型的發(fā)展,我們現(xiàn)在擁有了一種合適的架構(gòu),它可以克服之前我們介紹過(guò)的說(shuō)話(huà)人分類(lèi)系統(tǒng)(https://ai.googleblog.com/2018/11/accurate-online-speaker-diarization.html)的局限性,提升系統(tǒng)的性能。在谷歌最近發(fā)布的論文「Joint Speech Recognition and Speaker Diarization via Sequence Transduction」(論文地址:https://arxiv.org/abs/1907.05337)中,它們提出了一種基于 RNN-T 的說(shuō)話(huà)人分類(lèi)系統(tǒng),證明了該系統(tǒng)在單詞分類(lèi)誤差率從 20 % 降低到了 2%(性能提升了 10 倍),該工作將在 Interspeech 2019 上展示。
傳統(tǒng)的說(shuō)話(huà)人分類(lèi)系統(tǒng)依賴(lài)于人聲的聲學(xué)差異識(shí)別出對(duì)話(huà)中不同的說(shuō)話(huà)人。根據(jù)男人和女人的音高,僅僅使用簡(jiǎn)單的聲學(xué)模型(例如,混合高斯模型),就可以在一步中相對(duì)容易地將他們區(qū)分開(kāi)來(lái)。然而,想要區(qū)分處音高可能相近的說(shuō)話(huà)者,說(shuō)話(huà)者分類(lèi)系統(tǒng)就需要使用多步方法了。首先,基于檢測(cè)到的人聲特征,使用一個(gè)變化檢測(cè)算法將對(duì)話(huà)切分成均勻的片段,我們希望每段僅僅包含一個(gè)說(shuō)話(huà)人。接著,使用一個(gè)深度學(xué)習(xí)模型將上述說(shuō)話(huà)人的聲音片段映射到一個(gè)嵌入向量上。最后,在聚類(lèi)階段,會(huì)對(duì)上述嵌入聚類(lèi)在不同的簇中,追蹤對(duì)話(huà)中的同一個(gè)說(shuō)話(huà)人。
在真實(shí)場(chǎng)景下,說(shuō)話(huà)人分類(lèi)系統(tǒng)與聲學(xué)語(yǔ)音識(shí)別(ASR)系統(tǒng)會(huì)并行化運(yùn)行,這兩個(gè)系統(tǒng)的輸出將會(huì)被結(jié)合,從而為識(shí)別出的單詞分配標(biāo)簽。
傳統(tǒng)的說(shuō)話(huà)人分類(lèi)系統(tǒng)在聲學(xué)域中進(jìn)行推斷,然后將說(shuō)話(huà)人標(biāo)簽覆蓋在由獨(dú)立的 ASR 系統(tǒng)生成的單詞上。
這種方法存在很多不足,阻礙了該領(lǐng)域的發(fā)展:
(1)我們需要將對(duì)話(huà)切分成僅僅包含以為說(shuō)話(huà)人的語(yǔ)音的片段。否則,根據(jù)這些片段生成的嵌入就不能準(zhǔn)確地表征說(shuō)話(huà)人的聲學(xué)特征。然而,實(shí)際上,這里用到的變化檢測(cè)算法并不是十全十美的,會(huì)導(dǎo)致分割出的片段可能包含多位說(shuō)話(huà)人的語(yǔ)音。
(2)聚類(lèi)階段要求說(shuō)話(huà)人的數(shù)量已知,并且這一階段對(duì)于輸入的準(zhǔn)確性十分敏感。
(3)系統(tǒng)需要在用于估計(jì)人聲特征的片段大小和期望的模型準(zhǔn)確率之間做出艱難的權(quán)衡。片段越長(zhǎng),人聲特征的質(zhì)量就越高,因?yàn)榇藭r(shí)模型擁有更多關(guān)于說(shuō)話(huà)人的信息。這然而,這就帶來(lái)了將較短的插入語(yǔ)分配給錯(cuò)誤的說(shuō)話(huà)人的風(fēng)險(xiǎn)。這將產(chǎn)生非常嚴(yán)重的后果,例如,在處理臨床醫(yī)學(xué)或金融領(lǐng)域的對(duì)話(huà)的環(huán)境下,我們需要準(zhǔn)確地追蹤肯定和否定的陳述。
(4)傳統(tǒng)的說(shuō)話(huà)人分類(lèi)系統(tǒng)并沒(méi)有一套方便的機(jī)制,從而利用在許多自然對(duì)話(huà)中非藏明顯的語(yǔ)言學(xué)線(xiàn)索。例如,「你多久服一次藥?」在臨床對(duì)話(huà)中最有可能是醫(yī)護(hù)人員說(shuō)的,而不會(huì)是病人說(shuō)的。類(lèi)似地,「我們應(yīng)該什么時(shí)候上交作業(yè)?」則最有可能是學(xué)生說(shuō)的,而不是老師說(shuō)的。語(yǔ)言學(xué)的線(xiàn)索也標(biāo)志著說(shuō)話(huà)人有很高的概率發(fā)生了改變(例如,在一個(gè)問(wèn)句之后)。
然而,傳統(tǒng)的說(shuō)話(huà)人分類(lèi)系統(tǒng)也有一些性能較好的例子,在谷歌此前發(fā)布的一篇博文中就介紹了其中之一(博文地址:https://ai.googleblog.com/2018/11/accurate-online-speaker-diarization.html)。在此工作中,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的隱藏狀態(tài)會(huì)追蹤說(shuō)話(huà)人,克服了聚類(lèi)階段的缺點(diǎn)。而本文提出的模型則采用了不容的方法,引入了語(yǔ)言學(xué)線(xiàn)索。
我們研發(fā)出了一種簡(jiǎn)單的新型模型,該模型不僅完美地融合了聲學(xué)和語(yǔ)音線(xiàn)索,而且將說(shuō)話(huà)人分類(lèi)和語(yǔ)音識(shí)別任務(wù)融合在了同一個(gè)系統(tǒng)中。相較于相同環(huán)境下僅僅進(jìn)行語(yǔ)音識(shí)別的系統(tǒng)相比,這個(gè)集成模型并沒(méi)有顯著降低語(yǔ)音識(shí)別性能。
我們意識(shí)到,很關(guān)鍵的一點(diǎn)是:RNN-T 架構(gòu)非常適用于集成聲學(xué)和語(yǔ)言學(xué)線(xiàn)索。RNN-T 模型由三個(gè)不同的網(wǎng)絡(luò)組成:(1)轉(zhuǎn)錄網(wǎng)絡(luò)(或稱(chēng)編碼器),將聲幀映射到一個(gè)潛在表征上。(2)預(yù)測(cè)網(wǎng)絡(luò),在給定先前的目標(biāo)標(biāo)簽的情況下,預(yù)測(cè)下一個(gè)目標(biāo)標(biāo)簽。(3)級(jí)聯(lián)網(wǎng)絡(luò),融合上述兩個(gè)網(wǎng)絡(luò)的輸出,并在該時(shí)間步生成這組輸出標(biāo)簽的概率分布。
請(qǐng)注意,在下圖所示的架構(gòu)中存在一個(gè)反饋循環(huán),其中先前識(shí)別出的單詞會(huì)被作為輸入返回給模型,這使得 RNN-T 模型能夠引入語(yǔ)言學(xué)線(xiàn)索(例如,問(wèn)題的結(jié)尾)。
集成的語(yǔ)音識(shí)別和說(shuō)話(huà)人分類(lèi)系統(tǒng)示意圖,該系統(tǒng)同時(shí)推斷「誰(shuí),在何時(shí),說(shuō)了什么」
在圖形處理單元(GPU)或張量處理單元(TPU)這樣的加速器上訓(xùn)練 RNN-T 并不是一件容易的事,這是因?yàn)閾p失函數(shù)的計(jì)算需要運(yùn)行「前向推導(dǎo)-反向傳播」算法,該過(guò)程涉及到所有可能的輸入和輸出序列的對(duì)齊。最近,該問(wèn)題在一種對(duì) TPU 友好的「前向-后向」算法中得到了解決,它將該問(wèn)題重新定義為一個(gè)矩陣乘法的序列。我們還利用了TensorFlow 平臺(tái)中的一個(gè)高效的 RNN-T 損失的實(shí)現(xiàn),這使得模型開(kāi)發(fā)可以迅速地進(jìn)行迭代,從而訓(xùn)練了一個(gè)非常深的網(wǎng)絡(luò)。
這個(gè)集成模型可以直接像一個(gè)語(yǔ)音識(shí)別模型一樣訓(xùn)練。訓(xùn)練使用的參考譯文包含說(shuō)話(huà)人所說(shuō)的單詞,以及緊隨其后的指定說(shuō)話(huà)人角色的標(biāo)簽。例如,「作業(yè)的截止日期是什么時(shí)候?」<學(xué)生>,「我希望你們?cè)诿魈焐险n之前上交作業(yè)」<老師>。當(dāng)模型根據(jù)音頻和相應(yīng)的參考譯文樣本訓(xùn)練好之后,用戶(hù)可以輸入對(duì)話(huà)記錄,然后得到形式相似的輸出結(jié)果。我們的分析說(shuō)明,RNN-T 系統(tǒng)上的改進(jìn)會(huì)影響到所有類(lèi)型的誤差率(包括較快的說(shuō)話(huà)者轉(zhuǎn)換,單詞邊界的切分,在存在語(yǔ)音覆蓋的情況下錯(cuò)誤的說(shuō)話(huà)者對(duì)齊,以及較差的音頻質(zhì)量)。此外,相較于傳統(tǒng)的系統(tǒng),RNN-T 系統(tǒng)展現(xiàn)出了一致的性能,以每段對(duì)話(huà)的平均誤差作為評(píng)價(jià)指標(biāo)時(shí),方差有明顯的降低。
傳統(tǒng)系統(tǒng)和 RNN-T 系統(tǒng)錯(cuò)誤率的對(duì)比,由人類(lèi)標(biāo)注者進(jìn)行分類(lèi)。
此外,該集成模型還可以預(yù)測(cè)其它一些標(biāo)簽,這些標(biāo)簽對(duì)于生成對(duì)讀者更加友好的 ASR 譯文是必需的。例如,我們已經(jīng)可以使用匹配好的訓(xùn)練數(shù)據(jù),通過(guò)標(biāo)點(diǎn)符號(hào)和大小寫(xiě)標(biāo)志,提升譯文質(zhì)量。相較于我們之前的模型(單獨(dú)訓(xùn)練,并作為一個(gè) ASR 的后處理步驟),我們的輸出在標(biāo)點(diǎn)符號(hào)和大小寫(xiě)上的誤差更小。
現(xiàn)在,該模型已經(jīng)成為了我們理解醫(yī)療對(duì)話(huà)的項(xiàng)目(https://ai.googleblog.com/2017/11/understanding-medical-conversations.html)中的一個(gè)標(biāo)準(zhǔn)模塊,并且可以在我們的非醫(yī)療語(yǔ)音服務(wù)中被廣泛采用。
Via https://ai.googleblog.com/2019/08/joint-speech-recognition-and-speaker.html 雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。