通常情況,一款只能語(yǔ)音類產(chǎn)品在正式上市之前,在技術(shù)層面上需要多方配合,通常每一塊領(lǐng)域都有專門擅長(zhǎng)的團(tuán)隊(duì)提供技術(shù),這個(gè)在之前做智能音箱產(chǎn)品介紹的時(shí)候有單獨(dú)提過。
接下來關(guān)于智能音箱常用架構(gòu)做一些參考說明,首先介紹如下常用詞:
ASR:Automatic Speech Recognition
NLP:Natural language processing
TTS:Text-to-speech
STT:Speech to text
分別為語(yǔ)音識(shí)別,自然語(yǔ)言處理,文字轉(zhuǎn)化為對(duì)話,以及對(duì)話轉(zhuǎn)換為文字。
那么在智能音箱的實(shí)際架構(gòu)上,首先,用戶與智能音箱之間的交互,通過ASR完成,也就是音箱上的麥克風(fēng)通過數(shù)據(jù)處理判斷用戶在說話,并通過喚醒詞,或功能喚醒詞等確認(rèn)用戶是在向音箱發(fā)送指令。常用語(yǔ)音助手指令例如Alexa,Cortana,Siri等等,都是專門經(jīng)過喚醒詞訓(xùn)練的。語(yǔ)音喚醒在學(xué)術(shù)上被稱為keyword spotting(簡(jiǎn)稱KWS),它指的是在連續(xù)語(yǔ)流中實(shí)時(shí)檢測(cè)出說話人特定片段。語(yǔ)音喚醒系統(tǒng)的評(píng)測(cè)標(biāo)準(zhǔn)通常包括誤識(shí)率和拒認(rèn)率兩個(gè)部分。 誤識(shí)率指用戶未發(fā)出命令,但系統(tǒng)卻錯(cuò)誤的被喚醒的情況。拒認(rèn)率指用戶發(fā)出了喚醒命令,但系統(tǒng)卻沒有相應(yīng)的情況。誤識(shí)率和拒認(rèn)率越低,證明系統(tǒng)越穩(wěn)定。
這里額外提一下,喚醒詞(wake up words)的存在是為了方便用戶更好的向智能音箱傳輸指令,那么為了避免噪聲,數(shù)據(jù)處理不完全,有口音和發(fā)音問題等因素,我們需要針對(duì)這個(gè)喚醒詞做系統(tǒng)訓(xùn)練,以便能夠更加方便喚醒,并避免誤喚醒的情況。通常,市面上喚醒詞訓(xùn)練公司針對(duì)一個(gè)喚醒詞的模型訓(xùn)練量大概5000~8000,而通常訓(xùn)練數(shù)據(jù)也有精細(xì)數(shù)據(jù),和粗略數(shù)據(jù)(后者訓(xùn)練效果可能沒有前者號(hào)),舉例如下一種非?;镜膯拘言~模型訓(xùn)練方案:
既,用產(chǎn)品本身的麥克風(fēng)模擬實(shí)際的收音現(xiàn)場(chǎng),用戶分別在不同的距離面向產(chǎn)品,以三擋語(yǔ)速念出喚醒詞。當(dāng)然,粗略數(shù)據(jù)也可以找很多人,用手機(jī)麥克風(fēng)簡(jiǎn)單錄制數(shù)據(jù),因個(gè)人的發(fā)音,語(yǔ)速,音調(diào)均會(huì)有所不同,因此也能起到訓(xùn)練意義。
硬件本身被喚醒之后,接下來麥克風(fēng)將開始“傾聽“用戶說話,目前有很多方案是將對(duì)話內(nèi)容生成wav錄音文件直接上傳至云端,開始進(jìn)行STT,也就是將一段音頻轉(zhuǎn)換為一段文字,數(shù)據(jù)信息從wav文件變成了text文件形式,但是此時(shí)我們還并不知道用戶意圖,這一段文字目前僅僅是text形式文件而已,接下來text會(huì)進(jìn)入下一個(gè)階段,也就是NLP處理(自然語(yǔ)義理解),自然語(yǔ)言處理(英語(yǔ):Natural Language Processing,縮寫作 NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運(yùn)用自然語(yǔ)言;自然語(yǔ)言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。自然語(yǔ)言處理的主要范疇包括中文自動(dòng)分詞、詞性標(biāo)注、句法分析、自然語(yǔ)言生成、文本分類、信息檢索、信息抽取、文字校對(duì)、問答系統(tǒng)、機(jī)器翻譯、文字蘊(yùn)涵、命名實(shí)體識(shí)別等。
目前比較專精在中文NLP供應(yīng)商有三角獸、驀然認(rèn)知、圖靈、靈犀等;(其他很多同樣積累NLP技術(shù)的公司,但是可能提供了可提供麥克風(fēng)陣列、語(yǔ)音喚醒、語(yǔ)音識(shí)別、語(yǔ)義理解、語(yǔ)音合成等一系列語(yǔ)音技術(shù),甚至平臺(tái)技術(shù),故不做此列)
這里既接入另外一個(gè)概念, Named Entity Recognition (NER) 命名實(shí)體識(shí)別,簡(jiǎn)單了解既講一段文字進(jìn)行分詞,用于進(jìn)一步的文本意圖理解,概念介紹如下:
那么,很多接觸過NLP的小伙伴們也大概了解,很多公司在NLP領(lǐng)域做專門研究,國(guó)內(nèi)目前也很有多機(jī)構(gòu)正在做相關(guān)研究,具體可以參考此篇文章:NLP(中文)團(tuán)隊(duì)研究
目前專精于NLP的團(tuán)隊(duì)的技術(shù)背景,通常需要有搜索引擎以及百科類知識(shí)圖譜的框架。難點(diǎn)也在于,很多名詞指向的內(nèi)容分類有可能是多方面的,既可能是音樂類,也可能是百科,閑聊,有聲讀物類,故而在區(qū)分意圖方面需要經(jīng)常調(diào)整架構(gòu),這也是那句“人工智能靠人工“的調(diào)侃由來吧。
總之,理解了用戶的意圖,并給出準(zhǔn)確的回答這一套邏輯,最終,生成了給到用戶的完整回答。比如,現(xiàn)在時(shí)間是XX;馬上為您播放周杰倫的《晴天》live版等等;并在云端將文字轉(zhuǎn)換成音頻,也就是我們常說的TTS(語(yǔ)音合成),它是將人類語(yǔ)音用人工的方式所產(chǎn)生。文字轉(zhuǎn)語(yǔ)音(text-to-speech,TTS)系統(tǒng)將一般語(yǔ)言的文字轉(zhuǎn)換為語(yǔ)音。
目前國(guó)內(nèi)的主流語(yǔ)音合成方案有科大訊飛、搜狗、云知聲、思必馳等。
而語(yǔ)音合成目前市面上一般使用參數(shù)合成,或者拼接合成,前者的音庫(kù)都是在10小時(shí)左右,基本用不到20小時(shí),對(duì)于合成人聲效果的自然度,更依賴算法,而拼接則對(duì)于數(shù)據(jù)的需求量很高,對(duì)合成人聲效果的自然度,更依賴數(shù)據(jù)量。很多聽起來很自然的音庫(kù)時(shí)長(zhǎng)在100~200小時(shí)左右。
以及,TTS模型通常也會(huì)分為中文,英文,或者中英混輸?shù)?。做?xùn)練的文本,有很多文字比較拗口,故而對(duì)錄音聲優(yōu)的功力有要求,中英混輸?shù)哪P蛿?shù)據(jù)就更難了。如果是普通的中文TTS模型,以剛才的例子“馬上為您播放周杰倫的《晴天》live版本”,這種就可以在錄音時(shí)加入一些簡(jiǎn)單的字母,單詞,短語(yǔ)等等。
合成的wav文件回傳到終端音箱,并播放出來,如此,完成了一環(huán)基礎(chǔ)的用戶與智能硬件之間的對(duì)話。
P.S.這里單獨(dú)介紹一個(gè)常與自然語(yǔ)言處理弄混的概念:Neuro-linguistic programming (NLP)
通常用于我們說的機(jī)器學(xué)習(xí),或者神經(jīng)網(wǎng)絡(luò)處理,通常是指我們通過Sigmoid函數(shù)嘗試模擬人腦神經(jīng)之間傳遞并處理信息的方式。關(guān)于Perception以及Sigmoid函數(shù)的概念區(qū)別,后面會(huì)單獨(dú)做一個(gè)相對(duì)生動(dòng)的舉例來做說明,總體的信息處理模式非常類似于我們電路常用與或非門,這一部分(模擬計(jì)算機(jī)處理),在《三體》里面有更加生動(dòng)的描述,非常有趣。