語音交互的三駕馬車:ASR、NLP、TTS

JM
4 評論 67230 瀏覽 213 收藏 13 分鐘

語音交互是AI最重要的領域之一,也是目前落地產品比較成熟的領域,比如說智能客服、智能音箱、聊天機器人等,都已經有成熟的產品了。語音交互主要由哪些部分組成?各自主要處理什么任務?目前都遇到什么困難?本文將跟大家一起探討下。

01? 語音交互的組成

我們以一個智能音箱的例子來開始今天的討論:

假設我們對智能音箱天貓精靈說“放一首周杰倫的《晴天》”。天貓精靈就會說“好的,馬上為你播放周杰倫的《晴天》”,并且開始播放音樂。

這個過程貓精靈都做了些什么?

首先,天貓精靈把聽到的聲音轉化成文字,然后理解內容,最后做出相應策略,并把響應策略轉化成語音。

因此,語音交互就可以成以下這三個模塊:

  • 語音識別(Automatic Speech Recognition):簡稱ASR,是將聲音轉化成文字的過程,相當于耳朵。
  • 自然語言處理(Natural Language Processing):簡稱NLP,是理解和處理文本的過程,相當于大腦。
  • 語音合成(Text-To-Speech):簡稱TTS,是把文本轉化成語音的過程,相當于嘴巴。

下面我們就來詳細的介紹每一個模塊。

02 語音識別(ASR)

通常語音識別有兩種方法:

  • “傳統”的識別方法,一般采用隱馬爾可夫模型(HMM)
  • 基于深度神經網絡的“端到端”方法。

兩種方法都需要經過“輸入—編碼—解碼—輸出”的流程。

2.1 編碼

編碼就是把聲音轉化成機器能識別的樣式,即用數字向量表示。

輸入的聲音信號是計算機沒辦法直接識別的,首先需要將聲音信號切割成一小段一小段,然后每一小段都按一定的規則用向量來表示。

2.2 解碼

解碼就是把數字向量拼接文字的形式。

首先,將編譯好的向量,放到聲學模型中,就可以得到每一小段對應的字母是什么;

然后,把翻譯出來的字母再經過語言模型,就可以組裝成單詞了。

當然聲學模型和語言模型也是個神經網絡,是通過大量的語音和語言數據來訓練出來了,在這里就不展開講了。

這里來個腦暴:

神經網絡能不能做到,不需要編碼和解碼的過程,不需要聲學和語言模型,直接把聲音信號丟到神經網絡里去訓練,最后輸出結果就是文字,具體中間過程是怎樣的,讓機器自己去學。如果這樣能實現,我覺得很酷,看起來是不是真的很智能。

03 自然語言處理(NLP)

NLP是語音交互中最核心,也是最難的模塊。

NLP主要涉及的技術有:文本預處理、詞法分析、句法分析、語義理解、分詞、文本分類、文本相似度處理、情感傾向分析、文本生成等等。但不局限于這些,涉及的技術比較多,且比較復雜。下面我們就挑幾個主要的技術點簡單聊下。

3.1 文本預處理

1)去噪聲:

只要跟輸出沒有關系的我們就叫噪聲,比如:空格、換行、斜桿等。

去噪聲后,文本變得更加規范化,不會出現各種亂七八糟的符號,對于后續的處理非常重要。

2)詞匯歸一化

這個在處理英文文本時比較常用,如“play”,“player”,“played”,“plays” 和 ”playing”是“play”的多種表示形式。雖然他們的含義不一樣,但是上下文中是相似的,可以把這些各種形式的單詞歸一化。

歸一化是具有文本特征工程的關鍵步驟,因為它將高緯特征(N個不同特征)轉化成低維空間。

3.2 詞法分析

1)分詞

分詞就是把一個句子,切分成多個詞匯。

比如:輸入“明天深圳的天氣怎樣?”,這個句子就會被分成“明天/深圳/的/天氣/怎樣”。其中“明天”、“深圳”、“天氣”就是這句話的關鍵詞,通過關鍵詞去匹配內容。

2)實體識別

實體提?。菏侵冈谝粋€文本中,提取出具體特定類別的實體,例如人名、地名、數值、專有名詞等。

比如:輸入“詹姆斯在NBA打了多少年”,其中“詹姆斯”就是實體詞,計算機可能就可以通過當前的時間和詹姆斯加入NBA的時間給出他在NBA的球齡。

實體識別在信息檢索、自動問答、知識圖譜等領域運用的比較多,目的就是告訴計算機這個詞是屬于某類實體,有助于識別出用戶意圖。

3.3 文本分類

主要目的是為了將文檔(文章)的主題進行分類,比如說是屬于經濟類、體育類、文學類等等。

解決文案分類問題,比較經典的算法是TF-IDF算法。

TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,并且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。

