機器人語音怎麼製作

作者 | Alexander Kuznetsov

譯者 | 彎月,責編 | 夕顏

出品 | CSDN(ID:CSDNnews)

機器人比人類更加適合簡單的勞動密集型任務,因此我們可以積極使用機器人來處理日常的常規操作。自動化的應用很廣泛,包括與客戶在電話中交談。

在本文中,我們就來談一談如何通過語音識別分辨通話者的性別,並處理對話的技術和細節。

首先,我們討論一個業務案例,然後將詳細討論技術。

我介紹一個最有趣的業務案例:引入語音機器人取代呼叫中心的員工。這個機器人的功能不是執行常規任務(例如確認送貨地址),而是找出為什麼有些客戶訪問公司網站的次數減少了。

這項技術基於功能完整的神經網路,而不是僅靠某個指令碼。神經網路幫助機器人解決了常常費解的一些問題。這裡,我指的是對話者給出這樣的回答:“呃,我不知道,也許是,也許不是吧”,或者“呃,也許吧,可能不是。”一些人類常用的表達方式卻會成為機器人無法逾越的障礙。

經過訓練後,機器人能夠明白不同短語的含義以及可能的答案。機器人能夠發出多種聲音,包括男性和女性的聲音。我們的主要任務是讓機器人更像一個活人,跟它對話的人類不會測試機器本身的功能,而是在目標場景的背景下進行對話。

以下是一個結果的示例。

https://soundcloud.com/daniil-dymshits/sets/neuronet-kupivip-black-friday

這個機器人能夠聽取對話者的聲音,並給出有意義的答案。該對話指令碼的不同分支總數超過一千。

這個機器人的主要目的是瞭解公司網站上客戶活動減少的原因,併為客戶提供有意義的報價。這是該公司首次實現呼叫中心自動化的一次嘗試。

新機器人的效果得到了顯著提升。

下面,我們來談談基本的技術。

確保機器人效能的三項關鍵技術為:

  • 通過語音識別對話者的性別
  • 年齡識別
  • 管理與人類的對話

我們開發這個功能是為了利用機器人進行問卷調查。以前,問卷調查都是要求人們填寫調查的問題。例如,問卷上必須標明對話者的性別。顯然,人類面試官無需詢問交談的對方是男人還是女人。在99%的情況下,都不會出錯。然而,對於機器人,情況就會有所不同。為了讓機器人學會準確地識別聲音,開發人員不得不解決許多問題。這項工作並沒有白費,如今的技術可以根據性別設定個性化的語音提示。

重要的一點是:女性聲音具有普遍性,適用於處理最廣泛的產品,對於女性產品尤其重要。根據各種研究,任何聽眾聽到女性的聲音都會感覺很舒服,因此轉換成女性聲音的效果更好。例外情況是宣傳男性產品的運動,這時男性的聲音更好。

這種機器人是如何實現的?首先,根據語音記錄和持續20 ms的片段處理來執行主要資料處理。使用VAD(語音活動檢測)元件對所有收集的語音片段進行預處理。這一步非常必要,通過這一步我們可以將語音與噪聲分離。刪除了所有不必要的元素,從而提高了模型的準確性。

然後,採用一階/二階微分的倒頻譜系數空間識別聲音。GMM(高斯混合模型)方法是這種方法的基礎。

因此,我們採用10–20 ms的間隔並計算當前的功率譜,然後使用傅立葉逆變換對頻譜的對數進行搜尋,並尋找必要的係數。

我們的GMM模型可分別使用男性和女性聲音進行訓練,還可以使用模型來分辨成人和兒童的聲音。當然,訓練系統不能什麼都沒有,你需要標記過的語音錄音。

為了提高系統的效率,我們使用音色語音模型的係數:

  • 音色清晰度
  • 音色溫暖度
  • 音色亮度
  • 音色深度
  • 音色穩定性
  • 音色增長
  • 音色不均
  • 音色回聲

我們需要使用音色模型來正確識別孩子的聲音,因為其他模型都將孩子的聲音視為女性。此外,你還需要區分低沉的女性聲音(例如,吸菸的老年婦女的聲音),男性聲音較高的聲音等。順便說一句,如果一個人說“你好”然後咳嗽,那麼以前所有不帶音色過濾器的模型都會將這種聲音視為男性。

該系統的主要元件是基於MLP多層感知器的資料分類模組。它可以接收來自男性和女性聲音模型的資料以及來自音色模型的資料。系統接收預分類值的陣列作為輸入,然後輸出分辨性別的結果。

這種技術可用於線上(根據客戶的第一句話)和離線分類模式(在對話之後)。性別識別準確率約為95%。值得一提的是,線上工作時的延遲不會超過120–150 ms,只有這樣機器人才能更像人一樣。通常,機器人與人交流時的停頓會長達幾秒,人類會對這種行為感到奇怪,立即就能判斷出對方使用了數字系統。

