周更
上次講到pattern蹦哼。
我繼續(xù)說鳄哭,pattern是用來干嘛的呢?
這時(shí)候就要談到什么解析了纲熏。
一段語音輸入系統(tǒng)妆丘,首先需要轉(zhuǎn)換成文字锄俄,但是系統(tǒng)如何知道這些文字想表達(dá)的intent 呢。這 時(shí)候就要用到pattern了勺拣。我們需要把這些文字與pattern定義好的做對(duì)比奶赠,一旦命中了某個(gè)定義的語句,就會(huì)解析為該意圖药有。
首先我說一下pattern的結(jié)構(gòu)毅戈。pattern由兩部分組成,1愤惰、定義的詞
這兩幅圖都是我定義的詞苇经,這怎么理解呢。就拿第一幅圖的第二句話為例子宦言,這句話的意思是不管系統(tǒng)識(shí)別到的是[接到]還是[看到]都會(huì)解析為[接到]扇单,[接到]和[看到]之間的“|”這個(gè)符號(hào)是或者的意思。所以這句話定義的就是后邊所有的詞就可以用前邊的詞所代替奠旺。
符號(hào)意思: | = 或者 ? ? ? ? ? = 可以沒有 ? ? $ = 必須結(jié)束蜘澜,如果后面還有話那這句話就為無效 ? ? ? ? ^ ?= 必須從這開始 ,如果前面還有話那這句話就為無效 ? ?
那么定義那些詞有什么用呢凉倚?我用這幅圖的open_systemsetting部分為例子,講一下嫂沉。
open_systemsetting 是我們定義的intent意思為 打開系統(tǒng)設(shè)置稽寒。
所以下邊的語句是我們根據(jù)我們定義的詞組合出來的話。一句話中有很多詞趟章,一個(gè)詞又等同于之前定義的很多詞杏糙,所以看似這部分只有六句,但是用戶所說的所有關(guān)于打開系統(tǒng)設(shè)置的話都能被這句話覆蓋到蚓土。
比如這句 ^【打開】?【系統(tǒng)設(shè)置】【吧】?$?
如果之前定義的 name = “打開” “synx”= “打開|開啟”?name = “系統(tǒng)設(shè)置” “synx”= “系統(tǒng)設(shè)置”?name = “吧” “synx”= “啊|吧”
那么這句話的排列組合就很多了宏侍。 打開系統(tǒng)設(shè)置吧 - 系統(tǒng)設(shè)置 - 系統(tǒng)設(shè)置吧- 打開系統(tǒng)設(shè)置啊 - 打開系統(tǒng)設(shè)置 - 開啟系統(tǒng)設(shè)置啊- 開啟系統(tǒng)設(shè)置吧- 開啟系統(tǒng)設(shè)置- 等 。
因?yàn)椤鞠到y(tǒng)設(shè)置】后面沒有 蜀漆? 所有如果這句話里沒有[系統(tǒng)設(shè)置]這四個(gè)字(而且只能是這四個(gè)字谅河,順序也不能變)將不能命中打開系統(tǒng)設(shè)置這個(gè)intent。
因?yàn)榍昂笥?^ $這兩個(gè)符號(hào)确丢,所以如果用戶說“請(qǐng)幫我打開系統(tǒng)設(shè)置”“打開系統(tǒng)設(shè)置吧快點(diǎn)”將不能識(shí)別绷耍。因?yàn)槲覀儾辉试S前后有字,必須從【打開】? 開始鲜侥,以【吧】?結(jié)尾褂始,如果覺得這樣不合理,你可以重新加一些定義的詞描函,將所有可能性覆蓋到崎苗,或者將這兩個(gè)符號(hào)去掉狐粱,當(dāng)然付出的代價(jià)可能是誤觸發(fā)。
好了pattern講完了胆数。
接下來我講一下這幾天我了解到的關(guān)于語音相關(guān)的專業(yè)詞匯
1肌蜻、語音識(shí)別(ASR)
自動(dòng)語音識(shí)別技術(shù)(Automatic Speech Recognition)是一種將人的語音轉(zhuǎn)換為文本的技術(shù)
語音識(shí)別是一個(gè)交叉學(xué)科,聲學(xué)幅慌、語言學(xué)宋欺、計(jì)算機(jī)科學(xué)等。語音識(shí)別系統(tǒng)的性能大致取決于以下4類因素:1. 識(shí)別詞匯表的大小和語音的復(fù)雜性胰伍;2. 語音信號(hào)的質(zhì)量齿诞;3. 單個(gè)說話人還是多說話人;4. 硬件(麥克風(fēng)數(shù)量的不同骂租,識(shí)別率肯定是不一樣的)
原理祷杈,先通過數(shù)據(jù)的訓(xùn)練,生成模板渗饮,然后將輸入的語音與模板進(jìn)行對(duì)比但汞。
1、識(shí)別率的指標(biāo)是WER(詞錯(cuò)誤率互站,Word Error Rate)和句錯(cuò)誤率SER
2私蕾、語音喚醒
語音喚醒,有時(shí)也稱為關(guān)鍵詞檢測(cè)(Keyword spotting)胡桃,也就是在連續(xù)不斷的語音中將目標(biāo)關(guān)鍵詞檢測(cè)出來踩叭,一般目標(biāo)關(guān)鍵詞的個(gè)數(shù)比較少(1~2個(gè)居多,特殊情況也可以擴(kuò)展到更多的幾個(gè))
語音識(shí)別語音喚醒的區(qū)別:
語音識(shí)別對(duì)于語音要求具有明確的開始和結(jié)尾翠胰。比如語音打字容贝,按下錄音鍵說話,松開錄音鍵轉(zhuǎn)換為文字之景。語音喚醒是在連續(xù)不斷的語音流里檢測(cè)是否有關(guān)鍵信息斤富。二者可以結(jié)合,這就是小愛音箱锻狗。
1)喚醒率2)喚醒的音節(jié)長(zhǎng)度 (長(zhǎng)了太多满力,短了容易誤喚醒)3)誤喚醒率4)響應(yīng)時(shí)間
二、自然語言處理
NLP 定義:將人的語言轉(zhuǎn)化為機(jī)器能理解轻纪、可以結(jié)構(gòu)化脚囊、完整的語音表示。
大概意思就是計(jì)算機(jī)理解和生成人類語言即NLU和NLG桐磁。
“買張周三晚大的電影票”吧這個(gè)句話所屬的domain悔耘,及其intent還有包含的slot找到。
從這張圖可以看出NLP包含NLP還有理解之前的處理階段和理解之后的應(yīng)用階段我擂。
1)左邊最底部衬以,是最基礎(chǔ)的大數(shù)據(jù)缓艳、機(jī)器學(xué)習(xí)和語言學(xué)(Linguistics);
2)往上看看峻,是知識(shí)圖譜(Knowledge Graph)阶淘,其中包含了實(shí)體圖譜、注意力圖譜和意圖圖譜互妓。
3)再往上溪窒,左側(cè)是語言理解(Language Understanding),右側(cè)是語言生成(Language Generation)——
語言理解冯勉,包含了Query理解澈蚌、文本理解、情感分析(Sentiment Analysis)等灼狰,還有詞法(Lexical)宛瞄、句法(Syntax)和語義(Semantic)等不同層次的分析。
語言生成交胚,包含了寫作份汗、閱讀理解等等。
4)最上方蝴簇,是系統(tǒng)層面杯活,包含了問答系統(tǒng)、機(jī)器翻譯和對(duì)話系統(tǒng)熬词。
5)最右側(cè)旁钧,是各種應(yīng)用場(chǎng)景,包含搜索荡澎、feeds流均践、O2O晤锹、廣告等等摩幔。
這里面有兩個(gè)特別難理解的詞,知識(shí)圖譜和query鞭铆,我先簡(jiǎn)單講一下或衡。后面如果有時(shí)間我會(huì)專門寫一篇文章講一下什么是知識(shí)圖譜和query。
知識(shí)圖譜就是認(rèn)知心理學(xué)中的語義網(wǎng)絡(luò)车遂。我舉個(gè)例子封断,我說蘋果大家會(huì)想到一堆東西,美國(guó)舶担、喬布斯坡疼、水果、iphone衣陶、甜的柄瑰、好吃等等闸氮,如果將所有與之相關(guān)的詞窮舉出來然后分別和蘋果進(jìn)行連線,就得到了一個(gè)以蘋果為中心的圖教沾,然后分別以這些詞為中心窮舉出與各自相關(guān)的詞并連線蒲跨,然后以此類推,就可能將世界上所有的詞都囊括到一張龐大的圖上授翻。這張圖肯定錯(cuò)中復(fù)雜或悲,交叉縱橫就形成了一張巨大的網(wǎng)絡(luò)。隨便觸發(fā)某個(gè)節(jié)點(diǎn)就能觸發(fā)與之相關(guān)的任何信息堪唐。
query是啥巡语?很簡(jiǎn)單,你想百度一個(gè)東西羔杨,你輸入的文字就是query捌臊。
在你百度的時(shí)候輸入了query你很可能找不到你想要的。這是為啥兜材?
1理澎、不同的用戶對(duì)同一種訴求的表達(dá)往往是有差別的,往往會(huì)存在一種比較常見的現(xiàn)象曙寡,用戶輸入的query并不能清晰準(zhǔn)確的表達(dá)需求糠爬。
2、搜索系統(tǒng)對(duì)用戶query的理解能力較弱举庶,無法挖掘出用戶的真實(shí)需求执隧。
3、召回結(jié)果集的排序不合理户侥,可能用戶需求的內(nèi)容被排在后面而未曝光镀琉。
想解決這些問題就需要通過用戶輸入的query來獲取用戶的真實(shí)需求。那么如何做蕊唐?
1屋摔、詞表窮舉法(很容易命中,但是需要人工繁瑣的連接)?2替梨、規(guī)則解析法?北京到上海今天的機(jī)票價(jià)格钓试,可以轉(zhuǎn)換為[地點(diǎn)]到[地點(diǎn)][日期][汽車票/機(jī)票/火車票]價(jià)格。但規(guī)則的制定需要人工??3副瀑、機(jī)器學(xué)習(xí)方法?機(jī)器學(xué)習(xí)的方法的實(shí)現(xiàn)較為復(fù)雜弓熏,主要是數(shù)據(jù)獲取和更新較困難,數(shù)據(jù)的標(biāo)注也需要較準(zhǔn)確才能訓(xùn)練出較好地模型糠睡。
query的改寫:query糾錯(cuò)挽鞠,query擴(kuò)展,query刪除,query轉(zhuǎn)換
三信认、語音合成
語音合成(Text-To-Speech)串稀,一般簡(jiǎn)稱TTS。我在公司很大一塊兒就是設(shè)計(jì)TTS話術(shù)
四狮杨、對(duì)話管理 DM
1母截、用戶任務(wù)完成率
2、對(duì)話交互效率
3橄教、對(duì)話分類