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