国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android手機語音報警系統(tǒng)的設(shè)計與實現(xiàn)

2019-09-24 06:03羅鵬馮鏡吾冷曉晗曾肖鴻弋葉談孫晗常昊李策
電腦知識與技術(shù) 2019年21期
關(guān)鍵詞:GPS定位語音識別

羅鵬 馮鏡吾 冷曉晗 曾肖鴻弋 葉談 孫晗 常昊 李策

摘要:基于Android移動平臺開發(fā)的手機語音報警系統(tǒng)APP,結(jié)合Android開發(fā)技術(shù)、語音端點檢測技術(shù)、語音特征提取技術(shù)、語音識別技術(shù)、GPS定位技術(shù)、移動終端和服務(wù)器終端信息交互技術(shù),以實現(xiàn)實時檢測、采集外界語音的輸入信號,并實時處理語音信號,得到語音識別結(jié)果的功能。然后利用語音識別結(jié)果判斷系統(tǒng)是否啟動與自動報警,真正達到用戶能在手機端利用語音進行語音報警的目的。

關(guān)鍵詞:Android;端點檢測;語音特征提取;語音識別;GPS定位

中圖分類號:TN912.34? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)21-0082-05

開放科學(xué)(資源服務(wù))標識碼(OSID):

Abstract: The development of this APP is based on android mobile platform, combine with android development technology, VAD (Voice Activity Detection) technology, Speech Feature Extraction technology, Speech Recognition technology, GPS Positioning technology and Information Interaction between mobile device and Net-based server,thereby enabling real time monitoring, collect external voice input signal and handle voice signal in real time to get voice recognition result. Then use this result to judge whether to call the police or not, so it can achieve the final purpose of call the police with voice in mobile device.

Key words: Android; VAD (Voice Activity Detection); Speech Feature Extraction; Speech Recognition; GPS Positioning

1 背景

近年來,隨著圖像處理、語音識別、人臉識別等新技術(shù)逐步從實驗室走向?qū)嶋H應(yīng)用的過程中,Android手機結(jié)合各種新技術(shù)的應(yīng)用程序越來越多,而各種應(yīng)用程序的出現(xiàn)也極大豐富了用戶的體驗。但目前市場上的智能手機,并沒有應(yīng)用程序在手機端實現(xiàn)語音的報警功能,而僅僅是實現(xiàn)手機端的一鍵報警功能;然而當前的語音識別技術(shù)可以將費時,費力的機器操作變得簡單有趣,使用語音控制手機也是高端智能手機的必備功能之一,比如手機語音助手,語音輸入法等功能的實現(xiàn)就讓人們的生活更加便捷有趣。

基于創(chuàng)新和實用的觀點,本文結(jié)合Android應(yīng)用開發(fā)技術(shù)和語音處理技術(shù),提出基于Android手機語音報警系統(tǒng)的設(shè)計與實現(xiàn)方案,并結(jié)合實際應(yīng)用場景開發(fā)一款基于用戶在危險情況下可以使用語音在手機端進行報警的APP。該系統(tǒng)具有廣泛的應(yīng)用用途,用戶可在銀行、圖書館、商場、居室等場合遇到危險、緊急情況時使用該系統(tǒng)進行自動報警,以達到快速、準確報警的目的。當用戶在遇到緊急危險情況時,比如用戶在商店、回家路上遭遇盜搶等受害者已經(jīng)被控制的突發(fā)情況下,用戶可以不用長按power電源鍵、home鍵或者音量鍵,而僅僅需要用戶說一句口令,就可以實現(xiàn)報警;報警系統(tǒng)快速響應(yīng)并向親戚、朋友等預(yù)先設(shè)定的報警信息接收人進行求救。由于考慮到實際應(yīng)用場景,本系統(tǒng)要求在用戶無法使用手指進行手機喚醒時,要求系統(tǒng)一直保持監(jiān)聽狀態(tài),一旦從外界監(jiān)聽到語音活動段,就開始進行相應(yīng)的語音處理、識別、匹配,當系統(tǒng)監(jiān)聽、匹配到用戶口令,就喚醒系統(tǒng),自動進行報警。

