語(yǔ)音識(shí)別對(duì)于VR領(lǐng)域格外重要,因?yàn)樗粌H能模擬AI與用戶對(duì)話,還為用戶提供了與任意應(yīng)用進(jìn)行溝通的更多選擇。手動(dòng)輸入指令可能不太現(xiàn)實(shí),并且應(yīng)用如果擁有太多按鈕或其它GUI元素,也會(huì)很快讓用戶手足無(wú)措。但只要能語(yǔ)音控制,那么在VR環(huán)境中就很容易開(kāi)口去進(jìn)行各種操作。
Unity Labs的虛擬現(xiàn)實(shí)(VR)授權(quán)平臺(tái)Carte Blanche將發(fā)布一個(gè)名為U的個(gè)人助理系統(tǒng),用戶可以通過(guò)語(yǔ)音控制它,很便利地執(zhí)行一些操作。Unity Labs研發(fā)團(tuán)隊(duì)一直在研究可以實(shí)現(xiàn)這種聲控命令的語(yǔ)音識(shí)別與分析工具。
觀看下面的視頻了解Carte Blanche中的個(gè)人助理系統(tǒng)U:
本文第一部分將介紹語(yǔ)音識(shí)別的概念和理論。它將簡(jiǎn)單介紹其相關(guān)概念和參考,以幫助讀者了解更多關(guān)于語(yǔ)音識(shí)別方面的信息。第二部分將簡(jiǎn)單介紹在Unity Asset Store的安裝包以及公開(kāi)的代碼庫(kù),我們封裝了幾個(gè)語(yǔ)音轉(zhuǎn)文本的解決方案,還有一些用于對(duì)比各API的文本翻譯的示例場(chǎng)景。

如果想詳細(xì)了解語(yǔ)音識(shí)別的概念和理論以及更多相關(guān)的研究,請(qǐng)進(jìn)入U(xiǎn)nity官方中文社區(qū)。下面簡(jiǎn)單為大家介紹語(yǔ)音識(shí)別與語(yǔ)義分析的原理,以及Unity Labs為大家提供的語(yǔ)音識(shí)別插件。
語(yǔ)音識(shí)別與語(yǔ)義分析的原理
語(yǔ)音識(shí)別,顧名思義就是通過(guò)程序?qū)⒄Z(yǔ)音轉(zhuǎn)換成文本。而語(yǔ)義分析是其下一步,即將轉(zhuǎn)換出來(lái)的文本進(jìn)一步分析,并確定文本想要表達(dá)的意思。即使是目前最好的語(yǔ)音識(shí)別和語(yǔ)義分析程序也遠(yuǎn)稱不上完美。雖然人們能直截了當(dāng)并毫不費(fèi)力地處理這樣的任務(wù),但是當(dāng)我們?cè)噲D讓程序去執(zhí)行這兩個(gè)步驟時(shí),困難程度真的是難以想象。
目前基于統(tǒng)計(jì)學(xué)的語(yǔ)音識(shí)別最重要的部分就是聲學(xué)建模(Acoustic Modeling)。這個(gè)過(guò)程中用于識(shí)別聲音開(kāi)始時(shí)不同的波形,或者是語(yǔ)音結(jié)束時(shí)的一些音節(jié)。對(duì)于聲學(xué)模型而言,通過(guò)查看聲波輸出,并嘗試找出最可能輸入的音節(jié)是什么, 從而分析出說(shuō)話者究竟想表達(dá)什么。