比如說“NBA”這個詞在一篇文章中出現的次數比較多,但又很少在其他文章中出現,那這篇出現多次“NBA”這個詞的文章很可能就是體育類文章。

3.4 文本相似度處理

文本相似度通常也叫文本距離,指的是兩個文本之間的距離。文本距離越小,相似度越高;距離越大,相似度越低。

比如:用戶輸入“這件衣服多少錢”或者說“這件衣服怎么賣”,這都是很口語化的句子,那要怎么給用戶返回“衣服價格”呢?就是根據文本相似度處理的。

需要我們計算出“多少錢”、“怎么賣”跟“價格”的相似度,然后根據相似度去匹配最佳答案。

應用場景:推薦、排序、智能客服以及自動閱卷等。解決之前只能靠關鍵詞精準匹配問題,識別語義,擴大了應用的范圍。

3.5 情感傾向分析

情感傾向分析,主要分為兩大類:情感傾向分類、觀點抽取。

1)情感傾向分類

情感傾向分類是識別文本的情感傾向,如:消極、積極、中性。

比如:“這家餐館不錯,服務態度好、價格便宜”,整個句子是積極的評價。

情感傾向分類對給用戶打標簽,給用戶推薦內容或服務,有比較好的效果。

2)觀點抽取

觀點抽取是把句子中的觀點抽取出來。

還是“這家餐館不錯、服務態度好,價格便宜”這個句子,其中“服務態度好”、“價格便宜”就是觀點詞。

觀點抽取對建立服務或內容的評價體系,有重要的意義。

3.6 目前遇到的困難

1)語言不規范

雖然目前我們可以總結出一些通用的規則,但是自然語言真的太靈活了。同一個詞在不同的場景可能表達多個意思, 不管是通過理解自然語言的規則,還是通過機器學習,都顯得比較困難。

2)錯別字

在處理文本時,會發現有大量的錯別字,怎么樣讓機器知道這些錯別字,并且改過來呢,也是NLP的一大難點。

3)新詞

在互聯網高速發展的時代,網上每天都會產生大量的新詞,我們如何快速地發現這些新詞,并讓機器理解,也是非常重要的。

04 語音合成(TTS)

實現TTS,目前比較成熟的有兩種方法:“拼接法”和“參數法”。

4.1 拼接法

首先,要準備好大量的語音,這些音都是又基本的單位拼接成的(基本單位如音節、音素等),然后從已準備好的聲音中,抽取出來合成目標聲音。

  • 優點:語音合成的質量比較高。
  • 缺點:數據量要求很大,數據庫里必須有足夠全的“音”。

4.2? 參數法

根據統計模型來產生每時每刻的語音參數(包括基頻、共振峰頻率等),然后把這些參數轉化為波形。

  • 優點:對數據的要求要小點。
  • 缺點:質量比拼接法差一些。

4.3 其他方法

  • 谷歌DeepMind提出的WaveNet方法,基于深度學習的語音合成模型,不會對語音信號進行參數化,使用神經網絡直接在時域預測合成語音波形的每一個采樣點。
  • Deep Voice 3采用一種新穎的用于語義合成的全卷積架構,可以用于非常大規模的錄音數據集。
  • VoiceLoop是Facebook提出的一種新的TTS神經網絡,它能將文本轉換為在室外采樣的聲音中的語音,且該網絡架構比現有的網絡架構簡單。

參考文章

  • 《CUI三部曲之語音識別——機器如何聽懂你的話?》_AI新司機
  • 《AI是怎樣理解人話的?淺析NLP中的分詞和關鍵詞_AI研習小分隊》_@藝馨_20171101
  • 《語音合成TTS | AI產品經理需要了解的AI技術概念》
  • 《干貨整理_2017(北京)百度技術沙龍NLP》_AI游學小分隊_20171104
  • 《語音合成TTS技術的最新進展信息匯總》_趙琦_20180404
  • 《【NLP技術】:NLP簡單介紹》
  • 《AI PM應該懂的自然語言處理(NLP)知識》

 

本文由 @Jimmy 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 識別的模型,你是基于英文的介紹的,中文呢?

    來自四川 回復
  2. 你確定我想抱緊你,是在NLP時進行糾錯,而不是識別時進行糾錯嗎?我的理解是這些錯別字糾錯,是在識別時,通過語言模型直接進行糾錯了。

    來自江蘇 回復
    1. 大部分公司都沒有自研ASR的能力,但是有自研NLP的能力。
      如果在ASR側完成糾錯,需要供應商訓練語言模型,付出的成本會很高。所以很多時候會在NLP實現。

      來自廣東 回復
    2. 你好,是的,ASR會有糾錯模型,這里更多想表達的是,當ASR識別錯誤后,就識別成了“報警”,這時丟給NLP了,對于NLP來說處理這樣的問題是比較難的。

      來自廣東 回復