【獨(dú)家揭秘谷歌語(yǔ)音助理Duplex技術(shù)背后運(yùn)用的技術(shù),真如外界傳聞吊打智障Siri嗎?】谷歌2018年度的開(kāi)發(fā)者大會(huì)(GoogleI/O2018)介紹的AndroidP、Gmail、Gboard、TPUv3等眾多新產(chǎn)品和功能中,尤為亮眼的無(wú)疑是個(gè)人助理Google Assistant中新增加的Duplex,它可以自己給飯館、發(fā)廊等商業(yè)店面打電話,幫用戶預(yù)約時(shí)間。
這幾天媒體各種報(bào)道與驚嘆,甚至說(shuō)起吊打智障Siri。小編找到了谷歌AIblog上來(lái)自谷歌的工程師首席工程師YanivLeviathan以及工程副總裁YossiMatias的博客,他們?cè)诓┛椭薪颐亓薉uplex用到的技術(shù)。
Google duplex是一種用于特定領(lǐng)域,通過(guò)撥打電話執(zhí)行任務(wù)的工具。
特定領(lǐng)域是指比如預(yù)定一家餐館、預(yù)定一次理發(fā)等。Google duplex可以進(jìn)行非常自然的人機(jī)對(duì)話,聽(tīng)起來(lái)非常地自然,就像真實(shí)的人在進(jìn)行電話撥打一樣。
Google duplex使用到的技術(shù)
借助語(yǔ)言理解、交互、時(shí)間控制、語(yǔ)音生成方面的最近技術(shù)發(fā)展,Google Duplex的對(duì)話聽(tīng)起來(lái)相當(dāng)真實(shí)自然。
為了處理上面提到的挑戰(zhàn),Duplex的核心是一個(gè)RNN網(wǎng)絡(luò),它是由TensorFlowExtended(RFX)構(gòu)建的。為了達(dá)到高精度,谷歌用匿名的電話對(duì)話數(shù)據(jù)訓(xùn)練了Duplex的RNN網(wǎng)絡(luò)。
這個(gè)網(wǎng)絡(luò)會(huì)使用谷歌自動(dòng)語(yǔ)音識(shí)別(ASR)的識(shí)別結(jié)果文本,同時(shí)也會(huì)使用音頻中的特征、對(duì)話歷史、對(duì)話參數(shù)(比如要預(yù)訂的服務(wù),當(dāng)前時(shí)間)等等。
谷歌為每一種不同的任務(wù)分別訓(xùn)練了不同的理解模型,不過(guò)不同任務(wù)間也有一些訓(xùn)練語(yǔ)料是共享的。最后,谷歌還利用TFX的超參數(shù)優(yōu)化進(jìn)一步改進(jìn)了模型。
輸入語(yǔ)音先經(jīng)過(guò)自動(dòng)語(yǔ)音識(shí)別系統(tǒng)(ASR)處理,生成的文本會(huì)與上下文數(shù)據(jù)以及其它輸入一起輸入RNN網(wǎng)絡(luò),生成的應(yīng)答文本再通過(guò)文本轉(zhuǎn)語(yǔ)音(TTS)系統(tǒng)讀出來(lái)。
總結(jié),Google duplex使用到的技術(shù)包括:
1、使用Google自己的ASR(語(yǔ)音識(shí)別)技術(shù),將對(duì)話方的語(yǔ)音轉(zhuǎn)化為文字;
2、使用Tensor Flow構(gòu)建基于RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))的模型,基于匿名電話會(huì)話數(shù)據(jù)語(yǔ)料庫(kù),進(jìn)行Duplex的訓(xùn)練,訓(xùn)練好的模型,可以根據(jù)對(duì)話方的語(yǔ)音轉(zhuǎn)化成的文字,生成相應(yīng)的文字響應(yīng);
3、使用綜合TTS引擎(Tacontron和WaveNet),將深度學(xué)習(xí)模型生成的文字,轉(zhuǎn)化為語(yǔ)音,作為最終的對(duì)話響應(yīng);
4、duplex可以和Googleassistant配合使用,Googleassistant可以在后臺(tái)調(diào)用duplex,進(jìn)行任務(wù)的執(zhí)行。
Google duplex的對(duì)話非常自然的原因
谷歌聯(lián)合使用了一個(gè)級(jí)聯(lián)TTS引擎和一個(gè)生成式TTS引擎(其中使用了Tacotron和WaveNet),根據(jù)不同的情境控制語(yǔ)音的語(yǔ)調(diào)。
這個(gè)系統(tǒng)還可以生成一些語(yǔ)氣詞(比如“hmmm”、“uh”),這也讓語(yǔ)音變得更自然。當(dāng)級(jí)聯(lián)TTS需要組合變化很大的語(yǔ)音單元,或者需要增加生成的停頓時(shí),語(yǔ)氣詞就會(huì)被添加到生成的語(yǔ)音中,這就讓這個(gè)系統(tǒng)可以以一種自然的方式向?qū)Ψ绞疽狻笆堑奈衣?tīng)著呢”或者“我還在考慮”(人類(lèi)說(shuō)話的時(shí)候就經(jīng)常在思考的同時(shí)發(fā)出一些語(yǔ)氣詞)。谷歌的用戶調(diào)查也確認(rèn)了人類(lèi)覺(jué)得帶有語(yǔ)氣詞的對(duì)話更熟悉、更自然。
另一方面,系統(tǒng)的延遲也要能夠符合人類(lèi)的期待。比如,當(dāng)一個(gè)人在電話里講了“你好”這樣的簡(jiǎn)單句子之后,他們會(huì)希望很快聽(tīng)到一個(gè)簡(jiǎn)短的回復(fù),這種時(shí)候會(huì)對(duì)延遲更加敏感一些。當(dāng)AI系統(tǒng)檢測(cè)到了需要短延遲的情境時(shí),就會(huì)使用更快但精度也更低的模型來(lái)處理。在某些極端情況下,系統(tǒng)甚至都不會(huì)等待RNN運(yùn)行,而是直接使用快速逼近模型(通常也會(huì)和更慢的正式回應(yīng)搭配起來(lái)使用,就像人類(lèi)不完全理解另一方的時(shí)候會(huì)猶豫一樣)。
這樣的做法就可以讓系統(tǒng)達(dá)到100ms之內(nèi)的極短延遲。有趣的是,谷歌發(fā)現(xiàn)在某些情況下要增加一些延遲來(lái)讓對(duì)話聽(tīng)起來(lái)更自然,比如回復(fù)一個(gè)很復(fù)雜的句子的時(shí)候。
總結(jié)而言:
1、Duplex被限制在特定的領(lǐng)域進(jìn)行使用,這使得技術(shù)人員可以針對(duì)該領(lǐng)域進(jìn)行詳細(xì)的技術(shù)設(shè)計(jì),從而取得有針對(duì)性的非常自然的效果;
2、神經(jīng)網(wǎng)絡(luò)模型的輸入不僅是ASR的文字結(jié)果,還包括對(duì)話的歷史記錄,使得模型可以更好地理解對(duì)話的上下文,生成更加準(zhǔn)確的響應(yīng);
3、Duplex會(huì)使用“嗯”、“啊“等表示停頓、思考的語(yǔ)氣詞,或者延長(zhǎng)某些詞,好像它正在花時(shí)間去思考一個(gè)答案,使得語(yǔ)音響應(yīng)聽(tīng)起來(lái)更加自然;由于人們?cè)谶M(jìn)行真實(shí)的對(duì)話時(shí),有時(shí)會(huì)期待及時(shí)快速的響應(yīng),比如說(shuō)“你好?”在類(lèi)似的極端情況下,duplex甚至?xí)坏却疃葘W(xué)習(xí)模型的響應(yīng)結(jié)果,而是用更快的類(lèi)似的響應(yīng),如此,便使得響應(yīng)更加地自然。
據(jù)悉:今年夏天,谷歌就會(huì)開(kāi)始基于Google Assistant測(cè)試Duplex,就從預(yù)訂餐館、預(yù)訂發(fā)廊、詢問(wèn)節(jié)假日的營(yíng)業(yè)時(shí)間這樣的事項(xiàng)開(kāi)始。