2 系統(tǒng)總體設(shè)計及功能

本系統(tǒng)應(yīng)用軟件實現(xiàn)包括用戶注冊登錄、語音數(shù)據(jù)實時采集、語音活動檢測、口令識別、GPS定位和報警信息發(fā)送六大功能模塊。系統(tǒng)功能結(jié)構(gòu)如圖1如下:

1) 用戶注冊登錄:該功能模塊完成用戶身份信息注冊,并將注冊信息上傳服務(wù)器終端進行保存,用戶登錄時發(fā)出http登錄請求,由服務(wù)器對請求進行登錄驗證,如果登錄信息正確,則服務(wù)器同意其登錄請求。

2)語音數(shù)據(jù)的實時采集:該功能模塊實現(xiàn)語音的實時監(jiān)控和采集,并將采集的語音數(shù)據(jù)存儲在數(shù)據(jù)緩沖區(qū)中。

3) 語音端點檢測:該模塊通過多線程技術(shù)實現(xiàn)語音數(shù)據(jù)緩沖區(qū)的監(jiān)控,當緩沖區(qū)中語音數(shù)據(jù)達到設(shè)定的門限值,此時取出語音數(shù)據(jù)進行端點檢測,去除語音數(shù)據(jù)中非語音數(shù)據(jù)段,以減少系統(tǒng)資源、功率的消耗。

4) 語音識別服務(wù):該模塊負責接收客戶端經(jīng)端點檢測后上傳的語音數(shù)據(jù),并對數(shù)據(jù)進行預(yù)加重、分幀、加窗等預(yù)處理,進而提取語音數(shù)據(jù)的特征參數(shù);將特征參數(shù)作為輸入傳入口令識別模型庫進行解碼與搜索匹配,輸出匹配結(jié)果并將結(jié)果返回客戶端。

5) GPS定位:該模塊包括定位信息獲取和定位信息處理兩個子模塊,其中GPS定位信息獲取子模塊通過輪詢的方式獲取設(shè)備的地理位置信息,而定位信息處理子模塊將獲取的地理位置信息處理為短信、文字等形式。

6) 求救信息處理、發(fā)送模塊:求救信息處理模塊主要完成求救信息的設(shè)置、文字信息的處理,系統(tǒng)允許用戶預(yù)先設(shè)置求救文字信息內(nèi)容和求救信息接收人;在求救者進行求救行為時,求救信息發(fā)送子模塊自動向求救信息接收人發(fā)送用戶預(yù)先設(shè)置的求救文字信息,并完成報警動作。

3 系統(tǒng)實現(xiàn)及關(guān)鍵模塊

3.1 手機客服端功能實現(xiàn)

3.1.1 語音實時采集模塊

該模塊實現(xiàn)包括音頻的實時監(jiān)聽和實時輸入,音頻編碼、解碼功能以及音頻存儲功能。系統(tǒng)通過多線程技術(shù)[1]一直監(jiān)聽麥克風狀態(tài),實時獲得外界模擬聲信號的輸入,并對輸入的聲音信號進行濾波、采樣、量化、編碼處理后,輸出聲音信號的數(shù)字碼流[2],并將處理得到的數(shù)字碼流輸出到語音數(shù)據(jù)緩沖區(qū)中進行存儲,為后期數(shù)據(jù)預(yù)處理和語音識別功能模塊提供數(shù)據(jù)。音頻數(shù)據(jù)采集過程流程圖如圖2所示。

本文通過雙緩沖機制[3]和Audio Record接口[4]實現(xiàn)音頻的實時錄制功能,通過實例化Audio Record,結(jié)合相關(guān)場景設(shè)置、實時采集Audio Record接口需要的參數(shù)信息,并調(diào)用相關(guān)接口方法根據(jù)提供的參數(shù)信息完成音頻的實時錄制、存儲等功能,Audio Record參數(shù)信息如表1所示,相關(guān)接口方法信息如表2所示。

