Google I/O 2018 上亮相的「打電話」Google Duplex 具體用到哪些技術?

事件快訊

產品演示視頻(中文字幕):

Google 2018 逆天黑科技:語音助手敢和真人打電話!(演示+中文字幕)_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili?

www.bilibili.com圖標

相關問題

新聞專題 Google I/O 2018 驗收 AI 成果,推安卓 10 年最大更新


谷歌CEO 「劈柴哥」在今年的谷歌開發者大會上,又向世人展示了一款黑科技:AI 能像真人一樣和人類打電話,而且你幾乎分辨不出哪個聲音來自機器。隨後,這款能和人打電話的 AI—— Google Duplex 很快成為社交網站的熱門話題。

對於 Google Duplex 是如何煉成的,想必很多人非常感興趣。正好谷歌 AI 博客昨天發布了一篇博文(https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html),詳解了這款 AI 背後的技術原理,集智進行了整理:


讓人類和計算機之間實現自然流暢的對話,就像人與人之間那樣,一直以來都是人機互動研究領域長期追求的目標。近年來,機器理解和生成自然語音的能力發生了革命性的變化,特別是深度神經網路得到應用以後(比如谷歌的 WaveNet)。然而,即便是當前最先進的人機對話系統,仍然有著非常生硬的發音(比如為已故科學家霍金髮聲的機器),而且也無法很好的理解人類的自然語言。特別是自動電話系統,仍然無法有效識別簡單的辭彙和指令,更無法和人類自然流暢的對話,這就造成往往需要人類調整對話去適應機器,而不是機器去適應人類。

今天,我們公布了 Google Duplex,一款能進行自然對話的全新AI技術,它能通過和人類打電話完成我們現實世界的多種工作。Google Duplex 目前暫時只針對一些特定任務,比如為某些日常活動約定時間。對於這些工作,Duplex 能夠儘可能自然的和人類交流,這樣電話那頭的人類可以像平常和其他人說話一樣,自然地與機器交談,無需做任何調整(實際上我們從發布會的演示中可以看到,接電話的人可能就沒意識到打電話的並非人類)。

在研究這項技術中,一個關鍵地方就是將 Duplex 限制在封閉場景內,這樣的場景由於涉及內容較少,從而 AI 可以充分的探索和學習。正因如此,經過在選定的封閉場景內深入訓練後,Duplex 目前暫時只能在這些場景內和人類展開自然的對話,而無法全面交談。

不過集智覺得效果是真的很棒,人機對話全程毫無違和感(忍不住再播一遍):

如何進行自然對話

關於如何進行自然對話,有幾個挑戰:

  • 自然語言對於機器來說很難理解
  • 自然行為難以建模
  • 人類對延遲的忍耐性很低,因此需要較快的處理速度
  • 聽起來很自然的聲音,還要夾雜一些語氣詞,非常困難

當人類之間交談時,相比和計算機交談,會使用更加複雜的語句。我們常常會在句子說到一半時不斷更正自己的表述,有時啰里啰嗦,有時又會依賴上下文語境而省略了很多詞,有時又會在一個句子中表達多個意思。比如說「嗯···星期二到星期四我們是 11 點到 2 點開門,然後從 4 點再開到 9 點。然後星期五、星期六和星期天我們···哦星期五和星期六我們是 11 點到 9 點開門,然後星期天我們從 1 點開到 9 點。」

相比和計算機對話,人類之間在天然和自發的對話中,會講的更快、更模糊一些,因此語音識別會更困難,錯誤率也更高。在打電話時這個問題更加明顯,因為這時經常會出現背景噪音和通話質量不佳的問題。

在較長的對話中,同樣的句子會根據語境有著非常不同的意思。例如,在預定座位時,「Ok for 4」可能是指預定的時間,也可能是指預定的座位數量。解釋這句話意思的相關語境常常會在好幾個句子後面才出現,而在打電話期間單詞錯誤率較高又進一步加劇了解決這個問題的難度。