開發人員還在新增處理文字的功能。如果對話者提及自己是女性,那麼對話者肯定是女性。在不久的將來,我們將改進這項技術並將其整合到識別系統中。

確定對話者的年齡

這項技術主要是為了防止向未成年人提供各種產品和服務。此外,瞭解年齡對於按年齡類別個性化報價非常有用。

我們採用了與前面的情況完全相同的技術。系統的準確性約為90%。

構造對話

接下來,我們來討論最有趣的部分:構造對話的原理。

這項技術的主要目的是有效地替換人類,機器人必須能夠處理線性和非線性對話場景。第一種情況指的是問卷調查等;第二種可以是呼叫中心、技術支援服務等與使用者的互動。

工作原理:我們使用基於語義分析的NLU引擎,從ASR系統接收文字。然後,定義構造對話流的邏輯中使用的識別物件,例如實體和意圖。

舉例說明這些技術的使用。

我們從語音識別系統(ASR)收到如下文字:

“總的來說,我對您的推薦很感興趣,但是我希望價格能再便宜一點。我現在有點忙。你能在明天六點再給我打個電話嗎?”

使用NLU引擎填充的物件:

意圖:

  • 確認=真
  • 異議=昂貴
  • 問題=
  • 回電=真
  • 錯誤的時間=真

實體:

  • 日期=2019年1月2日(假設通話日期為2019年1月1日)
  • 時間= 18:00
  • 數量= 6

在這個示例中,填充物件的方法如下:

意圖:

  • “我對您的推薦感興趣”轉換為“確認”意圖,值為“真”。
  • “但是我希望價格能再便宜一點”轉換為“異議”,意思是“昂貴”。
  • “我現在有點忙”轉換為“錯誤的時間”,值為“真”。
  • “你能在明天六點再給我打個電話嗎?”轉換為“回電”,值為“真”。
  • 使用者沒有提出任何問題,因此“問題”的意圖為空。

實體:

  • 文字“明天”自動轉換為“2019年1月2日”的實體,計算公式為:目前的日期 1(假設通話日期為2019年1月1日)。
  • 文字“六點”自動轉換為“時間”實體,值為“下午6:00”。
  • 文字“六”轉換為值為“6”的“數量”實體,由於存在較高優先順序的實體,因此在此邏輯中可以將其忽略。

現在,所有的意圖和實體都分配了特定的值,接下來我們來構建對話流程。

首先,我們來看看NLU Engine支援的演算法。該系統包括兩個級別。

第一層使用相對較小的資料樣本,其中包含大約600–1,000條記錄。此處使用機器學習演算法,識別準確度為90%–95%。

在啟動該專案並積累100萬條以上記錄的大量資料之後,我們進行第二級的轉換。此處使用DL演算法。識別準確度為95%–98%。

該解決方案與以下兩個子系統一起使用:

  • 用於文字資料分類的子系統
  • 對話設計子系統

這兩個子系統並行工作。分類和分類系統根據與使用者的語音通話接收識別的文字,並通過Entity和Value引數構造答覆。

非線性場景的對話構建子系統是基於神經網路構建的。該系統根據與使用者的語音通話接收識別的文字,併發出有關應在下一個時刻播放哪些錄音的決定。

非線性方案適用於機器人不知道誰在打電話,不知道使用者對哪個產品感興趣,也不知道可能被問及哪些問題。此時,通話的推進取決於客戶的響應。

但是,在撥出電話的時候,線性方案才是最佳解決方案。本文的開頭給出了相應的示例。線性場景的另一個示例與調查有關,這種情況下客戶的回答無關緊要,因為我們會對客戶的回答做一步的分析。但是,重要的是引導客戶回答問卷上的所有問題。

總的來說,我們要強調的是,語音機器人不會取代人類。如今,機器人能夠勝任打電話詢問一些問題,並聆聽、記錄和/或分析答案。希望藉此將呼叫中心和技術支援的操作員從日復一日的例行工作中解放出來,讓他們專心解決真正有趣的問題以及重要的任務。

原文連結:

https://hackernoon.com/the-future-is-now-how-voice-robots-work-and-what-they-can-do-8y2b3y8j

本文為CSDN翻譯文章,轉載請註明出處。

☞AI 時代,為什麼程式設計師很貴?

☞“生命遊戲之父”因新冠肺炎逝世,回顧數學頑童的一生

☞天吶,你竟然還在用 try–catch-finally

☞北京四環堵車引發的智慧交通大構想

☞你公司的虛擬機器還閒著?基於Jenkins和Kubernetes的持續整合測試實踐瞭解一下!

☞從Web1.0到Web3.0:詳析這些年網際網路的發展及未來方向