3.1.2 語音端點檢測模塊

在本系統(tǒng)中,語音的端點檢測[5]是關(guān)鍵技術(shù)之一。語音的端點檢測技術(shù)主要完成語音數(shù)據(jù)段的起始點和終止點的判斷,進而將語音數(shù)據(jù)中非語音部分進行丟棄,減少后期數(shù)據(jù)的傳輸量和處理量,提高系統(tǒng)的運行效率,降低系統(tǒng)的消耗。系統(tǒng)在接收設(shè)備輸入信號后,進行相應(yīng)的預(yù)處理。預(yù)處理的第一步主要是進行分幀操作,即是將輸入語音信號分段,第二步主要完成對聲學(xué)參數(shù)的特征提取,聲學(xué)特征用于區(qū)分有效的語音幀,端點檢測的主要任務(wù)就是完成對端點的檢測判斷,進而提取有效的語音幀,最后一步是進行語音數(shù)據(jù)的平滑處理,得到一個清晰的語音信號。語音端點檢測基本原理流程如圖3所示。

本系統(tǒng)基于WebRTC[6]的VAD檢測模塊實現(xiàn)端點檢測功能,VAD檢測模塊通過一個子線程間隔性監(jiān)聽語音數(shù)據(jù)緩沖區(qū),當語音數(shù)據(jù)緩沖區(qū)達到設(shè)置的閾值時,VAD檢測模塊立刻從語音數(shù)據(jù)緩沖區(qū)獲取語音數(shù)據(jù),并調(diào)用WebRTC相關(guān)接口函數(shù)進行相應(yīng)的預(yù)處理和參數(shù)提取,完成語音數(shù)據(jù)的端點檢測。其中WebRTC相關(guān)接口及屬性如表3所示。

3.1.3 GPS定位模塊

全球定位系統(tǒng)GPS(Global Positioning System),全稱為導(dǎo)航衛(wèi)星定時和測距系統(tǒng)[7],是一種基于衛(wèi)星的無線導(dǎo)航系統(tǒng),是由美國國防部設(shè)計和運行的、旨在為軍事和民用領(lǐng)域提供精確的授時、定位服務(wù)?;贕PS全球性覆蓋,持續(xù)、全天候提供服務(wù)、定位精度高等優(yōu)點,本文結(jié)合Android開發(fā)技術(shù)和百度地圖服務(wù)實現(xiàn)手機端的GPS定位功能。Android GPS定位開發(fā)流程主要如下:

1) 向百度地圖申請服務(wù),得到一個API Key,作為接入百度地圖的密鑰,并完成相關(guān)環(huán)境配置。

2) 獲取StringBuilder類對象currentPosition。currentPosition用于產(chǎn)生所有與定位相關(guān)的服務(wù)和對象。通過調(diào)用 getCountry()、getProvince()等方法來實現(xiàn)獲取。

3) 設(shè)置LocationClientOption類。LocationClientOption對象的設(shè)置可以幫助系統(tǒng)獲取到更精確的Context定位信息。LocationClientOption對象option的主要屬性如表4所示。

4) 創(chuàng)建LocationClient實例。通過新建一個LBSwithBaidu活動,并調(diào)用onCreate()方法創(chuàng)建LocationClient實例。

5) 注冊定位監(jiān)聽器。通過LocationCliet實例調(diào)用getApplocationContext()方法獲取全局的Context屬性參數(shù),并調(diào)用LocationClient實例的registerLocationListener()方法完成監(jiān)聽器的注冊。

6) 獲取用戶當前地理位置信息。通過調(diào)用requestLocation()方法開始進行當前位置信息獲取,設(shè)置參數(shù)為前文提到的全局參數(shù)Context。

7) 地理位置的經(jīng)緯度解析。通過調(diào)用bdLocation的getLatitude()、getLongitude()、getAltitude()方法來獲取當前位置經(jīng)度、緯度和海拔的值,進而得到用戶經(jīng)度和緯度信息。