AI 要說什麼,由人機對話當前的任務和對話程度兩方面決定。此外,在自然對話期間還有一些常見的做法——重複句子時說的更詳細些(比如「下周五」「什麼時候?」「下個星期的星期五,18號!」),同步語句(比如「你能聽到我說話嗎?」)打斷對話(比如「數字是212-」「不好意思,你能再從頭說一下嗎?」)以及停頓(比如「你能稍等一下嗎?[停頓] 謝謝!」而這裡停頓1秒和停頓2分鐘又有不同的含義)。

認識 Google Duplex

得益於自然語言方面的理解、互動、時間控制和語音生成領域的技術進展,Google Duplex 和人類之間的對話聽起來非常自然。

Duplex 的核心是一個循環神經網路,由谷歌的 TensorFlow Extended(TFX)搭建而成,能夠處理我們上面所說的各種挑戰。為了獲獲得高精度,我們用匿名的電話對話數據集對神經網路進行訓練,神經網路會使用谷歌自動語音識別(ASR)的識別文本,也會用到音頻中的特徵、對話歷史、對話參數(比如預定的服務、當前時間)等等。對於每一種不同的任務,我們分別訓練了不同的理解模型,不過有些任務的訓練數據是共享的。最後,我們用 TFX 的超參數優化進一步改進了模型。

如何讓對話聽起來自然

我們將一個級聯文本轉語音(TTS)引擎和一個合成 TTS 引擎(利用 Tacotron 和 WaveNet)組合在一起,根據不同的語境控制語音語調。

由於系統生成了一些語氣詞(比如 hmm 和 uh 之類),這也讓聲音聽起來更加自然。當把級聯 TTS 多種不同的聲音單元合併在一起,或者添加合成的語音延遲時,就加上這些語氣詞,這能讓系統以自然的方式向外界表示它還在思考中(這跟我們人類交談中出現卡頓時會說一些嗯、哦之類的語氣詞是一樣的)。而在用戶研究中,我們也發現使用了語氣詞的交談聽起來會更自然更熟悉。

同時,系統的延遲符合人類的預期也同樣重要。例如,人類在說了一些簡單的句子後,比如「你好?」,我們通常預期立刻得到回應,對於延遲會非常敏感。當 AI 檢測到需要很短的延遲時,就會用精度較低但速度更快的模型進行處理(比如語音識別模型)。在一些極端情況下,AI 甚至都不會等待 RNN 反應,而是用更快的逼近模型(常常和更慢的正式回應搭配使用,好比人類完全沒聽懂對方的意思就會猶豫一下)。通過這種方法,AI 的延遲可以縮短到 100 毫秒之內。不過我們還發現了一個很有趣的現象,有時增加延遲會讓對話聽起來更自然——比如在回應非常複雜的句子時。

系統運行

Google Duplex 系統能夠進行非常複雜的對話,完全自動完成大多數任務,無需人類介入。AI 也能自我監控,從而讓它可以識別出無法自動完成的任務(比如處理某個不尋常的複雜預約任務)。這種情況下,AI 會向人類發出求救信號,讓人類參與完成任務。

為了能在新的場景下訓練 AI,我們使用了實時監督的訓練方法。這種方法和很多教學方法類似,就是有個導師指導學員學習,邊做邊學邊指導,確保學生能以導師要求的水準完成任務。在 Duplex 系統中,富有經驗的人類操作員就可以充當導師。這樣 AI 在新的場景下打電話時,人類操作員通過監控 AI 可以按照 AI 的實時需要,指導 AI 的行為。這樣一直訓練到 AI 能夠以理想的水平完成任務,這時人類就會停止監督,AI 也能完全自動的打電話了。

對商家和用戶的幫助

