亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android平臺的音視頻監(jiān)控系統(tǒng)的設(shè)計

        2018-12-13 09:07:32楊志勇李衛(wèi)鋒
        計算機應(yīng)用與軟件 2018年12期
        關(guān)鍵詞:音視頻指令語音

        楊志勇 李衛(wèi)鋒 張 盛

        (清華大學(xué)深圳研究生院 廣東 深圳 518055)

        0 引 言

        近年來人工智能技術(shù)的快速發(fā)展,語音識別技術(shù)逐漸成熟,同時隨著Android智能手機和移動互聯(lián)網(wǎng)的普及,人們可以隨時隨地接入互聯(lián)網(wǎng)。如何通過手機實時查看家中的情況,以及家中出現(xiàn)各種狀況時能夠及時地通知到我們,成了大家迫切希望解決的問題。因此開發(fā)基于Android平臺的音視頻監(jiān)控系統(tǒng)對改善人們的居住條件具有重大意義,未來發(fā)展空間巨大。

        本文介紹了一種基于Android平臺的音視頻監(jiān)控系統(tǒng)[1],該系統(tǒng)分為數(shù)據(jù)采集端和用戶手機APP監(jiān)控端。數(shù)據(jù)采集端可以安裝在各種帶有攝像頭和錄音功能的Android終端上,用戶能夠通過語音喚醒系統(tǒng),然后控制攝像頭的打開與關(guān)閉,同時還可以接收其他語音指令并通過云端服務(wù)器發(fā)送到用戶手機APP監(jiān)控端。在用戶手機APP監(jiān)控端可以對收到的語音指令做出對應(yīng)的響應(yīng),同時也可以發(fā)送消息給數(shù)據(jù)采集端。因此,本系統(tǒng)可以非常方便地在數(shù)據(jù)采集端與手機APP監(jiān)控端進(jìn)行互動,大大增強了傳統(tǒng)監(jiān)控系統(tǒng)的功能,同時可以根據(jù)需要隨時打開和關(guān)閉視頻監(jiān)控,節(jié)約服務(wù)器資源和網(wǎng)絡(luò)帶寬,為監(jiān)控系統(tǒng)提供了一個非常好的解決方案,其主要具有以下幾個特點:

        1) 數(shù)據(jù)采集端可以直接安裝在Android移動終端上,不需要專用設(shè)備,可以很好地利用家中的平板電腦、手機等設(shè)備,做到靈活使用,一機多用。

        2) 支持語音識別功能,能夠在數(shù)據(jù)采集端與用戶APP端進(jìn)行消息互動,可根據(jù)需要開關(guān)監(jiān)控設(shè)備。

        3) 采用RTMP協(xié)議進(jìn)行音視頻傳輸,Red5作為流媒體服務(wù)器,支持高清視頻,能夠動態(tài)設(shè)置是否在服務(wù)器上保存音視頻數(shù)據(jù)。

        1 總體方案設(shè)計

        監(jiān)控系統(tǒng)主要是由數(shù)據(jù)采集端、云端服務(wù)器和手機APP組成。數(shù)據(jù)采集端主要負(fù)責(zé)音視頻數(shù)據(jù)的采集和語音指令的識別處理;云端服務(wù)器則負(fù)責(zé)音視頻流媒體的傳輸、各種控制指令的解析和轉(zhuǎn)發(fā);手機APP負(fù)責(zé)UI展示、消息接收、音視頻的解碼播放等功能[2-3],其總體框架如圖1所示。

        圖1 智能監(jiān)控系統(tǒng)總體框架圖

        在數(shù)據(jù)采集端用戶通過語音與設(shè)備進(jìn)行交互,設(shè)備檢測到人的聲音后會進(jìn)行識別處理,然后執(zhí)行相應(yīng)的指令,采集端可以是手機、平板電腦等Android設(shè)備,通過連接路由器的Wi-Fi熱點或4G網(wǎng)絡(luò)等接入Internet,然后與服務(wù)器進(jìn)行通信。手機APP通過網(wǎng)絡(luò)獲取服務(wù)器中的音視頻和各種指令數(shù)據(jù),同時也可以發(fā)送指令到服務(wù)器上,進(jìn)而轉(zhuǎn)發(fā)到對應(yīng)的采集端。

        2 系統(tǒng)軟件設(shè)計

        監(jiān)控系統(tǒng)的數(shù)據(jù)采集端和手機APP均采用Android系統(tǒng)開發(fā),云端服務(wù)器采用Red5作為流媒體服務(wù)器,業(yè)務(wù)邏輯服務(wù)器使用Apache MINA網(wǎng)絡(luò)應(yīng)用框架。

        2.1 數(shù)據(jù)采集端

        數(shù)據(jù)采集端是監(jiān)控系統(tǒng)的核心模塊,主要包括指令識別以及音視頻的采集和推送功能。指令識別包括文本指令和語音指令。文本指令主要是指用戶通過手機APP發(fā)送過來的操作指令。語音指令一般為采集端通過麥克風(fēng)獲取到的語音,然后轉(zhuǎn)換成對應(yīng)的文本指令,其功能主要分為:針對采集端的內(nèi)部指令和針對用戶APP的用戶指令。如果是內(nèi)部指令如打開、關(guān)閉攝像頭等,則采集終端會執(zhí)行相應(yīng)的動作;如果是外部指令則發(fā)送給服務(wù)器,進(jìn)而轉(zhuǎn)發(fā)到APP端由用戶進(jìn)行處理。本系統(tǒng)語音指令采用百度語音識別技術(shù),其具有識別率高、基礎(chǔ)服務(wù)免費、接入流程簡單等優(yōu)勢。采集端指令識別的工作流程如圖2所示。

        圖2 指令識別處理流程

        采集終端上電啟動后,會檢查是否有接收到用戶的文本指令,如果有則首先執(zhí)行文本指令,如果沒有則初始化語音識別服務(wù),等待喚醒。當(dāng)檢測到特定的喚醒詞后,開啟指令識別功能,然后判斷指令是內(nèi)部指令還是針對用戶的外部指令,如果是內(nèi)部指令則直接執(zhí)行,否則就發(fā)送到服務(wù)器,進(jìn)而轉(zhuǎn)發(fā)給相應(yīng)的用戶APP端。

        音視頻的采集主要是獲取麥克風(fēng)和攝像頭的音視頻數(shù)據(jù),使用H.264進(jìn)行編碼,然后對其進(jìn)行RTMP協(xié)議封裝,最終發(fā)送到Red5流媒體服務(wù)器。在Android系統(tǒng)上Mediacodec類封裝了H.264的各種硬編解碼功能,它是Android在4.1中加入的API,是一種低級別的API,可以非常方便地訪問設(shè)備的媒體編解碼器,因此系統(tǒng)采用Mediacodec將音視頻編碼為H.264格式。音視頻傳輸采用RTMP(Real Time Messaging Protocol) 即實時消息傳輸協(xié)議,它是Adobe公司開發(fā)的為Flash播放器和服務(wù)器之間進(jìn)行音視頻傳輸?shù)囊环N開發(fā)協(xié)議,其運行在TCP協(xié)議之上,能夠支持點播、直播功能,并且具有低延遲的特點,其在視頻監(jiān)控領(lǐng)域被廣泛使用。

        2.2 云端服務(wù)器

        云端服務(wù)器包含業(yè)務(wù)邏輯服務(wù)器和流媒體服務(wù)器。業(yè)務(wù)邏輯服務(wù)器主要負(fù)責(zé)處理用戶的注冊登錄、設(shè)備的上線、指令消息的轉(zhuǎn)發(fā)、消息推送等功能。流媒體服務(wù)器主要是進(jìn)行音視頻的保存和轉(zhuǎn)發(fā)。

        業(yè)務(wù)邏輯服務(wù)器采用Apache MINA框架[4],它是一種幫助用戶開發(fā)高性能和高穩(wěn)定性的網(wǎng)絡(luò)應(yīng)用框架,支持TCP和UDP傳輸,具有異步的、非阻塞的、事件驅(qū)動的API,同時還支持Java NIO特性,能夠非常方便地擴展各種功能的數(shù)據(jù)過濾特性,在整個網(wǎng)絡(luò)通信中能夠與應(yīng)用程序互相隔離開來,客戶端和服務(wù)器只需要處理相應(yīng)的業(yè)務(wù)邏輯即可。

        流媒體服務(wù)器使用Red5[5-6],其為Java 語言開發(fā)、開放源代碼的Flash流媒體服務(wù)器,與Macromedia公司的Flash媒體服務(wù)器兼容,支持Linux、MacOS、Windows平臺。它的設(shè)計比較靈活,采用了插件的方式,可以非常方便的集成,能夠?qū)LV、MP3文件進(jìn)行流化,目前已經(jīng)有成千上萬的公司開始使用RED5,包括亞馬遜和Facebook等。在本系統(tǒng)中數(shù)據(jù)采集端和用戶APP監(jiān)控端與云端服務(wù)器的交互流程如圖3所示。

        圖3 采集端、APP和服務(wù)端通信框架圖

        數(shù)據(jù)采集端設(shè)備啟動后會通過業(yè)務(wù)邏輯服務(wù)器進(jìn)行設(shè)備的上線注冊,獲取流媒體的RTMP地址和消息的發(fā)送與接收,然后打開攝像頭推送視頻流到流媒體服務(wù)器。手機APP用戶登錄后,可以綁定采集端設(shè)備并獲取設(shè)備信息,如設(shè)備ID、RTMP地址等,從而可以向流媒體服務(wù)器獲取視頻流數(shù)據(jù),同理也可以與業(yè)務(wù)服務(wù)器進(jìn)行消息的發(fā)送與接收。

        2.3 用戶APP端

        用戶APP監(jiān)控端的主要功能為實現(xiàn)用戶注冊登錄、獲取設(shè)備信息、查看數(shù)據(jù)采集端設(shè)備發(fā)送過來的監(jiān)控視頻等功能[7]。其操作流程如圖4所示。

        圖4 用戶APP處理流程

        用戶注冊登錄后會從服務(wù)器同步綁定的各種設(shè)備并展示在主界面上,如果沒有獲取到設(shè)備,則進(jìn)入綁定設(shè)備列表進(jìn)行綁定,綁定成功后會顯示設(shè)備圖標(biāo)及名稱,點擊設(shè)備圖標(biāo)會啟動一個新的Activity進(jìn)入到設(shè)備的控制面板,從而可以執(zhí)行針對設(shè)備的各種控制操作。圖5為注冊登錄及設(shè)備控制面板界面。

        圖5 用戶APP登錄及設(shè)備控制面板

        在設(shè)備的控制面板可以查看從數(shù)據(jù)采集端接收到的各種指令消息,點擊“查看監(jiān)控畫面”即可打開流媒體播放器,播放采集端傳輸過來的音視頻數(shù)據(jù)。

        3 技術(shù)難點及解決方案

        系統(tǒng)中語音的正確識別、解析、轉(zhuǎn)發(fā)和執(zhí)行是體現(xiàn)系統(tǒng)靈活性的關(guān)鍵。數(shù)據(jù)采集端將獲取的音視頻數(shù)據(jù)進(jìn)行編碼封裝并發(fā)送到流媒體服務(wù)器,以及如何在手機APP上進(jìn)行播放給系統(tǒng)的實現(xiàn)帶來了挑戰(zhàn)。

        3.1 語音識別功能

        語音識別功能主要是通過對語音信號進(jìn)行采集、特征提取、模式匹配等技術(shù)將其轉(zhuǎn)換為相應(yīng)的文本消息,然后采用自然語言處理技術(shù)對文本消息進(jìn)行語義解析[8-9],最終轉(zhuǎn)換成能夠被機器識別和理解的文本指令。系統(tǒng)中采用百度語音SDK進(jìn)行開發(fā),它集成了語音采集、語音預(yù)處理等功能,并且支持離在線融合技術(shù),能夠根據(jù)網(wǎng)絡(luò)自動判斷使用本地引擎還是云端引擎。其采用的自然語言處理技術(shù)支持三十多個領(lǐng)域的語義理解,可以滿足大部分的語音交互場景,目前的識別準(zhǔn)確率可以達(dá)到97%以上。數(shù)據(jù)采集端通過語音SDK獲取文本指令,然后根據(jù)其內(nèi)容進(jìn)行內(nèi)部處理或者通過網(wǎng)絡(luò)發(fā)送到服務(wù)器進(jìn)而推送到用戶APP端,同時用戶APP端也可以發(fā)送控制指令到服務(wù)器,然后推送到對應(yīng)的采集端設(shè)備,達(dá)到了雙向通信功能。其內(nèi)部實現(xiàn)流程如圖6所示。

        圖6 APP與數(shù)據(jù)采集端通信

        服務(wù)器收到用戶APP端和數(shù)據(jù)采集端的指令后,都需要對指令進(jìn)行解析、重組,并將信息同步到MySQL數(shù)據(jù)庫中進(jìn)行保存記錄,然后再發(fā)送給對應(yīng)的接收方。

        3.2 音視頻采集及播放

        系統(tǒng)的音視頻編碼器分別采用AAC和H.264格式進(jìn)行編碼。AAC是針對音頻數(shù)據(jù)而設(shè)計的一種壓縮格式,其具有非常高效的編碼算法,支持多聲道,具有很高的數(shù)據(jù)壓縮比,在網(wǎng)絡(luò)傳輸中應(yīng)用非常普遍。H.264是MPEG4之后開發(fā)的新一代數(shù)字視頻壓縮算法,具有碼率低,支持高質(zhì)量的圖像數(shù)據(jù),并且具有非常好的網(wǎng)絡(luò)適應(yīng)能力和糾錯恢復(fù)功能,同時在大多數(shù)Android系統(tǒng)上能夠通過MediaCodec進(jìn)行硬編碼。

        在Android系統(tǒng)上音頻數(shù)據(jù)通過調(diào)用AudioRecord進(jìn)行采集,采樣率使用44.1 kHz,音頻格式使用ENCODING_PCM_16BIT,音頻通道使用CHANNEL_CONFIGURATION_STEREO。在錄音之前首先調(diào)用new AudioRecord初始化AudioRecord。然后新建一個AudioRecordThread線程,在此線程中開啟錄音操作,然后把錄取的音頻數(shù)據(jù)發(fā)送到回調(diào)函數(shù)onRecvAudioData中進(jìn)行編碼處理,核心代碼如下:

        //初始化AudioRecord

        mAudioRecord=new

        AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,audioChannel,audioFormat, buffsize);

        //開啟錄音線程進(jìn)行錄音

        AudioRecordThread=new Thread(new Runnable() {

        public void run() {

        //開始錄音

        mAudioRecord.startRecording();

        audioData, 0, dataSize);

        //獲取audioData音頻數(shù)據(jù)

        ……

        //編碼音頻數(shù)據(jù)

        onRecvAudioData(audioData)

        }

        });

        視頻數(shù)據(jù)的采集通過調(diào)用Camera接口的回調(diào)函數(shù)onPreviewFrame獲取,其部分實現(xiàn)代碼如下:

        Public Camera.PreviewCallback

        getPreviewCallback() {

        return new Camera.PreviewCallback() {

        public void onPreviewFrame(final byte[] data, final Camera camera) {

        //data為攝像頭圖像數(shù)據(jù)

        }

        };

        }

        RTMP協(xié)議主要用來在FLV(Flash Video)和服務(wù)器之間進(jìn)行音視頻通信[10],因此編碼后的音視頻數(shù)據(jù)需要封裝成FLV可以識別的數(shù)據(jù)格式。FLV格式分為Header和Body二部分,而Body則由一個個Tag組成,所以在發(fā)送數(shù)據(jù)時需要先發(fā)送Header。以下為RTMP初始化的部分代碼。

        rtmp=RTMP_Alloc();

        //分配RTMP實例

        RTMP_Init(rtmp);

        //進(jìn)行RTMP初始化

        //設(shè)置RTMP連接超時時間

        rtmp->Link.timeout=timeOut;

        //設(shè)置RTMP的URL

        RTMP_SetupURL(rtmp,(char*)url.c_str());

        //使能寫功能

        RTMP_EnableWrite(rtmp);

        //開始連接RTMP服務(wù)器

        if (!RTMP_Connect(rtmp, NULL)) {

        return -1;

        }

        //連接RTMP流

        if (!RTMP_ConnectStream(rtmp, 0)) {

        LOGI(″RTMP_ConnectStream error″);

        return -1;

        }

        由于RTMP的流媒體服務(wù)器不對音視頻數(shù)據(jù)進(jìn)行解碼和播放,在發(fā)送數(shù)據(jù)之前,需要將音視頻的編碼信息發(fā)送到流媒體服務(wù)器,因此首先需要獲取音視頻的編碼參數(shù)。而編碼參數(shù)SPS(序列參數(shù)集)、PPS(圖像參數(shù)集)正好包含在MediaCodec編碼后的前二幀視頻數(shù)據(jù)中,同時也是FLV視頻中Body數(shù)據(jù)的首個Tag,因此調(diào)用pushSpsPpsData函數(shù)先提取SPS和PPS進(jìn)行發(fā)送。同理對于AAC音頻數(shù)據(jù)通過調(diào)用pushAudioInfo函數(shù)發(fā)送其編碼信息到流媒體服務(wù)器。最終都是調(diào)用RTMP_SendPacket(RTMP*r,RTMPPacket*packet,int queue)函數(shù)進(jìn)行發(fā)送,其內(nèi)部基于TCP協(xié)議進(jìn)行實現(xiàn)。

        在本監(jiān)控系統(tǒng)中,用戶可以根據(jù)需要選擇是否在流媒體服務(wù)器上保存數(shù)據(jù),因此在設(shè)備采集端RTMP初始化時可以選擇live、record、append三種模式,其中l(wèi)ive模式為不保存數(shù)據(jù),record模式為保存數(shù)據(jù),append為追加模式保存數(shù)據(jù)。如設(shè)置live模式則設(shè)置對應(yīng)的標(biāo)志位rtmp->Link.lFlags |=0x40; record模式為0x80,append為0x100。

        在用戶APP端視頻的播放采用Google開源的ExoPlayer播放器,其能夠支持HTTP動態(tài)自適應(yīng)流,能夠非常方便地自定義設(shè)計和擴展。整個音視頻的采集播放流程如圖7所示。

        圖7 音視頻采集播放流程

        4 系統(tǒng)測試及結(jié)果

        系統(tǒng)的測試中,云端服務(wù)器采用阿里云的Linux平臺服務(wù)器,配置為CPU 1核,內(nèi)存1 GB,網(wǎng)絡(luò)為1 Mbps,數(shù)據(jù)采集端和用戶APP端分別在Wi-Fi和4G網(wǎng)絡(luò)的情況下,發(fā)送音視頻可以非常流暢的顯示,其數(shù)據(jù)采集端和用戶APP端的監(jiān)控畫面顯示如圖8所示,左邊手機為采集端,通過攝像頭獲取音視頻數(shù)據(jù),右邊手機為用戶APP端,正常獲取到了采集端的音視頻。

        圖8 采集端(左)和APP端(右)

        5 結(jié) 語

        隨著移動互聯(lián)網(wǎng)、人工智能技術(shù)的發(fā)展,語音識別、圖像分析技術(shù)變得越來越成熟,這些技術(shù)引入到視頻監(jiān)控領(lǐng)域會大大增強監(jiān)控系統(tǒng)的功能。通過增加語音識別功能,改變了傳統(tǒng)監(jiān)控系統(tǒng)只能單方面通信的功能,而引入云端服務(wù)器、用戶監(jiān)控端可以讓用戶隨時隨地查看監(jiān)控系統(tǒng),增加了監(jiān)控系統(tǒng)的可用性,提供了一個非常有效的解決方案。

        猜你喜歡
        音視頻指令語音
        聽我指令:大催眠術(shù)
        魔力語音
        3KB深圳市一禾音視頻科技有限公司
        基于MATLAB的語音信號處理
        電子制作(2019年14期)2019-08-20 05:43:38
        基于MQ3與MP3的價廉物美的酒駕語音提醒器
        電子制作(2019年9期)2019-05-30 09:42:10
        ARINC661顯控指令快速驗證方法
        對方正在輸入……
        小說界(2018年5期)2018-11-26 12:43:42
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        WIFI音視頻信號傳輸?shù)年P(guān)鍵問題探究
        電子制作(2018年12期)2018-08-01 00:48:06
        高速公路整合移動音視頻系統(tǒng)應(yīng)用
        五月天激情婷婷婷久久| 偷拍美女上厕所一区二区三区 | 国产不卡一区二区三区视频| 国产白浆精品一区二区三区| 亚洲国产综合精品中久| 男人扒开添女人下部免费视频| 久久棈精品久久久久久噜噜| 久久久亚洲精品蜜桃臀| av中文码一区二区三区| 亚洲最新精品一区二区| 亚洲一区二区三区av无码| 日本精品一区二区三区在线视频| 免费人人av看| 亚洲av高清一区二区在线观看| 久久国产免费观看精品3| 亚洲av乱码中文一区二区三区| 青青草免费激情自拍视频| 日本成年一区久久综合| 女人和拘做受全程看视频| 福利一区视频| 精品一区二区三区女同免费 | 一区二区三区国产免费视频 | 久久精品成人一区二区三区 | 在线亚洲高清揄拍自拍一品区| 人妻丰满熟妇av无码处处不卡| 九九精品国产99精品| 国产激情免费观看视频| 一边摸一边做爽的视频17国产 | 无码日韩精品一区二区免费暖暖| 三年片免费观看大全国语| 亚洲va在线va天堂va四虎| 亚洲一区二区蜜桃视频| av网站在线观看入口| 午夜射精日本三级| 欧美人与动人物牲交免费观看| 欧美性xxx久久| av免费在线国语对白| 欧美亚洲精品suv| 国产一区二区三区在线观看免费| 久久久久久亚洲AV成人无码国产| 久久人妻精品中文字幕一区二区 |