8) 地理位置信息更新與顯示。通過創(chuàng)建LocationClientOption對象調(diào)用setScanSpan()方法設(shè)置10秒為一個時間間隔更新當前位置信息,并通過調(diào)用ActivityCompt類的requestPermissions()方法申請相關(guān)權(quán)限,并在配置文件中加入MAPVIEW控件實現(xiàn)地圖的顯示。

3.1.4 求救信息的處理與發(fā)送

求救信息處理子模塊主要完成接收從后端服務(wù)器通過語音識別服務(wù)得到的識別結(jié)果,并將識別結(jié)果與用戶口令進行比對,如果識別結(jié)果與口令比對成功,則啟動求救信息發(fā)送子模塊,將用戶位置信息和預(yù)先設(shè)置的報警文字發(fā)送給求救人,達到快速報警的目的。

求救信息發(fā)送主要流程如下:

1)接收服務(wù)器返回的信息,并檢測isRescue屬性。

2)若isResecue屬性為真,則向服務(wù)器請求存在用戶數(shù)據(jù)庫該用戶的HelpText屬性和HelpTelephone屬性,并通過相應(yīng)變量接收、存儲。

3)設(shè)置一個SmsManager實例sms。利用庫中封裝的sendTextMessage函數(shù)發(fā)送求救信息,其中destinationAddress參數(shù)用HelpTelephone變量賦值,Text參數(shù)用HelpText變量賦值,sendIntent和deliveryIntent分別使用SentPI和DeliverPI賦值。

4)監(jiān)控SentPI和DeliverPI參數(shù)。其中sentPI參數(shù)用于檢測運營商是否成功發(fā)送求救信息,deliverPI參數(shù)用于檢測運營商成功發(fā)送求救信息后,對方是否接收成功。若發(fā)生發(fā)送、接收出錯,則進行相關(guān)的錯誤處理,若發(fā)送、接收成功,則調(diào)用Toast.show()函數(shù)顯示結(jié)果。

3.2 服務(wù)器終端功能實現(xiàn)

3.2.1 語音識別服務(wù)

語音識別是將用戶輸入的語音轉(zhuǎn)換成計算機能夠處理的字符序列的一種技術(shù),處理的大致過程可分為如下過程,第一步主要是完成數(shù)字語音信號相應(yīng)的預(yù)處理,包括語音的預(yù)加重、分幀、加窗、端點檢測等,第二步是對輸入的語音信號進行分析,提取語音信號的MFCC特征參數(shù)[8],并通過相應(yīng)訓(xùn)練得到語音識別的模型庫,第三步是計算機根據(jù)提供的語音識別模型庫,將需要識別的語音數(shù)據(jù)的特征參數(shù)與模型庫通過相關(guān)的解碼、搜索算法進行對比,找出模型庫中與輸入語音信號最優(yōu)匹配的模板,最后輸出識別結(jié)果,語音識別的基本原理流程圖如圖4所示。其中語音識別的主要過程可分為模型訓(xùn)練和語音識別判斷。

1)模型訓(xùn)練。訓(xùn)練的根本就是構(gòu)造聲學(xué)模型,再輸入數(shù)據(jù)集訓(xùn)練。本項目使用Keras、TensorFlow基于深度卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶神經(jīng)網(wǎng)絡(luò)、注意力機制以及CTC實現(xiàn)。定義CNN/LSTM/CTC模型,使用函數(shù)式模型。CNN[9](卷積神經(jīng)網(wǎng)絡(luò))模型分為輸入層、隱藏層和輸出層,輸入層由上一步語音初步處理后的向量序列組成;隱藏層由卷積層、池化層和全連接層組成,卷積函數(shù)運用Conv2D()函數(shù),將語音向量組與卷積核相乘,提取更高層次的特征,池化層運用MaxPooling2D()函數(shù),減小數(shù)據(jù)處理量同時保留有用信息,全連接層對經(jīng)過多次卷積層和多次池化層所得出來的高級特征進行全連接,算出預(yù)測值;輸出層主要由softmax作為激發(fā)函數(shù),將所得的特征預(yù)測值進行分類處理,最后通過全連接層輸出預(yù)測值。本項目將神經(jīng)元運用的為LSTM(長短時記憶單元)神經(jīng)元[10],其基本思想是利用不同類型的門控制輸出的信息流,意在長時間保存信息的復(fù)雜并能精巧運用。CTC層在lambda層中實現(xiàn),實現(xiàn)連接性時序及輸出。模型定義成功后,將本項目所采集的數(shù)據(jù)集經(jīng)處理后進行長時間訓(xùn)練,通過對比loss的函數(shù)圖像和準確率的結(jié)果,最后獲得模型進行運用。