對於商家而言,可以使用 Duplex 支持的預定系統,並且是在離線的情況下能讓顧客通過 Google Assistant 預定,無需更改任何日常慣例,也不用培訓員工。Duplex 也能減少顧客爽約的情況,可以在手機上自動提醒用戶預訂事項,幫助用戶輕鬆取消約定或者重新安排時間。

在其它情況下,用戶會打電話向商家詢問營業時間,比如節假日期間的營業時間,有些店鋪的這些信息在網上是看不到的。Duplex 打電話詢問之後可以通過谷歌服務把該信息公開出去,省去了其它用戶打同一個電話、問同樣的問題的精力,這樣也幫商家節省了人力。同時,商家自己就像平時一樣正常營業就行,這項新技術並不需要他們學習任何技能或者做任何改變就可以享受到 AI 的便利。

對於用戶來說,Google Duplex 可以讓他們更容易的完成它所支持的各種任務。用戶只需和 Google Assistant 簡單互動,Duplex 就會自動在後台打電話,並自動補全所需的用戶信息。

Duplex 還能給用戶帶來一項便利,就是以非同步的方式作為服務提供商的代理,比如在非營業時間,或者手機信號不好的時候給商戶打電話預定服務。在這種情況下,Duplex 就成為一條額外的信息獲取途徑。重要的是,它也可以幫助殘障人士或者語言不通的用戶,比如替聽力受損的用戶打電話完成預約,或者替用戶用另一種語言完成任務。

我們在今年夏天就會開始基於 Google Assistant 測試 Duplex,首先從預訂餐館、預訂理髮、詢問節假日的營業時間這樣的日常事項開始。

讓人與科技之間的互動能讓人與人之間的互動那樣自然,一直都是谷歌的目標。而 Google Duplex 是我們邁向這個方向的堅實一步,它能在特定場景下讓人機之間以自然對話的方式互動。我們希望這些技術的發展,能為人類和計算機之間的交互帶來有意義的進步。


參考資料:

https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html

http://weixin.qq.com/r/80QiOi3EDnBxrWlZ9xHh (二維碼自動識別)


Google duplex是一種用於特定領域,通過撥打電話執行任務的工具。特定領域是指比如預定一家餐館、預定一次理髮等。Google duplex可以進行非常自然的人機對話,聽起來非常地自然,就像真實的人在進行電話撥打一樣。

Google duplex使用到的技術:

1、使用Google自己的ASR(語音識別)技術,將對話方的語音轉化為文字;

2、使用TensorFlow構建基於RNN(循環神經網路)的模型,基於匿名電話會話數據語料庫,進行Duplex的訓練,訓練好的模型,可以根據對話方的語音轉化成的文字,生成相應的文字響應;

3、使用綜合TTS引擎(Tacontron和WaveNet),將深度學習模型生成的文字,轉化為語音,作為最終的對話響應;

4、duplex可以和Google assistant配合使用,Google assistant可以在後台調用duplex,進行任務的執行。

Google Assistant的技術流程

Google duplex的對話非常自然的原因:

1、Duplex被限制在特定的領域進行使用,這使得技術人員可以針對該領域進行詳細的技術設計,從而取得有針對性的非常自然的效果;

2、神經網路模型的輸入不僅是ASR的文字結果,還包括對話的歷史記錄,使得模型可以更好地理解對話的上下文,生成更加準確的響應;

3、Duplex會使用「嗯」、「啊「等表示停頓、思考的語氣詞,或者延長某些詞,好像它正在花時間去思考一個答案,使得語音響應聽起來更加自然;由於人們在進行真實的對話時,有時會期待及時快速的響應,比如說「你好?」在類似的極端情況下,duplex甚至會不等待深度學習模型的響應結果,而是用更快的類似的響應,如此,便使得響應更加地自然。

Google Assistant與Google Duplex的配合使用

