語音交互的三駕馬車:ASR、NLP、TTS
語音交互是AI最重要的領(lǐng)域之一,也是目前落地產(chǎn)品比較成熟的領(lǐng)域,比如說智能客服、智能音箱、聊天機器人等,都已經(jīng)有成熟的產(chǎn)品了。語音交互主要由哪些部分組成?各自主要處理什么任務(wù)?目前都遇到什么困難?本文將跟大家一起探討下。
01? 語音交互的組成
我們以一個智能音箱的例子來開始今天的討論:
假設(shè)我們對智能音箱天貓精靈說“放一首周杰倫的《晴天》”。天貓精靈就會說“好的,馬上為你播放周杰倫的《晴天》”,并且開始播放音樂。
這個過程貓精靈都做了些什么?
首先,天貓精靈把聽到的聲音轉(zhuǎn)化成文字,然后理解內(nèi)容,最后做出相應(yīng)策略,并把響應(yīng)策略轉(zhuǎn)化成語音。
因此,語音交互就可以成以下這三個模塊:
- 語音識別(Automatic Speech Recognition):簡稱ASR,是將聲音轉(zhuǎn)化成文字的過程,相當(dāng)于耳朵。
- 自然語言處理(Natural Language Processing):簡稱NLP,是理解和處理文本的過程,相當(dāng)于大腦。
- 語音合成(Text-To-Speech):簡稱TTS,是把文本轉(zhuǎn)化成語音的過程,相當(dāng)于嘴巴。
下面我們就來詳細的介紹每一個模塊。
02 語音識別(ASR)
通常語音識別有兩種方法:
- “傳統(tǒng)”的識別方法,一般采用隱馬爾可夫模型(HMM)
- 基于深度神經(jīng)網(wǎng)絡(luò)的“端到端”方法。
兩種方法都需要經(jīng)過“輸入—編碼—解碼—輸出”的流程。
2.1 編碼
編碼就是把聲音轉(zhuǎn)化成機器能識別的樣式,即用數(shù)字向量表示。
輸入的聲音信號是計算機沒辦法直接識別的,首先需要將聲音信號切割成一小段一小段,然后每一小段都按一定的規(guī)則用向量來表示。
2.2 解碼
解碼就是把數(shù)字向量拼接文字的形式。
首先,將編譯好的向量,放到聲學(xué)模型中,就可以得到每一小段對應(yīng)的字母是什么;
然后,把翻譯出來的字母再經(jīng)過語言模型,就可以組裝成單詞了。
當(dāng)然聲學(xué)模型和語言模型也是個神經(jīng)網(wǎng)絡(luò),是通過大量的語音和語言數(shù)據(jù)來訓(xùn)練出來了,在這里就不展開講了。
這里來個腦暴:
神經(jīng)網(wǎng)絡(luò)能不能做到,不需要編碼和解碼的過程,不需要聲學(xué)和語言模型,直接把聲音信號丟到神經(jīng)網(wǎng)絡(luò)里去訓(xùn)練,最后輸出結(jié)果就是文字,具體中間過程是怎樣的,讓機器自己去學(xué)。如果這樣能實現(xiàn),我覺得很酷,看起來是不是真的很智能。
03 自然語言處理(NLP)
NLP是語音交互中最核心,也是最難的模塊。
NLP主要涉及的技術(shù)有:文本預(yù)處理、詞法分析、句法分析、語義理解、分詞、文本分類、文本相似度處理、情感傾向分析、文本生成等等。但不局限于這些,涉及的技術(shù)比較多,且比較復(fù)雜。下面我們就挑幾個主要的技術(shù)點簡單聊下。
3.1 文本預(yù)處理
1)去噪聲:
只要跟輸出沒有關(guān)系的我們就叫噪聲,比如:空格、換行、斜桿等。
去噪聲后,文本變得更加規(guī)范化,不會出現(xiàn)各種亂七八糟的符號,對于后續(xù)的處理非常重要。
2)詞匯歸一化
這個在處理英文文本時比較常用,如“play”,“player”,“played”,“plays” 和 ”playing”是“play”的多種表示形式。雖然他們的含義不一樣,但是上下文中是相似的,可以把這些各種形式的單詞歸一化。
歸一化是具有文本特征工程的關(guān)鍵步驟,因為它將高緯特征(N個不同特征)轉(zhuǎn)化成低維空間。
3.2 詞法分析
1)分詞
分詞就是把一個句子,切分成多個詞匯。
比如:輸入“明天深圳的天氣怎樣?”,這個句子就會被分成“明天/深圳/的/天氣/怎樣”。其中“明天”、“深圳”、“天氣”就是這句話的關(guān)鍵詞,通過關(guān)鍵詞去匹配內(nèi)容。
2)實體識別
實體提取:是指在一個文本中,提取出具體特定類別的實體,例如人名、地名、數(shù)值、專有名詞等。
比如:輸入“詹姆斯在NBA打了多少年”,其中“詹姆斯”就是實體詞,計算機可能就可以通過當(dāng)前的時間和詹姆斯加入NBA的時間給出他在NBA的球齡。
實體識別在信息檢索、自動問答、知識圖譜等領(lǐng)域運用的比較多,目的就是告訴計算機這個詞是屬于某類實體,有助于識別出用戶意圖。
3.3 文本分類
主要目的是為了將文檔(文章)的主題進行分類,比如說是屬于經(jīng)濟類、體育類、文學(xué)類等等。
解決文案分類問題,比較經(jīng)典的算法是TF-IDF算法。
TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。
比如說“NBA”這個詞在一篇文章中出現(xiàn)的次數(shù)比較多,但又很少在其他文章中出現(xiàn),那這篇出現(xiàn)多次“NBA”這個詞的文章很可能就是體育類文章。
3.4 文本相似度處理
文本相似度通常也叫文本距離,指的是兩個文本之間的距離。文本距離越小,相似度越高;距離越大,相似度越低。
比如:用戶輸入“這件衣服多少錢”或者說“這件衣服怎么賣”,這都是很口語化的句子,那要怎么給用戶返回“衣服價格”呢?就是根據(jù)文本相似度處理的。
需要我們計算出“多少錢”、“怎么賣”跟“價格”的相似度,然后根據(jù)相似度去匹配最佳答案。
應(yīng)用場景:推薦、排序、智能客服以及自動閱卷等。解決之前只能靠關(guān)鍵詞精準匹配問題,識別語義,擴大了應(yīng)用的范圍。
3.5 情感傾向分析
情感傾向分析,主要分為兩大類:情感傾向分類、觀點抽取。
1)情感傾向分類
情感傾向分類是識別文本的情感傾向,如:消極、積極、中性。
比如:“這家餐館不錯,服務(wù)態(tài)度好、價格便宜”,整個句子是積極的評價。
情感傾向分類對給用戶打標簽,給用戶推薦內(nèi)容或服務(wù),有比較好的效果。
2)觀點抽取
觀點抽取是把句子中的觀點抽取出來。
還是“這家餐館不錯、服務(wù)態(tài)度好,價格便宜”這個句子,其中“服務(wù)態(tài)度好”、“價格便宜”就是觀點詞。
觀點抽取對建立服務(wù)或內(nèi)容的評價體系,有重要的意義。
3.6 目前遇到的困難
1)語言不規(guī)范
雖然目前我們可以總結(jié)出一些通用的規(guī)則,但是自然語言真的太靈活了。同一個詞在不同的場景可能表達多個意思, 不管是通過理解自然語言的規(guī)則,還是通過機器學(xué)習(xí),都顯得比較困難。
2)錯別字
在處理文本時,會發(fā)現(xiàn)有大量的錯別字,怎么樣讓機器知道這些錯別字,并且改過來呢,也是NLP的一大難點。
3)新詞
在互聯(lián)網(wǎng)高速發(fā)展的時代,網(wǎng)上每天都會產(chǎn)生大量的新詞,我們?nèi)绾慰焖俚匕l(fā)現(xiàn)這些新詞,并讓機器理解,也是非常重要的。
04 語音合成(TTS)
實現(xiàn)TTS,目前比較成熟的有兩種方法:“拼接法”和“參數(shù)法”。
4.1 拼接法
首先,要準備好大量的語音,這些音都是又基本的單位拼接成的(基本單位如音節(jié)、音素等),然后從已準備好的聲音中,抽取出來合成目標聲音。
- 優(yōu)點:語音合成的質(zhì)量比較高。
- 缺點:數(shù)據(jù)量要求很大,數(shù)據(jù)庫里必須有足夠全的“音”。
4.2? 參數(shù)法
根據(jù)統(tǒng)計模型來產(chǎn)生每時每刻的語音參數(shù)(包括基頻、共振峰頻率等),然后把這些參數(shù)轉(zhuǎn)化為波形。
- 優(yōu)點:對數(shù)據(jù)的要求要小點。
- 缺點:質(zhì)量比拼接法差一些。
4.3 其他方法
- 谷歌DeepMind提出的WaveNet方法,基于深度學(xué)習(xí)的語音合成模型,不會對語音信號進行參數(shù)化,使用神經(jīng)網(wǎng)絡(luò)直接在時域預(yù)測合成語音波形的每一個采樣點。
- Deep Voice 3采用一種新穎的用于語義合成的全卷積架構(gòu),可以用于非常大規(guī)模的錄音數(shù)據(jù)集。
- VoiceLoop是Facebook提出的一種新的TTS神經(jīng)網(wǎng)絡(luò),它能將文本轉(zhuǎn)換為在室外采樣的聲音中的語音,且該網(wǎng)絡(luò)架構(gòu)比現(xiàn)有的網(wǎng)絡(luò)架構(gòu)簡單。
參考文章
- 《CUI三部曲之語音識別——機器如何聽懂你的話?》_AI新司機
- 《AI是怎樣理解人話的?淺析NLP中的分詞和關(guān)鍵詞_AI研習(xí)小分隊》_@藝馨_20171101
- 《語音合成TTS | AI產(chǎn)品經(jīng)理需要了解的AI技術(shù)概念》
- 《干貨整理_2017(北京)百度技術(shù)沙龍NLP》_AI游學(xué)小分隊_20171104
- 《語音合成TTS技術(shù)的最新進展信息匯總》_趙琦_20180404
- 《【NLP技術(shù)】:NLP簡單介紹》
- 《AI PM應(yīng)該懂的自然語言處理(NLP)知識》
本文由 @Jimmy 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
識別的模型,你是基于英文的介紹的,中文呢?
你確定我想抱緊你,是在NLP時進行糾錯,而不是識別時進行糾錯嗎?我的理解是這些錯別字糾錯,是在識別時,通過語言模型直接進行糾錯了。
大部分公司都沒有自研ASR的能力,但是有自研NLP的能力。
如果在ASR側(cè)完成糾錯,需要供應(yīng)商訓(xùn)練語言模型,付出的成本會很高。所以很多時候會在NLP實現(xiàn)。
你好,是的,ASR會有糾錯模型,這里更多想表達的是,當(dāng)ASR識別錯誤后,就識別成了“報警”,這時丟給NLP了,對于NLP來說處理這樣的問題是比較難的。