2)語音識別判斷。根據(jù)馬爾可夫假設(shè)[11],假設(shè)每一個詞出現(xiàn)的概率僅考慮與前一個詞有關(guān),統(tǒng)計每一個詞的概率與前一個詞到這一個詞的轉(zhuǎn)移概率,選取普通人說話的場景下的語料庫,生成一個帶有詞頻標識的中文詞典。通過聲學(xué)模型得到語音特征向量,結(jié)合中文詞典,使用維特比算法[12]進行解碼運算,構(gòu)成語言模型。解碼過程中不斷剔除掉概率過低的路徑,解碼完成后得到一個概率最大的路徑,即概率最大的一個句子,然后輸出相應(yīng)的文本。

3.3 客戶終端與服務(wù)器終端的交互

客服終端與服務(wù)器終端的交互主要包括數(shù)據(jù)發(fā)送子模塊和數(shù)據(jù)接收子模塊,主要實現(xiàn)客服終端向后端服務(wù)器的語音識別服務(wù)子模塊發(fā)送語音數(shù)據(jù),并請求提供相應(yīng)語音識別服務(wù)。其中數(shù)據(jù)發(fā)送子模塊主要負責發(fā)送HTTP協(xié)議的POST請求[13],請求將客戶終端采集的語音數(shù)據(jù)上傳后臺的語音識別服務(wù)子模塊,并進行語音識別服務(wù);數(shù)據(jù)接收子模塊接收客服終端上傳的語音數(shù)據(jù),等待語音識別子模塊輸出口令結(jié)果,將識別口令結(jié)果或是錯誤信息以JSON[13]格式字符串形式返回給客戶終端的服務(wù)請求者。

該模塊通過Java JDK提供的JSONArry和JSONObject類實現(xiàn)輕量級數(shù)據(jù)交換格式的設(shè)置,并調(diào)用相關(guān)參數(shù)和方法獲取需要的數(shù)據(jù)。通過HttpURLConnection類及其父類URLConnection實現(xiàn)數(shù)據(jù)的發(fā)送和接收功能,HttpURLConnection類的相關(guān)函數(shù)如表6所示。

4 系統(tǒng)應(yīng)用實例展示

4.1 用戶注冊、登錄界面展示

用戶通過輸入賬號和密碼進行注冊,注冊界面如圖5所示;用戶注冊成功后,軟件將用戶賬號和密碼輸出到后臺文件mrsoft.xml中進行保存,保存結(jié)果如圖6所示;用戶登錄時查看mrsoft.xml文件,檢查用戶是否注冊并驗證其登錄密碼是否正確。用戶登錄界面如圖7所示。

4.2 用戶主界面及其功能展示

用戶登錄成功后,軟件跳轉(zhuǎn)進入用戶主界面,用戶主界面主要包括報警消息提醒、個人信息設(shè)置、用戶定位、緊急聯(lián)系人設(shè)置功能,用戶可點擊“按鈕”查看相關(guān)信息,用戶主界面如圖8所示。其中消息提醒功能實現(xiàn)系統(tǒng)和用戶的交流,發(fā)送用戶報警消息的通知;發(fā)送消息結(jié)果如圖9所示;個人信息功能用于用戶信息的完善和更改;用戶定位功能實現(xiàn)用戶位置信息的獲取,定位結(jié)果如圖10所示。緊急聯(lián)系人設(shè)置實現(xiàn)用戶報警聯(lián)系人信息的輸入,并將輸入數(shù)據(jù)輸出到后臺文件savelxr.xml中保存。報警聯(lián)系人信息輸入界面如圖11所示,保存數(shù)據(jù)如圖12所示。

