• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

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

      開放科學(資源服務)標識碼(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 背景

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

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

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

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

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

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

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

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

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

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

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

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

      3.1.1 語音實時采集模塊

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

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

      3.1.2 語音端點檢測模塊

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

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

      3.1.3 GPS定位模塊

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3)設置一個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ā)送、接收出錯,則進行相關的錯誤處理,若發(fā)送、接收成功,則調用Toast.show()函數(shù)顯示結果。

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

      3.2.1 語音識別服務

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

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

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

      3.3 客戶終端與服務器終端的交互

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

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

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

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

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

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

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

      5 總結與展望

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

      參考文獻:

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

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

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

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

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

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

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

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

      [9] 梅俊杰. 基于卷積神經網絡的語音識別研究[D]. 北京: 北京交通大學, 2017.

      [10] 俞棟, 鄧力. 解析深度學習語音識別實踐[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平臺的手機語音識別服務客戶端系統(tǒng)的設計與實現(xiàn)[D]. 北京: 北京郵電大學, 2013.

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

      猜你喜歡
      GPS定位語音識別
      基于微信平臺的并行簽到考勤管理系統(tǒng)
      移動軌跡挖掘算法設計與系統(tǒng)實現(xiàn)
      通話中的語音識別技術
      基于Android的多維級聯(lián)定位技術的研究與實現(xiàn)
      面向移動終端的語音簽到系統(tǒng)
      農業(yè)物聯(lián)網平臺手機秘書功能分析與實現(xiàn)
      基于手機的分布式空氣粉塵檢測系統(tǒng)
      基于Android手機語音和Arduino控制板的機器人控制系統(tǒng)
      弥渡县| 定兴县| 白朗县| 阳朔县| 冕宁县| 唐山市| 晋城| 门头沟区| 含山县| 邵东县| 合山市| 枣强县| 正宁县| 三穗县| 贞丰县| 龙山县| 抚顺市| 石门县| 舞阳县| 墨脱县| 托克托县| 屯留县| 清苑县| 辉县市| 遂川县| 陵水| 南木林县| 霍邱县| 稻城县| 鲁甸县| 泸州市| 桓仁| 临海市| 海原县| 曲阜市| 会昌县| 明星| 淄博市| 濮阳县| 扎赉特旗| 固原市|