如上圖所示,這是聲學(xué)模型中“x”的發(fā)音模型。橢圓表示我們正在嘗試識(shí)別的音節(jié)。它們無(wú)法被直接觀察到,但它們產(chǎn)生的概率波形(底部)是可以被完整觀察到的。因此,波形自身是可以觀察的,但必須及時(shí)從可觀察的狀態(tài)中分辨出音節(jié)。
假設(shè)語(yǔ)音已經(jīng)被成功轉(zhuǎn)換成了文本,現(xiàn)在程序需要分辨該文本究竟是什么“意思”,這時(shí)語(yǔ)義分析就可以登場(chǎng)了。人們?nèi)粘I钪芯蜔o(wú)時(shí)不刻地在進(jìn)行著語(yǔ)義分析。例如,在閱讀這句話之前,你可能已經(jīng)猜到接下來(lái)會(huì)是人們?nèi)绾芜M(jìn)行語(yǔ)義分析練習(xí)的例子。那是因?yàn)槟隳芾蒙弦痪洌ɡ纭叭藗內(nèi)粘I钪芯蜔o(wú)時(shí)不刻地在進(jìn)行著語(yǔ)義分析”)作為上下文線索,從而很好地預(yù)測(cè)后續(xù)幾句。因此,如果想要擁有非常逼真的VR體驗(yàn),AI必須善于分析玩家的語(yǔ)句并給予正確的反饋。
語(yǔ)音轉(zhuǎn)文本的工具
Labs最初研究的語(yǔ)音識(shí)別涉及了對(duì)現(xiàn)有語(yǔ)音轉(zhuǎn)文本解決方案的評(píng)估。我們開(kāi)發(fā)了整合部分解決方案的Unity C#腳本插件并分享在Unity Asset Store。里面包含了示例場(chǎng)景,可以依次對(duì)比每個(gè)API轉(zhuǎn)換的文本內(nèi)容,同時(shí)允許用戶從給定的列表中選定短語(yǔ),并查看說(shuō)出該短語(yǔ)后程序判定的準(zhǔn)確程度。該代碼也可以從Unity代碼庫(kù)中獲得。

我們提供的插件是對(duì)比目前Unity中幾大語(yǔ)音轉(zhuǎn)文本解決方案的簡(jiǎn)便方法,也很容易將其整合至你的項(xiàng)目。如果想在Unity中嘗試其他API,使用該插件也非常簡(jiǎn)單,只需新建類繼承自Speech-To-Text的Service基類,然后即成到示例場(chǎng)景或小部件即可。除了單獨(dú)的語(yǔ)音文本轉(zhuǎn)換SDK,插件還包括多個(gè)輔助類與函數(shù)(記錄管理器,音頻文件的創(chuàng)建和轉(zhuǎn)換等等),以便集成和比較更多的API。
各大語(yǔ)音文本都各有特色,如果有興趣,可以查看關(guān)于Windows dictation recognition, Google Cloud Speech,?IBM Watson, 以及Wit.ai四種語(yǔ)音識(shí)別解決方案的具體信息。
總結(jié)與未來(lái)規(guī)劃
語(yǔ)音識(shí)別很難精準(zhǔn)的原因在于有太多的變量需要考慮。對(duì)于每一種要識(shí)別的語(yǔ)言都需要儲(chǔ)存大量的數(shù)據(jù),包括所有現(xiàn)存的單詞(包括俚語(yǔ)及簡(jiǎn)寫形式),這些單詞相互如何結(jié)合,語(yǔ)調(diào)和口音也可能影響發(fā)音,所有人類語(yǔ)言的冗余和矛盾等等更多因素。
發(fā)布至Asset Store的自Speech-To-Text插件目前僅集成了幾個(gè)語(yǔ)音文本轉(zhuǎn)換解決方案,但這些足以用來(lái)比較現(xiàn)有語(yǔ)音識(shí)別工具的優(yōu)缺點(diǎn)了。對(duì)Unity開(kāi)發(fā)者而言,該插件只是起點(diǎn),還可以根據(jù)具體需求來(lái)加入更多功能。

SimSensei,一款由南加州(USC)學(xué)院創(chuàng)新研究部(ICT)開(kāi)發(fā)出來(lái)的模擬治療程序
這項(xiàng)研究源于Carte Blanche項(xiàng)目最初集成AI機(jī)器人U來(lái)響應(yīng)聲控命令的計(jì)劃。這涉及到語(yǔ)音文本的轉(zhuǎn)換以及關(guān)鍵字識(shí)別。另一個(gè)有趣卻艱難的挑戰(zhàn)是創(chuàng)造出能與用戶“對(duì)話”的機(jī)器人。人們?cè)谌粘?duì)話中經(jīng)常包含類似于“嗯”或者是“啊”之類的語(yǔ)氣詞來(lái)表達(dá)感受。如果VR應(yīng)用中的AI機(jī)器人不僅能夠理解關(guān)鍵字,還能理解人類回話的各個(gè)部分,那它將讓VR環(huán)境的沉浸感進(jìn)入全新的層次。