薛輝
(商洛學(xué)院 教務(wù)處,商洛 726000)
?
基于語(yǔ)音識(shí)別的手機(jī)點(diǎn)菜系統(tǒng)的研究與設(shè)計(jì)
薛輝
(商洛學(xué)院 教務(wù)處,商洛 726000)
為了實(shí)現(xiàn)語(yǔ)音點(diǎn)菜,研究了應(yīng)用語(yǔ)音識(shí)別技術(shù)進(jìn)行手機(jī)點(diǎn)菜的關(guān)鍵技術(shù),包括語(yǔ)音識(shí)別技術(shù)的選取、語(yǔ)音點(diǎn)菜的流程、BNF語(yǔ)法的編寫以及識(shí)別結(jié)果檢測(cè),并設(shè)計(jì)了一個(gè)手機(jī)點(diǎn)菜系統(tǒng)進(jìn)行驗(yàn)證,測(cè)試結(jié)果表明該系統(tǒng)識(shí)別準(zhǔn)確率高、使用方便。
語(yǔ)音識(shí)別; 手機(jī); 點(diǎn)菜; 系統(tǒng)
近幾年,隨著智能手機(jī)的逐漸普及,手機(jī)上的應(yīng)用越來(lái)越多,各種APP極大的豐富了手機(jī)的功能,手機(jī)已經(jīng)不僅僅是通訊工具,還逐漸變成了不可或缺的生活用品,在許多方面為人們的生活提供便利。手機(jī)點(diǎn)菜也已經(jīng)成為餐飲行業(yè)的發(fā)展趨勢(shì)[1],正以其投入少、回報(bào)快、效率高等優(yōu)勢(shì)被餐飲界認(rèn)可[2]。如果能通過(guò)語(yǔ)音點(diǎn)菜,就能提供更加良好的用戶體驗(yàn),進(jìn)一步方便客戶,并有效提高餐飲企業(yè)形象。
語(yǔ)音識(shí)別技術(shù)是人工智能的重要分支,Google、微軟、百度等公司都投入大量的資金和大批優(yōu)秀的科研人員進(jìn)行深入的研究。科大訊飛經(jīng)過(guò)多年的積累,語(yǔ)音技術(shù)達(dá)到了國(guó)際領(lǐng)先的水平[3],同時(shí)與學(xué)術(shù)界、產(chǎn)業(yè)界合作,共同打造以語(yǔ)音為核心的科大訊飛語(yǔ)音開放平臺(tái)。訊飛開放平臺(tái)作為一個(gè)綜合性的智能人機(jī)交互平臺(tái),提供世界領(lǐng)先的語(yǔ)音合成、語(yǔ)音識(shí)別、語(yǔ)義理解等技術(shù)[4],本文應(yīng)用科大訊飛的語(yǔ)音識(shí)別技術(shù)實(shí)現(xiàn)手機(jī)點(diǎn)菜系統(tǒng)的開發(fā)。
2.1 語(yǔ)音識(shí)別技術(shù)的選取
訊飛語(yǔ)音技術(shù)提供了語(yǔ)音聽寫、命令詞識(shí)別、語(yǔ)義理解3種不同的語(yǔ)音識(shí)別技術(shù)[5],其中語(yǔ)音聽寫是將一段語(yǔ)音轉(zhuǎn)換成文字內(nèi)容,能識(shí)別常見的詞匯、語(yǔ)句、語(yǔ)氣并自動(dòng)斷句;命令詞識(shí)別是指基于指定的語(yǔ)法結(jié)構(gòu),識(shí)別特定的命令詞、關(guān)鍵詞以及短語(yǔ)組合,來(lái)判斷用戶是否下達(dá)了某項(xiàng)命令;語(yǔ)義理解是分析用戶語(yǔ)音或文字的意圖,給出相應(yīng)的回答,比如輸入“明天西安的天氣”,即搜索西安第二天的天氣信息并返回給用戶。
對(duì)于點(diǎn)菜來(lái)說(shuō),關(guān)鍵是準(zhǔn)確識(shí)別用戶說(shuō)出的菜名。在以上3種語(yǔ)音識(shí)別技術(shù)中,命令詞識(shí)別可以精準(zhǔn)識(shí)別自定義的詞語(yǔ),可以把不同的菜名看作不同的命令詞,從而確定用戶點(diǎn)選的菜品,所以選用命令詞識(shí)別比較合適。命令詞識(shí)別根據(jù)聯(lián)網(wǎng)狀態(tài)不同,又分為在線命令詞識(shí)別和離線命令詞識(shí)別。離線命令詞識(shí)別核心計(jì)算在本地,減少了網(wǎng)絡(luò)交互的時(shí)間,比在線命令詞識(shí)別響應(yīng)快,準(zhǔn)確率也相差無(wú)幾,可以提供更佳的用戶體驗(yàn),所以選用離線命令詞識(shí)別技術(shù)最為合適。
2.2 語(yǔ)音點(diǎn)菜的流程
要使用訊飛語(yǔ)音技術(shù)開發(fā)手機(jī)語(yǔ)音識(shí)別系統(tǒng),先要將SDK中l(wèi)ibs目錄下的Msc.jar文件和armeabi文件夾復(fù)制到Android工程的libs目錄中,然后在AndroidManifest.xml文件中添加需要的權(quán)限。語(yǔ)音點(diǎn)菜的流程如圖1所示。
(1)初始化:初始化即創(chuàng)建語(yǔ)音配置對(duì)象,只有創(chuàng)建了語(yǔ)音配置對(duì)象才可以使用訊飛語(yǔ)音技術(shù)的各項(xiàng)服務(wù)。一般需要將初始化放在程序的入口處,比如Activity的onCreate方法里。
圖1 語(yǔ)音點(diǎn)菜流程
(2)構(gòu)建語(yǔ)法:語(yǔ)音識(shí)別的語(yǔ)法定義了語(yǔ)音識(shí)別所支持的命令詞的集合,高效合理的語(yǔ)法是準(zhǔn)確進(jìn)行語(yǔ)音識(shí)別的關(guān)鍵。
(3)語(yǔ)音輸入:客戶依次說(shuō)出需要點(diǎn)選的菜名和份數(shù),可以只說(shuō)菜名,也可以說(shuō)完整的或關(guān)鍵部分的自然語(yǔ)言。
(4)語(yǔ)音識(shí)別:調(diào)用訊飛語(yǔ)音離線命令詞識(shí)別技術(shù),基于構(gòu)建的語(yǔ)法對(duì)命令詞進(jìn)行識(shí)別,這里的命令詞包括菜名、份數(shù)和一些輔助詞語(yǔ)。
(5)結(jié)果檢測(cè):檢測(cè)識(shí)別的結(jié)果是否正確,如果正確即把所點(diǎn)的菜品加入客戶菜單,如果不正確取消該菜品。
(6)繼續(xù)點(diǎn)菜:客戶如果需要繼續(xù)點(diǎn)菜,接著說(shuō)出下一句點(diǎn)菜的語(yǔ)句即可。
2.3 BNF語(yǔ)法編寫
語(yǔ)音識(shí)別的語(yǔ)法定義了語(yǔ)音識(shí)別所支持的命令詞的集合,訊飛離線命令詞識(shí)別技術(shù)使用巴科斯范式(BNF)描述語(yǔ)音識(shí)別的語(yǔ)法。語(yǔ)法文檔被編譯成識(shí)別網(wǎng)絡(luò)后,將被送往語(yǔ)音識(shí)別器。語(yǔ)音識(shí)別器提取輸入語(yǔ)音的特征信息并在識(shí)別網(wǎng)絡(luò)上進(jìn)行路徑匹配,最終識(shí)別出用戶說(shuō)話的內(nèi)容。因此語(yǔ)法結(jié)構(gòu)是否合理,直接關(guān)系到識(shí)別的準(zhǔn)確率高低,構(gòu)建高效合理的語(yǔ)法是開發(fā)語(yǔ)音識(shí)別系統(tǒng)的核心內(nèi)容。本系統(tǒng)設(shè)計(jì)的語(yǔ)法文件如下:
#BNF+IAT 1.0 UTF-8;
!grammar call;
!slot
!slot
!slot
!start
][
][
:我|我想|我要|給我|幫我|讓我|再;
:點(diǎn)|來(lái)|上|訂;
:十!id(10);
:一!id(1)|二!id(2)|三!id(3)|四!id(4)|五!id(5)|六!id(6)|七!id(7)|八!id(8)|九!id(9)| 兩!id(2)|雙!id(2)|倆!id(2)|仨!id(3);
:個(gè)|份|盤|碗|條;
:麻婆豆腐|魚香肉絲|宮保雞丁|糖醋里脊|酸菜魚|紅燒肉|米飯; 使用該語(yǔ)法文件,客戶既可以直接說(shuō)出菜名,也可以說(shuō)完整的或關(guān)鍵部分的自然語(yǔ)言。比如客戶想點(diǎn)魚香肉絲,可以使用“來(lái)盤魚香肉絲”,“我要一盤魚香肉絲”,“魚香肉絲來(lái)一份”,“給我上個(gè)魚香肉絲”等等各種說(shuō)法,使用非常方便。
該語(yǔ)法文件的編寫采用完整語(yǔ)句分析、非關(guān)鍵詞可省略的方法。點(diǎn)菜通常有兩種說(shuō)法,一種是份數(shù)在前、菜名在后,比如“我要點(diǎn)一盤魚香肉絲”,另一種是菜名在前、份數(shù)在后,比如“魚香肉絲給我來(lái)一盤”,所以設(shè)計(jì)了
和 兩種語(yǔ)法格式,都使用命令詞組成完整的句子,并把可有可無(wú)的命令詞設(shè)為可以省略。在點(diǎn)菜時(shí),一般的菜品通常只點(diǎn)一兩份,而米飯有可能點(diǎn)十多碗甚至二三十碗,所以需要識(shí)別一百以內(nèi)的數(shù)值。該語(yǔ)法文件采用單個(gè)數(shù)值重復(fù)、中間加十的方法,可以識(shí)別一到九十九范圍內(nèi)的數(shù)值,能夠滿足點(diǎn)菜的需求,還支持特殊的數(shù)值說(shuō)法,比如兩、仨等,并且給數(shù)值定義了相應(yīng)的id,方便在返回的結(jié)果中識(shí)別數(shù)值。為了方便增加或者刪除菜品種類,該語(yǔ)法文件把菜名設(shè)置成了槽。槽是一種特殊的規(guī)則,描述了一系列并列的記號(hào),并且不包含任何子規(guī)則,可以在程序運(yùn)行過(guò)程中實(shí)時(shí)增減槽中的記號(hào),借用此功能,可以通過(guò)程序增減菜品種類,而無(wú)須修改語(yǔ)法。 2.4 識(shí)別結(jié)果檢測(cè)
訊飛語(yǔ)音識(shí)別技術(shù)可以使用JSON格式或XML格式返回語(yǔ)音識(shí)別結(jié)果。JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于機(jī)器解析和生成,也便于人閱讀和編寫,是一種簡(jiǎn)單易用的數(shù)據(jù)交換語(yǔ)言。為了方便對(duì)語(yǔ)音識(shí)別的結(jié)果進(jìn)行檢測(cè),本系統(tǒng)采用JSON格式。
語(yǔ)音識(shí)別模塊返回JSON格式文本后,通過(guò)循環(huán)檢測(cè)ws里的每一個(gè)對(duì)象找出slot值為
的對(duì)象,該對(duì)象的cw里第零個(gè)元素的w值(ws[n].cw[0].w)即客戶所點(diǎn)的菜名。對(duì)于數(shù)值,需要檢測(cè)slot值為 和 的對(duì)象,將幾個(gè)對(duì)象的cw里第零個(gè)元素的id值(ws[n].cw[0].id)組合起來(lái)即可獲得客戶所說(shuō)的數(shù)值。 3 系統(tǒng)的設(shè)計(jì)
3.1 系統(tǒng)的需求分析
該系統(tǒng)主要提供點(diǎn)菜功能,涉及到的用戶包括客戶、廚師、服務(wù)員、財(cái)務(wù)人員等,客戶可以使用該系統(tǒng)進(jìn)行語(yǔ)音點(diǎn)菜、呼叫服務(wù)、手機(jī)支付等,廚師可以增加或者修改菜品種類、查看每個(gè)餐桌的菜單并負(fù)責(zé)做好,服務(wù)員負(fù)責(zé)上菜,財(cái)務(wù)人員可以使用該系統(tǒng)進(jìn)行財(cái)務(wù)統(tǒng)計(jì)與分析[6]。當(dāng)有客戶呼叫服務(wù)時(shí),系統(tǒng)會(huì)向服務(wù)員發(fā)出消息,以便服務(wù)員及時(shí)提供服務(wù)。系統(tǒng)也支持廚師、服務(wù)員、財(cái)務(wù)人員之間的信息傳遞,以替代對(duì)講機(jī)的功能。系統(tǒng)可以完成完整的點(diǎn)菜、上菜、服務(wù)、結(jié)賬等工作環(huán)節(jié),滿足中小餐廳的一般需求。
3.2 系統(tǒng)的體系結(jié)構(gòu)
系統(tǒng)的體系結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)的體系結(jié)構(gòu)
該系統(tǒng)按照輕量級(jí)Java EE企業(yè)級(jí)架構(gòu)設(shè)計(jì)[7],基于Android系統(tǒng)和Java EE平臺(tái)開發(fā),采用Tomcat服務(wù)器程序,使用MySQL數(shù)據(jù)庫(kù)[8]。用戶使用手機(jī)上的Android客戶端通過(guò)網(wǎng)絡(luò)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器端程序通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù)[9],進(jìn)行瀏覽、添加、刪除、修改等操作,然后把結(jié)果返回給客戶端,用戶通過(guò)手機(jī)可以查看請(qǐng)求的結(jié)果。
3.3 系統(tǒng)的功能模塊
基于以上的需求分析,把系統(tǒng)的功能模塊劃分為菜品種類管理、菜單管理、信息服務(wù)、財(cái)務(wù)管理四大塊,如圖3所示。
圖3 系統(tǒng)的功能模塊
菜品種類管理模塊主要供廚師瀏覽、添加、修改或者刪除餐廳所提供的菜品種類;菜單管理模塊主要用來(lái)進(jìn)行語(yǔ)音點(diǎn)菜,還提供了瀏覽菜單、修改菜品和刪除菜品功能,以輔助進(jìn)行點(diǎn)菜操作;信息服務(wù)模塊用來(lái)傳遞信息,客戶可以使用該模塊呼叫服務(wù)員進(jìn)行服務(wù),廚師、服務(wù)員和財(cái)務(wù)人員之間可以相互發(fā)送語(yǔ)音;財(cái)務(wù)管理模塊提供手機(jī)支付和財(cái)務(wù)統(tǒng)計(jì)功能。
4 系統(tǒng)測(cè)試
筆者把該系統(tǒng)的語(yǔ)音點(diǎn)菜功能分別在某餐廳安靜的包間(低噪音)和嘈雜的大廳(中等噪音)進(jìn)行了測(cè)試,結(jié)果如表1所示:
表1 語(yǔ)音識(shí)別正確率測(cè)試結(jié)果
從表1可見,該系統(tǒng)在低噪音環(huán)境下語(yǔ)音識(shí)別的正確率達(dá)到94.3%,中等噪音環(huán)境下也能達(dá)到84.7%,正確率是比較高的。當(dāng)識(shí)別結(jié)果有誤時(shí),如果是菜品的名稱有誤,可以使用“刪除菜品”功能直接刪掉重新說(shuō);如果是份數(shù)有誤,可以使用“修改菜品”功能點(diǎn)擊加減號(hào)稍加修改,也可以直接刪掉重新說(shuō)。結(jié)合這兩項(xiàng)功能,本系統(tǒng)可以達(dá)到實(shí)用的程度。
5 總結(jié)
語(yǔ)音交互是最方便的人機(jī)交互方式之一。隨著人工智能的發(fā)展,語(yǔ)音識(shí)別技術(shù)已經(jīng)發(fā)展到了很高的階段,把語(yǔ)音技術(shù)應(yīng)用到各種系統(tǒng)中,能為用戶提供更加良好的操作體驗(yàn)[10]。本文所設(shè)計(jì)的基于語(yǔ)音識(shí)別技術(shù)的手機(jī)點(diǎn)菜系統(tǒng),是應(yīng)用語(yǔ)音技術(shù)的一次有益嘗試,識(shí)別準(zhǔn)確率高,使用方便,在餐飲企業(yè)有著廣泛的應(yīng)用前景,希望能為更多的系統(tǒng)應(yīng)用語(yǔ)音技術(shù)提供參考和啟示。
[1] 周洪艷,林超,丁頌. 基于Android的點(diǎn)餐系統(tǒng)APP設(shè)計(jì)[J]. 長(zhǎng)春師范大學(xué)學(xué)報(bào),2016,(12):34-38.
[2] 許朝輝. 基于Android手機(jī)的智能點(diǎn)餐系統(tǒng)設(shè)計(jì)[J]. 機(jī)械設(shè)計(jì)與制造工程,2016,(12):42-45.
[3] 李慧. 基于訊飛語(yǔ)音的安卓手機(jī)應(yīng)用開發(fā)步驟的研究[J]. 無(wú)線互聯(lián)科技,2015,(14):123-124.
[4] 王海洋,郭星. 基于語(yǔ)音識(shí)別的智慧旅游系統(tǒng)研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2015,(05):143-147.
[5] 訊飛語(yǔ)音提升停車場(chǎng)管理系統(tǒng)智能化水平[J]. 計(jì)算機(jī)與信息技術(shù),2011,(04):78.
[6] 張璘,李明明,馮陳偉. 基于Android的無(wú)線打印點(diǎn)餐系統(tǒng)[J]. 廈門理工學(xué)院學(xué)報(bào),2016,(05):74-78.
[7] 謝娜. Android平板電腦的電子菜單優(yōu)化設(shè)計(jì)[J]. 自動(dòng)化與儀器儀表,2016,(11):189-190.
[8] 陳松. 基于Android平臺(tái)的家居遠(yuǎn)程語(yǔ)音控制系統(tǒng)研究[J]. 赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2016,(21):25-26.
[9] 李小俊,肖佳,劉振宇. Android平臺(tái)下基于動(dòng)態(tài)加載的點(diǎn)餐APP的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件產(chǎn)業(yè)與工程,2016,(06):25-26.
[10] 郭海賓,王艷秋,燕孝飛. 基于Android平臺(tái)的手機(jī)語(yǔ)音記錄器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 福建電腦,2015,(10):24-25.
Research and Design of a Mobile Phone Ordering System Based on Speech Recognition
Xue Hui
(The Teaching Affairs Service, Shangluo University, Shangluo 726000, China)
In order to realize ordering dish by speech, this paper studied the key technologies of using speech recognition to order dish by mobile phone. The key technologies include the selection of speech recognition technology, the speech ordering processing, the preparation of BNF grammar, and the detection of speech recognition results. This paper also designed a mobile phone ordering system to verify the key technologies. The test results showed that the system has high recognition accuracy and is easy to use.
Speech recognition; Mobile phone; Ordering dish; System
薛 輝(1983-),男,商洛人,碩士,工程師,研究方向:計(jì)算機(jī)教育教學(xué)改革、應(yīng)用軟件開發(fā)。
1007-757X(2017)07-0059-03
TP311
A
2017.02.27)
猜你喜歡點(diǎn)菜接龍 意林(2023年14期)2023-09-01 12:30:36做菜 意林(2022年8期)2022-04-19 22:05:12會(huì)點(diǎn)菜的人,混得不會(huì)太差 好日子(2021年8期)2021-11-04 09:02:50魚香肉絲和愛情 北京廣播電視報(bào)(2019年7期)2019-03-26 02:57:42套路玩得深,點(diǎn)完餐的我淚流滿面 戀愛婚姻家庭·青春(2018年10期)2018-10-24 05:17:52瘋狂編輯部之點(diǎn)菜風(fēng)波 作文大王·中高年級(jí)(2017年9期)2017-09-22 21:30:35看清楚菜名:認(rèn)真審題 小學(xué)教學(xué)研究(2016年36期)2016-05-17 05:52:04魚香肉絲風(fēng)味蛋糕制作工藝的研究 農(nóng)學(xué)學(xué)報(bào)(2015年5期)2015-05-30 01:09:52網(wǎng)友盤點(diǎn)最萌最“坑爹”菜名 高中生·職教與就業(yè)(2013年2期)2013-03-27 10:16:0216道中國(guó)菜名翻譯你知道多少? 中學(xué)生英語(yǔ)·外語(yǔ)教學(xué)與研究(2008年7期)2008-12-19 05:28:46