本申請(qǐng)涉及音頻處理技術(shù)領(lǐng)域,尤其涉及音頻處理系統(tǒng)的異常檢測(cè)方法、日志記錄方法及裝置。
背景技術(shù):
在直播場(chǎng)景、音視頻聊天場(chǎng)景,都會(huì)涉及到音頻處理系統(tǒng),音頻處理系統(tǒng)通常可以包括采集、混音、編碼、傳輸、解碼、播放等音頻處理模塊,音頻從采集模塊開始,經(jīng)過(guò)各個(gè)模塊處理,最終由播放模塊播放。由于音頻所經(jīng)過(guò)的模塊比較多,最終在播放時(shí),若用戶聽(tīng)不到聲音或聲音異常時(shí),很難檢測(cè)是音頻處理系統(tǒng)中哪一級(jí)模塊在處理過(guò)程中出現(xiàn)了問(wèn)題,排查問(wèn)題困難,效率低。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,為解決相關(guān)技術(shù)中的技術(shù)問(wèn)題,本申請(qǐng)?zhí)峁┝艘纛l處理系統(tǒng)的異常檢測(cè)方法、日志記錄方法及裝置。
根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種音頻處理系統(tǒng)的異常檢測(cè)方法,所述方法包括:
獲取所述音頻處理模塊的日志;所述日志中記錄有輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和輸出音頻數(shù)據(jù)的輸出音頻參數(shù),所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率從所述音頻處理模塊的輸入端和輸出端所采集得到;
基于所述輸入音頻參數(shù)和輸出音頻參數(shù),判斷所述音頻處理模塊是否異常。
根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供一種音頻處理系統(tǒng)日志記錄方法,所述方法包括:
根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率采集所述音頻處理模塊的輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù);
記錄所述輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和所述輸出音頻數(shù)據(jù)的輸出音頻參數(shù),作為所述音頻處理模塊的日志。
根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供一種音頻處理系統(tǒng)的異常檢測(cè)裝置,所述裝置包括:
獲取模塊,被配置為獲取所述音頻處理模塊的日志;所述日志中記錄有輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和輸出音頻數(shù)據(jù)的輸出音頻參數(shù),所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率從所述音頻處理模塊的輸入端和輸出端所采集得到;
判斷模塊,被配置為基于所述輸入音頻參數(shù)和輸出音頻參數(shù),判斷所述音頻處理模塊是否異常。
根據(jù)本申請(qǐng)的第四方面,提供一種音頻處理系統(tǒng)的日志記錄裝置,所述裝置包括:
采集模塊,被配置為根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率采集所述音頻處理模塊的輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù);
記錄模塊,被配置為記錄所述輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和所述輸出音頻數(shù)據(jù)的輸出音頻參數(shù),作為所述音頻處理模塊的日志。
本申請(qǐng)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
本申請(qǐng)中,根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率采集音頻處理模塊的輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù),將輸入音頻數(shù)據(jù)的音頻參數(shù)和輸出音頻數(shù)據(jù)的音頻參數(shù)作為音頻處理模塊的日志,并根據(jù)日志記錄內(nèi)容檢測(cè)音頻處理系統(tǒng)是否異常。通過(guò)預(yù)設(shè)時(shí)間進(jìn)行音頻數(shù)據(jù)采樣,可使得日志中無(wú)需記錄太冗余的信息,當(dāng)音頻處理系統(tǒng)發(fā)生異常時(shí),就可以通過(guò)日志中所記錄的各音頻處理模塊對(duì)應(yīng)的音頻參數(shù)速檢測(cè)音頻處理模塊是否異常,解決了音頻處理系統(tǒng)發(fā)生異常時(shí)定位難、排查效率低的問(wèn)題。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
附圖說(shuō)明
圖1A為本申請(qǐng)所適用的一個(gè)直播場(chǎng)景的網(wǎng)絡(luò)圖。
圖1B為本申請(qǐng)所適用的一個(gè)音頻處理系統(tǒng)的網(wǎng)絡(luò)圖。
圖2為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的日志記錄方法的流程圖。
圖3為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種對(duì)音頻數(shù)據(jù)進(jìn)行采樣的示意圖。
圖4為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的異常檢測(cè)方法的流程圖。
圖5為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的日志記錄裝置的框圖。
圖6為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的異常檢測(cè)裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
在本申請(qǐng)使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
在常見(jiàn)的直播場(chǎng)景或音視頻聊天等場(chǎng)景中,都會(huì)涉及到音頻處理系統(tǒng),本實(shí)施例以直播場(chǎng)景為例進(jìn)行說(shuō)明。如圖1A所示,圖1A是本申請(qǐng)所適用的一個(gè)直播場(chǎng)景的網(wǎng)絡(luò)圖,該直播場(chǎng)景可以包括有:主播客戶端10、可與直播客戶端10進(jìn)行通信的直播服務(wù)器20及可與直播服務(wù)器20進(jìn)行通信的觀眾客戶端30a、30b。其中,上述主播客戶端可以是主播使用的設(shè)備(如:電腦、手機(jī)等),上述觀眾客戶端可以是觀眾使用的設(shè)備(如:電腦、手機(jī)等)。其中,主播客戶端可以包括一種或多種信號(hào)采集設(shè)備(如:攝像頭、麥克風(fēng)等)。在直播過(guò)程中,主播客戶端10通過(guò)相應(yīng)的信號(hào)采集設(shè)備采集到音/視頻信號(hào),并作為直播源數(shù)據(jù)上傳到直播服務(wù)器20,并由直播服務(wù)器20將上傳的直播源數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,并編碼為流媒體數(shù)據(jù)分發(fā)到一個(gè)或多個(gè)觀眾客戶端上進(jìn)行播放。
如圖1B所示,圖1B是本申請(qǐng)所適用的一個(gè)音頻處理系統(tǒng)的網(wǎng)絡(luò)圖。音頻數(shù)據(jù)從主播端開始,一般要經(jīng)過(guò)采集、混音、編碼、傳輸、解碼和播放等六個(gè)音頻處理模塊的處理,最終在觀眾端播放。其中,采集模塊、混音模塊、編碼模塊配置在主播客戶端,傳輸模塊配置在服務(wù)端,解碼模塊、播放模塊配置在觀眾客戶端。可以理解,本實(shí)施例直播場(chǎng)景中所涉及的六個(gè)音頻處理模塊只為示例說(shuō)明,在實(shí)際應(yīng)用中,還可能涉及多種其他音頻處理模塊。由于音頻處理系統(tǒng)中所涉及的音頻處理模塊眾多,最終在播放時(shí),若用戶聽(tīng)不到聲音或者聲音出現(xiàn)異常時(shí),難以排查,很難定位系統(tǒng)中哪個(gè)模塊發(fā)生異常。
為此,本申請(qǐng)?zhí)岢鲆环N音頻處理系統(tǒng)的日志記錄方法和異常檢測(cè)方法。可以根據(jù)預(yù)設(shè)時(shí)間和采樣率采集音頻處理模塊的入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù),并將輸入音頻數(shù)據(jù)的輸入?yún)?shù)和輸出音頻數(shù)據(jù)的輸出參數(shù)作為音頻處理模塊的日志;通過(guò)獲取日志中的輸入/輸出音頻參數(shù),可以分析對(duì)應(yīng)的音頻處理模塊是否異常,快速檢測(cè)音頻處理系統(tǒng)的異常。接下來(lái)對(duì)本申請(qǐng)進(jìn)行詳細(xì)說(shuō)明。
如圖2所示,圖2是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的日志記錄方法的流程圖,該方法可應(yīng)用于配置有音頻處理模塊的服務(wù)端設(shè)備或客戶端設(shè)備中,用于對(duì)音頻處理系統(tǒng)中的任一音頻處理模塊進(jìn)行日志記錄,所述方法包括以下步驟S201至S202:
在步驟S201中,根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率采集所述音頻處理模塊的輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)。
在步驟S202中,記錄所述輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和所述輸出音頻數(shù)據(jù)的輸出音頻參數(shù),作為所述音頻處理模塊的日志。
其中,采樣率是指音頻采集設(shè)備在一秒鐘內(nèi)對(duì)聲音信號(hào)的采樣次數(shù),采樣率越高,聲音的還原越真實(shí)自然。采樣率可以分為22.05kHz、44.1kHz、48kHz等多種等級(jí),22.05kHz只能達(dá)到FM廣播的聲音品質(zhì),44.1kHz則是理論上的CD音質(zhì)界限,48kHz則更加精確一些。作為一個(gè)例子,預(yù)設(shè)采樣率可以是44.1kHz。
在實(shí)際應(yīng)用中,預(yù)設(shè)時(shí)間可以靈活配置,例如可以根據(jù)采樣率進(jìn)行設(shè)定。如果采樣率較高(比如采樣率為192kHz),由于所采集的音頻數(shù)據(jù)量大,則可以設(shè)置較大的時(shí)間間隔,例如可以是每隔10秒采集一次音頻數(shù)據(jù);如果采樣率較低(比如采樣率為44.1kHz),由于所采集的音頻數(shù)據(jù)量小,則可以設(shè)置較小的時(shí)間間隔,例如可以是每隔2秒采集一次音頻數(shù)據(jù)。在本實(shí)施例中,10秒、2秒都是經(jīng)驗(yàn)值,實(shí)際應(yīng)用中也可以是其他數(shù)值,比如5秒、8秒,1秒、3秒等,可以理解,若時(shí)間間隔短則所采集到的數(shù)據(jù)量大,日志中所記錄的信息也較多,會(huì)增加實(shí)時(shí)記錄和排查問(wèn)題的困難;若時(shí)間間隔較大,則所采集到的數(shù)據(jù)量小,日志中所記錄的信息也較少,會(huì)造成異常檢測(cè)不精確的問(wèn)題,因此在實(shí)際應(yīng)用中可以根據(jù)需求靈活配置該預(yù)設(shè)時(shí)間。作為一個(gè)例子,對(duì)應(yīng)于采樣率44.1kHz,預(yù)設(shè)時(shí)間間隔可以為5秒。
音頻數(shù)據(jù)的音頻參數(shù)可以包括采樣率、采樣精度、比特率、通道數(shù)、數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù)等。本實(shí)施例中,獲取音頻參數(shù)的目的是為了后續(xù)進(jìn)行異常分析,因此實(shí)際應(yīng)用中,可以根據(jù)后續(xù)的異常分析需求,靈活配置所需的音頻參數(shù)。在本申請(qǐng)實(shí)施例中,所述音頻參數(shù)可以包括以下一種或多種:
數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù),所述N為預(yù)設(shè)正整數(shù)。
數(shù)據(jù)長(zhǎng)度指輸入/輸出音頻數(shù)據(jù)的總字節(jié)數(shù)。通常一個(gè)音頻處理模塊輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度在正常傳輸過(guò)程中不會(huì)改變,當(dāng)音頻處理模塊出現(xiàn)異常時(shí)則有可能造成數(shù)據(jù)丟失,導(dǎo)致音頻處理模塊輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不一樣。因此,可以根據(jù)輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度判斷對(duì)應(yīng)的音頻處理模塊是否異常,如果輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸入數(shù)據(jù)的音頻長(zhǎng)度不一樣,則確定對(duì)應(yīng)的音頻處理模塊異常。
音量值可以表示出某個(gè)音頻數(shù)據(jù)是否無(wú)聲,如果音量值小于預(yù)設(shè)值(比如-50分貝或-60分貝)就可以認(rèn)為所采集的音頻數(shù)據(jù)為一靜音包。在直播或音視頻聊天等場(chǎng)景,正常情況下音頻數(shù)據(jù)應(yīng)該都是有聲音的,若音頻數(shù)據(jù)無(wú)聲,則可認(rèn)為該音頻數(shù)據(jù)異常。
前N個(gè)字節(jié)的數(shù)據(jù)可以用來(lái)判斷輸入/輸出音頻數(shù)據(jù)是否異常。N的具體數(shù)值可以靈活配置,一般取前8個(gè)字節(jié)的數(shù)據(jù)即可,也可以取前16或32個(gè)字節(jié)的數(shù)據(jù),通常情況下,取前8個(gè)字節(jié)的數(shù)據(jù)可以獲得足夠的音頻數(shù)據(jù)信息,以分析出輸入/輸出音頻數(shù)據(jù)是否異常,取更多的數(shù)據(jù)也可以分析出數(shù)據(jù)是否異常,但可以理解的是,所取數(shù)據(jù)越多,分析模塊異常的難度越大。
如圖3所示,圖3為本申請(qǐng)根據(jù)一實(shí)施例示出的一種對(duì)音頻數(shù)據(jù)進(jìn)行采樣的示意圖。在A時(shí)刻,預(yù)設(shè)時(shí)間到達(dá),音頻處理模塊開始采集音頻數(shù)據(jù)(假設(shè)采樣率為44.1kHz),時(shí)間段AB為1s,在1s內(nèi)音頻處理模塊采集數(shù)據(jù)44100次數(shù)據(jù),對(duì)應(yīng)44100個(gè)采樣點(diǎn)(即圖3曲線上的圓點(diǎn),其中,為了示例方便,圖3中只示出了部分采樣點(diǎn)),本實(shí)施例中,可以只取前2個(gè)采樣點(diǎn)所對(duì)應(yīng)的數(shù)據(jù),即前8個(gè)字節(jié)的數(shù)據(jù)進(jìn)行分析。
通過(guò)上述方法可以記錄音頻處理系統(tǒng)中各音頻處理模塊的日志,日志中記錄有音頻處理模塊輸入音頻數(shù)據(jù)的輸入音頻參數(shù)以及輸出音頻數(shù)據(jù)的輸出音頻參數(shù)。當(dāng)系統(tǒng)出現(xiàn)異常時(shí),就可以獲取日志中的輸入音頻參數(shù)和輸出音頻參數(shù),根據(jù)日志記錄內(nèi)容檢測(cè)對(duì)應(yīng)音頻處理模塊是否異常。下面對(duì)音頻處理系統(tǒng)的異常檢測(cè)方法進(jìn)行詳細(xì)介紹。
如圖4所示,圖4是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的異常檢測(cè)方法的流程圖,該方法可以應(yīng)用在服務(wù)端設(shè)備或配置有至少一個(gè)音頻處理模塊的設(shè)備中,所述方法包括以下步驟S401至S402:
在步驟S401中,獲取所述音頻處理模塊的日志;所述日志中記錄有輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和輸出音頻數(shù)據(jù)的輸出音頻參數(shù),所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率從所述音頻處理模塊的輸入端和輸出端所采集得到。
在步驟S402中,基于所述輸入音頻參數(shù)和輸出音頻參數(shù),判斷所述音頻處理模塊是否異常。
音頻處理系統(tǒng)有采集、混音、編碼、傳輸、解碼和播放等六個(gè)音頻處理模塊,在實(shí)際應(yīng)用中,在不同的場(chǎng)景下,各音頻處理模塊可能配置在不同的設(shè)備,也有可能配置在同一設(shè)備中。
比如,在直播場(chǎng)景中,不同音頻處理模塊配置在不同設(shè)備,其中,采集模塊、混音模塊、編碼模塊配置在主播客戶端設(shè)備,傳輸模塊配置在服務(wù)端設(shè)備,解碼模塊、播放模塊配置在觀眾客戶端設(shè)備,因此在此類場(chǎng)景中,本實(shí)施例方法可以應(yīng)用在服務(wù)端設(shè)備,也可以應(yīng)用在配置有音頻處理模塊的設(shè)備中。例如,在直播場(chǎng)景中,可以應(yīng)用在某一端設(shè)備(比如主播端、客戶端或服務(wù)端),用來(lái)檢測(cè)本端設(shè)備中的音頻處理模塊是否異常;也可以應(yīng)用在服務(wù)端,用來(lái)檢測(cè)整個(gè)音頻處理系統(tǒng)中各個(gè)音頻處理模塊(包括主播端和觀眾端設(shè)備中的音頻處理模塊)是否異常,這種情況下,獲取每個(gè)音頻處理模塊的日志可以是音頻處理模塊主動(dòng)上傳至服務(wù)端,也可以是音頻處理模塊故障告警后提示用戶手動(dòng)上傳至服務(wù)端。
還有一類音頻處理設(shè)備,此類設(shè)備能夠錄音,并對(duì)錄音進(jìn)行去噪、音樂(lè)合成等處理,例如常見(jiàn)的安裝有唱歌軟件的設(shè)備、安裝有錄音處理軟件的設(shè)備等,此類設(shè)備中的各模塊都配置在同一設(shè)備。此種場(chǎng)景下,可以由該配置有音頻處理系統(tǒng)的設(shè)備應(yīng)用本實(shí)施例的異常檢測(cè)方法,也可以是由與該音頻處理系統(tǒng)對(duì)應(yīng)的服務(wù)端應(yīng)用本實(shí)施例的異常檢測(cè)方法。
在本申請(qǐng)中,所述輸入/輸出音頻參數(shù)包括以下一種或多種參數(shù):
數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù),所述N為預(yù)設(shè)正整數(shù)。其中,數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù)可參考圖2實(shí)施例中的描述,在此不再贅述。
在本申請(qǐng)中,所述基于所述輸入音頻參數(shù)和輸出音頻參數(shù),判斷所述音頻處理模塊是否異常,包括:
如果輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不同,則確定音頻處理模塊異常;或,
基于所述輸入音頻參數(shù)和輸出音頻參數(shù)判斷所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)是否異常,通過(guò)判斷結(jié)果確定音頻處理模塊是否異常。
在本實(shí)施例中,數(shù)據(jù)長(zhǎng)度指輸入/輸出音頻數(shù)據(jù)的總字節(jié)數(shù)。通常一個(gè)音頻處理模塊輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度在正常傳輸過(guò)程中不會(huì)改變,當(dāng)音頻處理模塊出現(xiàn)異常時(shí)則有可能造成數(shù)據(jù)丟失,導(dǎo)致音頻處理模塊輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不一樣。因此,可以根據(jù)輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度判斷對(duì)應(yīng)的音頻處理模塊是否異常,如果輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸入數(shù)據(jù)的音頻長(zhǎng)度不一樣,則確定對(duì)應(yīng)的音頻處理模塊異常。
在另一個(gè)實(shí)施例中,如果音頻數(shù)據(jù)異常,需要進(jìn)一步判斷是音頻數(shù)據(jù)本身的問(wèn)題還是音頻處理系統(tǒng)中對(duì)應(yīng)的音頻處理模塊異常。本實(shí)施例可通過(guò)如下方式判斷:
如果輸出音頻數(shù)據(jù)正常,則確定對(duì)應(yīng)音頻處理模塊正常;
如果輸出音頻數(shù)據(jù)異常,且輸入音頻數(shù)據(jù)正常,則確定對(duì)應(yīng)音頻處理模塊異常。
通過(guò)以上方式可以判斷音頻處理系統(tǒng)某一模塊是否故障,判斷時(shí)一般從最后一級(jí)模塊開始逐個(gè)往上排查,也可以幾個(gè)模塊同時(shí)排查,判斷音頻數(shù)據(jù)在哪一模塊出了什么問(wèn)題。
在本實(shí)施例中,需要判斷音頻數(shù)據(jù)是否異常。由于日志中記錄有音頻處理模塊的輸出音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)的音頻參數(shù),因此基于音頻參數(shù)可以判斷音頻數(shù)據(jù)是否異常,比如音頻數(shù)據(jù)無(wú)效、出現(xiàn)卡頓或噪聲點(diǎn)以及靜音等,本實(shí)施例中,判斷輸入音頻數(shù)據(jù)或輸出音頻數(shù)據(jù)是否異常,可以通過(guò)以下一種或多種方式:
如果所述輸入/輸出音頻數(shù)據(jù)的前N個(gè)字節(jié)的數(shù)據(jù)全部是0,則確定輸入/輸出音頻數(shù)據(jù)無(wú)效。
如果所述輸入/輸出音頻數(shù)據(jù)的前N個(gè)字節(jié)的數(shù)據(jù)都相同,則確定輸入/輸出音頻數(shù)據(jù)異常。
如果所述輸入/輸出音頻數(shù)據(jù)的音量值小于預(yù)設(shè)值,則確定所述輸入/輸出音頻數(shù)據(jù)異常。
本實(shí)施例中,正常情況下,音頻數(shù)據(jù)中,前N個(gè)字節(jié)的數(shù)據(jù)不會(huì)是全0,即使在靜默狀態(tài)下,也不會(huì)是全0。因此,如果上述字節(jié)全部是0,則可以確定為無(wú)效的音頻數(shù)據(jù),即音頻數(shù)據(jù)異常。
在本實(shí)施例中,正常情況下,音頻數(shù)據(jù)中,前N個(gè)字節(jié)的數(shù)據(jù)不會(huì)重復(fù),如果字節(jié)的值重復(fù)相同,則可以確定聲音出現(xiàn)卡頓或者噪聲點(diǎn),即音頻數(shù)據(jù)異常。
音量值能表示出該聲音數(shù)據(jù)是否無(wú)聲,如果音量值太小,比如小于-50分貝或-60分貝,則可以確定該音頻數(shù)據(jù)是一個(gè)靜音包,即音頻數(shù)據(jù)異常。
下面是日志中某音頻處理模塊輸出音頻數(shù)據(jù)的輸出音頻參數(shù)(音頻采樣率為44.1kHz,預(yù)設(shè)時(shí)間間隔為5秒,記錄音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度、對(duì)應(yīng)的音量值和前8個(gè)字節(jié)的數(shù)據(jù)),該日志涉及4條記錄:
2016-5-25 15:8:40 494ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 5A 03 76 90 0E 64 87 00...volume=-12dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 15:8:45 784ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 78 87 23 41 65A3 59 92...volume=-20dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 15:8:50 760ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 23 45 84 45 23 12 E6 62...volume=-9dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 15:8:55 241ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 16 03 18 09 98 67 E2 02...volume=-33dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
其中,2016-5-25 15:8:40表示記錄日志的時(shí)間;
Loginex.dll表示音頻數(shù)據(jù)對(duì)應(yīng)的音頻處理模塊;
3528bytes表示音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度為3528bytes;
5A 03 76 90 0E 64 87 00表示音頻數(shù)據(jù)的前8個(gè)字節(jié)的數(shù)據(jù);
volume=-12dB表示音頻數(shù)據(jù)的音量值為-12dB。
從上述日志中可以看出,前8個(gè)字節(jié)的數(shù)據(jù)不滿足音頻數(shù)據(jù)異常的條件(前8個(gè)字節(jié)的數(shù)據(jù)全部是0,或前8個(gè)字節(jié)的數(shù)據(jù)都相同或音量值小于預(yù)設(shè)值),因此此段時(shí)間內(nèi)輸出音頻數(shù)據(jù)正常,從而可以得知對(duì)應(yīng)的音頻處理模塊正常。
下面是日志中某音頻處理模塊輸出音頻數(shù)據(jù)的輸出音頻參數(shù)(音頻采樣率為44.1kHz,預(yù)設(shè)時(shí)間間隔為5秒,記錄前音頻數(shù)據(jù)的長(zhǎng)度、對(duì)應(yīng)的音量值和前8個(gè)字節(jié)):
2016-5-25 16:8:40 494ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 5A 03 76 90 0E 64 87 00...volume=-12dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 16:8:45 784ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 5A 03 76 90 0E 64 87 00...volume=-20dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 16:8:50 760ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 5A 03 76 90 0E 64 87 00...volume=-9dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
2016-5-25 16:8:55 241ms Final loginex.dll YYDirector"Feed audiosdk 3528bytes 5A 03 76 90 0E 64 87 00...volume=-33dB"ChannelAudio::sendAudioData ChannelAudio.cpp line:184
從上述日志中可以看出,前8個(gè)字節(jié)的數(shù)據(jù),因此可以判斷音頻數(shù)異常(音頻數(shù)據(jù)在這段時(shí)間內(nèi)出現(xiàn)卡頓或噪聲點(diǎn)),如果此時(shí)再獲取此音頻數(shù)據(jù)對(duì)應(yīng)的輸入音頻參數(shù),如果確定輸入音頻數(shù)據(jù)正常,則可以確定此音頻處理模塊異常。
與前述音頻處理系統(tǒng)異常檢測(cè)方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了音頻處理系統(tǒng)的日志記錄裝置和異常檢測(cè)裝置的實(shí)施例。
請(qǐng)參考圖5,圖5為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的日志記錄裝置的框圖,所述裝置500包括:采集模塊501、記錄模塊502。
其中,采集模塊501,被配置為根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率采集所述音頻處理模塊的輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)。
記錄模塊502,被配置為記錄所述輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和所述輸出音頻數(shù)據(jù)的輸出音頻參數(shù),作為所述音頻處理模塊的日志。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述音頻參數(shù)包括以下一種或多種:
數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù),所述N為預(yù)設(shè)正整數(shù)。
如圖6所示,圖6為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種音頻處理系統(tǒng)的異常檢測(cè)裝置的框圖,所述裝置包括:獲取模塊601,判斷模塊602。
其中,獲取模塊601,被配置為獲取所述音頻處理模塊的日志;所述日志中記錄有輸入音頻數(shù)據(jù)的輸入音頻參數(shù)和輸出音頻數(shù)據(jù)的輸出音頻參數(shù),所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)根據(jù)預(yù)設(shè)時(shí)間和預(yù)設(shè)采樣率從所述音頻處理模塊的輸入端和輸出端所采集得到。
判斷模塊602,被配置為基于所述輸入音頻參數(shù)和輸出音頻參數(shù),判斷所述音頻處理模塊是否異常。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述音頻參數(shù)包括以下一種或多種:
數(shù)據(jù)長(zhǎng)度、音量值以及前N個(gè)字節(jié)的數(shù)據(jù),所述N為預(yù)設(shè)正整數(shù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述判斷模塊具體用于:
如果輸入音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和輸出音頻數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不同,則確定音頻處理模塊異常;或,
基于所述輸入音頻參數(shù)和輸出音頻參數(shù)判斷所述輸入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)是否異常,通過(guò)判斷結(jié)果確定音頻處理模塊是否異常。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述判斷模塊具體用于:
如果輸出音頻數(shù)據(jù)正常,則確定對(duì)應(yīng)的音頻處理模塊正常;
如果輸入音頻數(shù)據(jù)正常,且輸出音頻數(shù)據(jù)異常,則確定對(duì)應(yīng)音頻處理模塊異常。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述判斷模塊具體用于:通過(guò)如下一種或多種方式確定輸入/輸出音頻數(shù)據(jù)異常,否則確定輸入/輸出音頻數(shù)據(jù)正常:
如果所述輸入/輸出音頻數(shù)據(jù)的前N個(gè)字節(jié)的數(shù)據(jù)全部是0,則確定輸入/輸出音頻數(shù)據(jù)異常;
如果所述輸入/輸出音頻數(shù)據(jù)的前N個(gè)字節(jié)的數(shù)據(jù)都相同,則確定輸入/輸出音頻數(shù)據(jù)異常;
如果所述輸入/輸出音頻數(shù)據(jù)的音量值小于預(yù)設(shè)值,則確定所述輸入/輸出音頻數(shù)據(jù)異常。
上述裝置中各個(gè)模塊的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。