來源:https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html?m=1


  1. Google Duplex目前只能做一些特定種類的預訂(原文是certain types of appointments),如訂餐,剪頭髮, 預訂車輛之類的吧, 主要集中在電商領域的。 料想以後還是想通過這個技術帶領安卓買買買的??「幫我訂個漢堡,和上次的一樣的」。
  2. Google是限定了語音交互的場景,目前不能做到所有的談話都能接。"Google Google告訴我,PHP是不是最好的語言?" "......"
  3. Google為了讓聲音聽起來比較自然,在裡面加了「恩」「啊」「納尼」之類的詞。 而且很在意停頓的長短,如果人家說「喂?」他會很快回答, 而有些地方則會停頓長點——「讓我假裝在考慮人類的提議。。。」 。 這些都是人為加進去的,就是程序員按照領導的旨意加的。
  4. Duplex是全自動的。。。。。。但是如果搞不定了, 還可以轉到人工那裡去。。。。
  5. 主要技術是自家的語音識別(ASR)轉換為文字之後,解析的參數丟到RNN網路裡面產生相應的文字,然後用Deep Mind去年的Wavenet產生語音信號,除了Wavenet之外還用到了google 自己的Tacotron ,一個可以產生各種英式口音的引擎。github上有。不過裡面沒有任何代碼,哈哈哈哈哈哈哈哈哈,這個玩笑開得可以
  6. 用了不止一個網路, 可能是Hinton之前說的, 用一堆網路來處理的思路一樣, 比如他們檢測到「喂喂喂?」之類的就會丟到一個簡單網路裡面去, 不需要通過RNN了。 google就是這麼壕氣喂,搞幾個網路。。。
  7. 以上的信息來自https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html?m=1
  8. 視頻來自網路,侵刪。

我的理解是這個是非常牛逼的工程成就,綜合了很多領先的科研成果,而且達到了很高的水平的產品,頗有幾分科幻成真的感覺,以下是沒什麼科幻色彩的部分

  1. 整個過程還是老的那套: 語音轉文字,然後輸入文字映射到輸出的文字內容,文字內容再合成TTS語音。
  2. 合成語音的方式是用人聲拼接的方式(concatenative)和合成的方式同時進行,人聲拼接就是和Siri一樣的, 人事先錄好,然後處理成一段段的語音素材,然後後期按需拼接起來,這個方式就是費錢(當然對google來時不是個事), 合成的方式(wavenet)是更先進的方式, 估計以後會慢慢取代人聲拼接。
  3. 暫時不能通過圖靈測試的。 比如「幫我買個手辦, 我在江浙滬,包郵就買不包郵就不買, 我要51前用,老闆今天能發就買, 明天發就來不及了,我還是不買的。只要走順豐的 」。


客服成本將會大幅度降低


模型的整個架構可以看樓上幾位的模型,但是關鍵技術細節,目前沒看到介紹。

我說的就是這段內容:

神經網路模型的輸入不僅是ASR的文字結果,還包括對話的歷史記錄,使得模型可以更好地理解對話的上下文,生成更加準確的響應;

我猜測,應該還是以對話管理(DM)為核心的一套多輪對話模型,對具體任務做了更複雜的策略和響應。


這就很尷尬了~

真的心疼某賣假藥公司!

本來差不多的水平,現在,哎!


谷歌官方介紹,不謝:https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html?m=1


多謝樓上,從裡邊提取一個框架圖出來,就比較清晰了


推薦閱讀:

如何看待 Google 與 HTC 和聯想合作研發 Standalone VR?
Google Photos 如何能做到為全球用戶提供無容量限制的高質量圖片視頻免費存儲服務?
如何評價 Google 在 Google I/O 2017 發布的 Android Go 項目?
如何看待谷歌推出 Google Play Protect 用以掃描清理「有害」APP?
Google I/O 2017 有哪些值得期待的看點?

TAG:人工智慧 | 自然語言處理 | 谷歌Google | GoogleIO | 智能語音 |