5 總結(jié)與展望

本文主要基于移動終端設(shè)備并結(jié)合當前熱門的語音識別技術(shù)提出手機端實現(xiàn)語音報警功能的設(shè)計及其實現(xiàn)方案,實現(xiàn)手機端一鍵報警功能的替代。該系統(tǒng)具有廣泛的應(yīng)用用途,用戶可在銀行、圖書館、商場、居室等場合遇到危險、緊急情況時使用該系統(tǒng)進行自動報警,以達到快速、準確報警的目的。雖然該系統(tǒng)已基本實現(xiàn),但要實現(xiàn)一個穩(wěn)定性優(yōu)良、可移植性優(yōu)良、功耗低、成本低、語音識別率準確度高、實際運用度強的語音報警系統(tǒng),還有很多問題需要進一步的探索和完善,比如解決強噪聲干擾問題,收集更全面語音數(shù)據(jù)優(yōu)化語音識別模型問題,解決語音實時檢測時的手機功耗問題等都需要我們的完善和優(yōu)化。

參考文獻:

[1] 李鑫, 廖正赟. 多線程技術(shù)在Android手機開發(fā)中的運用[J]. 通訊世界, 2016(10): 105.

[2] 何佳若. 室內(nèi)語音報警詞識別系統(tǒng)設(shè)計[C]//安聲學(xué)學(xué)會、 上海市聲學(xué)學(xué)會.第二屆西安-上海兩地聲學(xué)學(xué)術(shù)會議論文集. 西安聲學(xué)學(xué)會、上海市聲學(xué)學(xué)會:《聲學(xué)技術(shù)》編輯部, 2011: 4.

[3] 文明. 基于雙緩沖技術(shù)的音頻數(shù)據(jù)實時采集與播放[J]. 聲學(xué)與電子工程, 2016(2): 36-37.

[4] 朱元波. Android傳感器開發(fā)與智能設(shè)備案例實戰(zhàn)[M]. 北京: 人民郵電出版社, 2016(5).

[5] 劉華平, 李昕, 徐柏齡, 等. 語音信號端點檢測方法綜述及展望[J]. 計算機應(yīng)用研究, 2008(8): 2278-2283.

[6] 周衛(wèi)斌, 姚列健, 倪慧珍, 等. 基于WebRTC的Android數(shù)字樓宇對講系統(tǒng)回聲消除[J]. 電聲技術(shù), 2016, 40(2): 52-55.

[7] 葛昌利. 高精度GPS定位方法及其在無人機定位系統(tǒng)中應(yīng)用的研究[D]. 南京: 南京郵電大學(xué), 2018.

[8] 高銘, 孫仁誠. 基于改進MFCC的說話人特征參數(shù)提取算法[J]. 青島大學(xué)學(xué)報: 自然科學(xué)版, 2019, 32(1): 61-65, 73.

[9] 梅俊杰. 基于卷積神經(jīng)網(wǎng)絡(luò)的語音識別研究[D]. 北京: 北京交通大學(xué), 2017.

[10] 俞棟, 鄧力. 解析深度學(xué)習(xí)語音識別實踐[M]. 北京: 電子工業(yè)出版社, 2016(7).

[11] VASEHGI S V. State duration modelling in hidden Markov models[J]. Journal of Signal Processing, 2014, 41(1): 31-41.

[12] FOMEY G D. The Viterbi Algorithm[J]. Proceedings of the IEEE, 1973, 461(3): 266-278.

[13] 劉憲濤. 基于Android平臺的手機語音識別服務(wù)客戶端系統(tǒng)的設(shè)計與實現(xiàn)[D]. 北京: 北京郵電大學(xué), 2013.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
GPS定位語音識別
移動軌跡挖掘算法設(shè)計與系統(tǒng)實現(xiàn)
通話中的語音識別技術(shù)