亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

藍(lán)牙通話信號恢復(fù)方法、裝置、存儲介質(zhì)和計(jì)算機(jī)設(shè)備與流程

文檔序號:12037544閱讀:573來源:國知局
藍(lán)牙通話信號恢復(fù)方法、裝置、存儲介質(zhì)和計(jì)算機(jī)設(shè)備與流程

本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種藍(lán)牙通話信號恢復(fù)方法、裝置、存儲介質(zhì)和計(jì)算機(jī)設(shè)備。



背景技術(shù):

目前,藍(lán)牙是一種支持設(shè)備短距離通信的無線通訊對話技術(shù),經(jīng)過近幾年的發(fā)展,我們對它已不再陌生,它也是目前數(shù)碼產(chǎn)品中不可或缺的模塊,藍(lán)牙技術(shù)的出現(xiàn)讓我們在連接各種設(shè)備的時候不再被繁多的數(shù)據(jù)線所束縛。

藍(lán)牙通話以其安全方便備受人們喜愛,傳統(tǒng)的藍(lán)牙通信和其他眾多無線設(shè)備一樣,使用的是2.4ghz頻道進(jìn)行傳輸,在各種無線協(xié)議混雜的情況下,非常容易出現(xiàn)信道擁塞的情況,導(dǎo)致數(shù)據(jù)包在無線傳輸過程丟失,用戶聽到的聲音信號斷斷續(xù)續(xù),卡頓的情況時有發(fā)生,嚴(yán)重影響了用戶的體驗(yàn)。如何對丟失的藍(lán)牙信號進(jìn)行恢復(fù)以提高藍(lán)牙通話質(zhì)量,是亟待解決的問題。



技術(shù)實(shí)現(xiàn)要素:

基于此,有必要針對上述問題,提供一種可提高藍(lán)牙通話質(zhì)量的藍(lán)牙通話丟失信號恢復(fù)方法、裝置、存儲介質(zhì)和計(jì)算機(jī)設(shè)備。

一種藍(lán)牙通話信號恢復(fù)方法,包括以下步驟:

在接收到藍(lán)牙數(shù)據(jù)包后,根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常;

若是,則通過解碼器對所述當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,獲取所述fifo導(dǎo)出的數(shù)據(jù)并輸出;

根據(jù)所述預(yù)設(shè)校驗(yàn)信息對上一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在上一藍(lán)牙數(shù)據(jù)包不正常時,對所述當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,并根據(jù)預(yù)解碼得到的數(shù)據(jù)對所述解碼器進(jìn)行參數(shù)校正;

若否,則根據(jù)所述fifo中的已有數(shù)據(jù)在所述fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取所述fifo導(dǎo)出的數(shù)據(jù)并輸出。

一種藍(lán)牙通話信號恢復(fù)裝置,包括:

數(shù)據(jù)包校驗(yàn)?zāi)K,用于在接收到藍(lán)牙數(shù)據(jù)包后,根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常;

數(shù)據(jù)包解碼模塊,用于在當(dāng)前藍(lán)牙數(shù)據(jù)包正常時,通過解碼器對所述當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,獲取所述fifo導(dǎo)出的數(shù)據(jù)并輸出;

解碼器參數(shù)校正模塊,用于在當(dāng)前藍(lán)牙數(shù)據(jù)包正常時,根據(jù)所述預(yù)設(shè)校驗(yàn)信息對上一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在上一藍(lán)牙數(shù)據(jù)包不正常時對所述當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,并根據(jù)預(yù)解碼得到的數(shù)據(jù)對所述解碼器進(jìn)行參數(shù)校正;

數(shù)據(jù)包修復(fù)模塊,用于在當(dāng)前藍(lán)牙數(shù)據(jù)包不正常時,根據(jù)所述fifo中的已有數(shù)據(jù)在所述fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取所述fifo導(dǎo)出的數(shù)據(jù)并輸出。

一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時實(shí)現(xiàn)上述方法的步驟。

一種計(jì)算機(jī)設(shè)備,包括存儲器、處理器以及存儲在存儲器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時實(shí)現(xiàn)上述方法的步驟。

上述藍(lán)牙通話信號恢復(fù)方法、裝置、存儲介質(zhì)和計(jì)算機(jī)設(shè)備,在接收到藍(lán)牙數(shù)據(jù)包后,根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常;若是,則通過解碼器對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,獲取fifo導(dǎo)出的數(shù)據(jù)并輸出;根據(jù)預(yù)設(shè)校驗(yàn)信息對上一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在上一藍(lán)牙數(shù)據(jù)包不正常時,對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,并根據(jù)預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正;若否,則根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。在當(dāng)前藍(lán)牙數(shù)據(jù)包不正常時候利用fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù),實(shí)現(xiàn)對丟失的藍(lán)牙信號的恢復(fù)。此外,在當(dāng)前藍(lán)牙數(shù)據(jù)包正常且上一藍(lán)牙數(shù)據(jù)包不正常時,利用當(dāng)前藍(lán)牙數(shù)據(jù)包預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正,從而校正解碼器的初始數(shù)據(jù),避免解碼器在接收到的正確數(shù)據(jù)包進(jìn)行解碼時出現(xiàn)解碼錯誤的問題。通過有效地恢復(fù)錯誤的數(shù)據(jù)包,且利用正確數(shù)據(jù)包對解碼器進(jìn)行參數(shù)校正,避免因藍(lán)牙信號的數(shù)據(jù)錯誤或解碼器解碼錯誤而影響藍(lán)牙通話效果,提高了藍(lán)牙通話質(zhì)量,改善了用戶體驗(yàn)感。

附圖說明

圖1為一實(shí)施例中藍(lán)牙通話信號恢復(fù)方法的流程圖;

圖2為另一實(shí)施例中藍(lán)牙通話信號恢復(fù)方法的流程圖;

圖3為一實(shí)施例中根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù)的原理圖;

圖4為一實(shí)施例中藍(lán)牙通話信號恢復(fù)裝置的結(jié)構(gòu)圖;

圖5為另一實(shí)施例中藍(lán)牙通話信號恢復(fù)裝置的結(jié)構(gòu)圖。

具體實(shí)施方式

在一個實(shí)施例中,一種藍(lán)牙通話信號恢復(fù)方法,藍(lán)牙通話信號具體可以是cvsd(continuouslyvariableslopedelta,連續(xù)可變斜率增量調(diào)制)編碼傳輸?shù)乃{(lán)牙信號,也可以是其他編碼格式的藍(lán)牙信號。如圖1所示,該方法包括以下步驟:

步驟s120:在接收到藍(lán)牙數(shù)據(jù)包后,根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常。

根據(jù)編碼類型不同,藍(lán)牙數(shù)據(jù)包的具體格式也對應(yīng)有所不同,藍(lán)牙數(shù)據(jù)包的內(nèi)容具體包括當(dāng)前藍(lán)牙傳輸數(shù)據(jù)和校驗(yàn)碼。每當(dāng)接收到一個藍(lán)牙數(shù)據(jù)包時,都根據(jù)預(yù)設(shè)校驗(yàn)信息對當(dāng)前接收的藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)檢測。預(yù)設(shè)校驗(yàn)信息的具體內(nèi)容并不唯一,根據(jù)預(yù)設(shè)校驗(yàn)信息內(nèi)容的不同,對應(yīng)判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常的方式也對應(yīng)不同。預(yù)設(shè)校驗(yàn)信息可以是格式校驗(yàn)信息或校驗(yàn)碼驗(yàn)證信息,若預(yù)設(shè)校驗(yàn)信息為格式校驗(yàn)信息,則檢測當(dāng)前藍(lán)牙數(shù)據(jù)包的格式與格式校驗(yàn)信息是否符合,若是,則當(dāng)前藍(lán)牙數(shù)據(jù)包正常;若預(yù)設(shè)校驗(yàn)信息為校驗(yàn)碼驗(yàn)證信息,則檢測當(dāng)前藍(lán)牙數(shù)據(jù)包中的校驗(yàn)碼與校驗(yàn)碼驗(yàn)證信息是否符合,若是,則當(dāng)前藍(lán)牙數(shù)據(jù)包正常。在當(dāng)前藍(lán)牙數(shù)據(jù)包正常時進(jìn)行步驟s130,否則進(jìn)行步驟s150。

步驟s130:通過解碼器對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

fifo(firstinputfirstoutput,先入先出隊(duì)列)是一種先進(jìn)先出的數(shù)據(jù)緩存器,先進(jìn)入的數(shù)據(jù)先使用并引退,fifo的存儲空間大小可根據(jù)需求調(diào)整,且根據(jù)存入順序?qū)?shù)據(jù)進(jìn)行保存。當(dāng)在fifo存入新數(shù)據(jù),fifo會從最早存入的數(shù)據(jù)開始導(dǎo)出與新數(shù)據(jù)等長的數(shù)據(jù)。具體地,解碼器里面遺留有歷史數(shù)據(jù)供當(dāng)前包數(shù)據(jù)解碼使用,在判斷當(dāng)前藍(lán)牙數(shù)據(jù)包正常后,將該數(shù)據(jù)包輸入解碼器進(jìn)行解碼,提取當(dāng)前藍(lán)牙傳輸數(shù)據(jù)得到數(shù)據(jù)幀,并將數(shù)據(jù)幀存入fifo中,獲取fifo導(dǎo)出的與數(shù)據(jù)幀等長的數(shù)據(jù)作為輸出,并且移動fifo中的數(shù)據(jù)。

可以理解,若連續(xù)多次都接收到正常的藍(lán)牙數(shù)據(jù)包,則每次都是將藍(lán)牙數(shù)據(jù)包輸入解碼器進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,以及獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

步驟s140:根據(jù)預(yù)設(shè)校驗(yàn)信息對上一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在上一藍(lán)牙數(shù)據(jù)包不正常時,對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,并根據(jù)預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正。

以cvsd編碼的藍(lán)牙通信信號為例,由于藍(lán)牙通話中的cvsd編碼是一種線性預(yù)測編碼,解碼的時候如果初始值錯誤,則連續(xù)比較長一段數(shù)據(jù)都會是錯誤的。而在藍(lán)牙傳輸過程中,由于干擾或者其它原因很容易導(dǎo)致接收數(shù)據(jù)包丟失或者錯誤,一旦出現(xiàn)錯誤數(shù)據(jù)包,那么接下來接收到的正確數(shù)據(jù)包在解碼的時候,由于沒有正確的初始值所以下一包數(shù)據(jù)在解碼的時候也會錯誤相當(dāng)長的一段數(shù)據(jù)。

不同編碼格式的藍(lán)牙通信信號,對應(yīng)的解碼器參數(shù)校正方式也會不同。同樣以藍(lán)牙通話常用格式cvsd為例,預(yù)解碼為了讓數(shù)據(jù)錯誤誤差盡量小,一種較好實(shí)施方案為將cvsd的初值設(shè)為零,差值通過之前的正常幀數(shù)據(jù)解碼時的差值,預(yù)測出當(dāng)前位置的差值。以此配置的初始數(shù)據(jù)解碼出的數(shù)據(jù)明顯優(yōu)于不使用這種配置初始數(shù)據(jù)解碼出來的數(shù)據(jù)。本發(fā)明提出進(jìn)一步的數(shù)據(jù)修正方法,以上面提到的配置初始化數(shù)據(jù)解碼出當(dāng)前數(shù)據(jù)包,由預(yù)測解碼的特性我們知道,錯誤誤差會慢慢收斂,所以我們可以用當(dāng)前包數(shù)據(jù)后面一點(diǎn)的數(shù)據(jù)與fifo中t周期的數(shù)據(jù)計(jì)算相關(guān)性或者通過自相關(guān)計(jì)算,找到相關(guān)點(diǎn)后再反推出當(dāng)前解碼幀初始值位置對應(yīng)周期數(shù)據(jù)中的點(diǎn)或者自相關(guān)算法得到的后面數(shù)據(jù)的點(diǎn),將這個點(diǎn)的值設(shè)置為當(dāng)前幀解碼的初始值。在當(dāng)前藍(lán)牙數(shù)據(jù)包正常且上一藍(lán)牙數(shù)據(jù)包不正常時,還對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,提取預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正,校正解碼器的初始數(shù)據(jù),避免由于初始數(shù)據(jù)的錯誤導(dǎo)致解碼器出現(xiàn)解碼錯誤,提高了藍(lán)牙通話質(zhì)量。

步驟s150:根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

若當(dāng)前藍(lán)牙數(shù)據(jù)包不正常,則根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)包修復(fù),將修復(fù)得到的數(shù)據(jù)存入fifo中,獲取fifo導(dǎo)出的與存入數(shù)據(jù)等長的數(shù)據(jù)作為輸出,并且移動fifo中的數(shù)據(jù)。具體地,在一個實(shí)施例中,步驟s150包括步驟152至步驟156。

步驟152:通過fifo中已有數(shù)據(jù)得到藍(lán)牙語音信號的基音周期。

基音周期用于記錄基音的時間長度,不同語音信號的基音周期不同。利用fifo中已經(jīng)存儲的數(shù)據(jù)提取基音周期的方式并不唯一,具體可采用自相關(guān)函數(shù)法、平均幅度差函數(shù)法和倒譜方法進(jìn)行基音周期提取,先將fifo中數(shù)據(jù)分為長度一定的語音幀,然后對每一幀語音求平均基音周期作為藍(lán)牙語音信號的基音周期。

步驟154:根據(jù)基音周期在fifo中進(jìn)行數(shù)據(jù)修復(fù)并獲取修復(fù)數(shù)據(jù)的長度。

修復(fù)數(shù)據(jù)的長度大于預(yù)設(shè)時間基準(zhǔn)的長度。預(yù)設(shè)時間基準(zhǔn)具體采用長度可調(diào)時間窗,時間窗的長度可根據(jù)藍(lán)牙數(shù)據(jù)包的長度進(jìn)行調(diào)整。在獲取藍(lán)牙語音信號的基音周期之后,利用基音周期合成語音再現(xiàn)原始語音信號,實(shí)現(xiàn)數(shù)據(jù)修復(fù)。具體地,通過基音周期修復(fù)可以理解為a[n]=a[n-t],就是位置n點(diǎn)的值可以近似的等于位置n-t點(diǎn)的值,其中t為基音周期。將修復(fù)得到的數(shù)據(jù)替代錯誤的藍(lán)牙數(shù)據(jù)包存儲在fifo中。此外,在將數(shù)據(jù)填充在fifo中時還可對數(shù)據(jù)進(jìn)行衰減處理,使得恢復(fù)數(shù)據(jù)質(zhì)量更佳。

步驟156:從fifo中獲取與修復(fù)數(shù)據(jù)的長度等長的數(shù)據(jù)輸出。

在fifo中進(jìn)行數(shù)據(jù)修復(fù)之后,從fifo中最先存儲的數(shù)據(jù)開始,獲取與修復(fù)數(shù)據(jù)的長度等長的數(shù)據(jù)作為輸出,然后移動fifo中的數(shù)據(jù)。

在一個實(shí)施例中,如圖2所示,步驟s120之前,該方法還可包括步驟s110。

步驟s110:檢測是否接收到藍(lán)牙數(shù)據(jù)包。

具體地,可通過判斷在預(yù)設(shè)時長內(nèi)是否接收到藍(lán)牙數(shù)據(jù)包,若是,則進(jìn)行步驟s120,對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn);若沒有接收到藍(lán)牙數(shù)據(jù)包的時長超過預(yù)設(shè)時長,則可判定為當(dāng)前藍(lán)牙數(shù)據(jù)包丟失,直接進(jìn)行步驟s150,在fifo中對丟失數(shù)據(jù)包進(jìn)行數(shù)據(jù)修復(fù)并輸出fifo導(dǎo)出的數(shù)據(jù)。

本實(shí)施例中,即是對于發(fā)生數(shù)據(jù)包丟失或錯誤時均進(jìn)行數(shù)據(jù)修復(fù)處理,可有效地恢復(fù)錯誤的或者丟失的數(shù)據(jù),避免因數(shù)據(jù)丟失或錯誤而影響藍(lán)牙通信,進(jìn)一步提高了藍(lán)牙通話質(zhì)量。

在一個實(shí)施例中,繼續(xù)參照圖2,步驟s150之后,該方法還可包括步驟s160。

步驟s160:根據(jù)預(yù)設(shè)校驗(yàn)信息對下一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在下一藍(lán)牙數(shù)據(jù)包不正常時,根據(jù)基音周期從完成修復(fù)的位置繼續(xù)進(jìn)行數(shù)據(jù)修復(fù),直至修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度。

預(yù)設(shè)的最大修復(fù)長度的具體取值并不唯一,可根據(jù)實(shí)際情況調(diào)整。具體地,在當(dāng)前藍(lán)牙數(shù)據(jù)包發(fā)生丟包或者錯誤,并根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù)和數(shù)據(jù)輸出之后,若接收到的下一藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)后也判斷為非正常數(shù)據(jù)包,則將下一藍(lán)牙數(shù)據(jù)包作為新的當(dāng)前數(shù)據(jù)包再次進(jìn)行步驟s150,從上一次完成數(shù)據(jù)修復(fù)的位置繼續(xù)進(jìn)行數(shù)據(jù)修復(fù),直至修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度。

可以理解,若再一次發(fā)生數(shù)據(jù)包丟失時同樣可再次進(jìn)行步驟s150,從上一次完成數(shù)據(jù)修復(fù)的位置繼續(xù)進(jìn)行數(shù)據(jù)修復(fù)。也就是說,當(dāng)連續(xù)出現(xiàn)數(shù)據(jù)包丟失或數(shù)據(jù)包錯誤時,則在fifo中持續(xù)進(jìn)行數(shù)據(jù)修復(fù)操作。當(dāng)修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度之后,此時可淡出處理或者在接近零值的位置結(jié)束修復(fù)輸出零值,淡出處理即指使信號呈現(xiàn)從有到無的漸變效果。

在一個實(shí)施例中,步驟s150之后,該方法還可包括在步驟s170。

步驟s170:根據(jù)預(yù)設(shè)校驗(yàn)信息對下一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在下一藍(lán)牙數(shù)據(jù)包正常時,根據(jù)下一藍(lán)牙數(shù)據(jù)包解碼得到的數(shù)據(jù)與預(yù)設(shè)時間基準(zhǔn)內(nèi)數(shù)據(jù)的相關(guān)性獲取關(guān)聯(lián)區(qū)域,并將下一藍(lán)牙數(shù)據(jù)包解碼得到的數(shù)據(jù)替換fifo中關(guān)聯(lián)區(qū)域?qū)?yīng)的數(shù)據(jù)。

具體地,在當(dāng)前藍(lán)牙數(shù)據(jù)包發(fā)生丟包或者錯誤,并根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù)和數(shù)據(jù)輸出之后,若接收到的下一藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)后判斷為正常數(shù)據(jù)包,則在將下一藍(lán)牙數(shù)據(jù)包通過解碼器進(jìn)行解碼后,分析解碼得到的數(shù)據(jù)與預(yù)設(shè)時間基準(zhǔn)內(nèi)數(shù)據(jù)的相關(guān)性。分析數(shù)據(jù)相關(guān)性的具體方式并不唯一,具體可通過分析預(yù)設(shè)時間基準(zhǔn)內(nèi)數(shù)據(jù)的變化趨勢,找到解碼得到的數(shù)據(jù)的關(guān)聯(lián)區(qū)域進(jìn)行數(shù)據(jù)拼接。本實(shí)施例中,通過查找關(guān)聯(lián)區(qū)域中與解碼得到的數(shù)據(jù)最相關(guān)位置,然后將解碼得到的數(shù)據(jù)拼接到fifo中最相關(guān)位置,替換fifo中最相關(guān)位置原來的數(shù)據(jù)。

為了便于更好地理解上述藍(lán)牙通話信號恢復(fù)方法,下面對根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù)進(jìn)行詳細(xì)的解釋說明。

如圖3所示,f0的位置是一幀數(shù)據(jù)的長度,起始位置為a1,結(jié)束位置為a0,fn和a為fifo中的已有數(shù)據(jù),同時a1也為數(shù)據(jù)a的結(jié)束位置,mn為時間基準(zhǔn)。該幀數(shù)據(jù)若是正常數(shù)據(jù),則填入f0數(shù)據(jù),輸出fn數(shù)據(jù),然后移動fifo的數(shù)據(jù),當(dāng)f0數(shù)據(jù)丟失或者錯誤時,則通過其前面正常數(shù)據(jù)a計(jì)算出基音周期開始填充數(shù)據(jù)。具體地,從正常數(shù)據(jù)a結(jié)束位置a1前一段距離開始,即從數(shù)據(jù)b的結(jié)束位置開始按照基音周期t進(jìn)行數(shù)據(jù)填充,依次填充t0,t1等數(shù)據(jù),填充數(shù)據(jù)要大于基準(zhǔn)時間點(diǎn)a0到達(dá)圖上n的位置。記錄當(dāng)前基音周期,同時填充的時候可以對數(shù)據(jù)作適當(dāng)?shù)乃p,使得恢復(fù)數(shù)據(jù)質(zhì)量更佳。如果下一幀數(shù)據(jù)也不正常則通過存儲的基音周期接著上一幀數(shù)據(jù)修復(fù)的位置繼續(xù)修復(fù),直到修復(fù)長度大于預(yù)設(shè)最大修復(fù)長度,則淡出處理或者在接近零值的位置結(jié)束修復(fù)輸出零值;如果下一幀數(shù)據(jù)是正常數(shù)據(jù),則通過計(jì)算下一幀數(shù)據(jù)與m到n點(diǎn)之間數(shù)據(jù)的相關(guān)性,找到最相關(guān)位置,然后把正常數(shù)據(jù)包拼接到fifo數(shù)據(jù)中。

上述藍(lán)牙通話信號恢復(fù)方法,在當(dāng)前藍(lán)牙數(shù)據(jù)包不正常時候利用fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù),實(shí)現(xiàn)對丟失的藍(lán)牙信號的恢復(fù)。此外,在當(dāng)前藍(lán)牙數(shù)據(jù)包正常且上一藍(lán)牙數(shù)據(jù)包不正常時,利用當(dāng)前藍(lán)牙數(shù)據(jù)包預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正,從而校正解碼器的初始數(shù)據(jù),避免解碼器在接收到的正確數(shù)據(jù)包進(jìn)行解碼時出現(xiàn)解碼錯誤的問題。通過有效地恢復(fù)錯誤的數(shù)據(jù)包,且利用正確數(shù)據(jù)包對解碼器進(jìn)行參數(shù)校正,避免因藍(lán)牙信號的數(shù)據(jù)錯誤或解碼器解碼錯誤而影響藍(lán)牙通話效果,提高了藍(lán)牙通話質(zhì)量,改善了用戶體驗(yàn)感。

在一個實(shí)施例中,一種藍(lán)牙通話信號恢復(fù)裝置,藍(lán)牙通話信號具體可以是cvsd編碼傳輸?shù)乃{(lán)牙信號,也可以是其他編碼格式的藍(lán)牙信號。如圖4所示,該裝置包括數(shù)據(jù)包校驗(yàn)?zāi)K120、數(shù)據(jù)包解碼模塊130、解碼器參數(shù)校正模塊140和數(shù)據(jù)包修復(fù)模塊150。

數(shù)據(jù)包校驗(yàn)?zāi)K120用于在接收到藍(lán)牙數(shù)據(jù)包后,根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常。

根據(jù)編碼類型不同,藍(lán)牙數(shù)據(jù)包的具體格式也對應(yīng)有所不同,藍(lán)牙數(shù)據(jù)包的內(nèi)容具體包括當(dāng)前藍(lán)牙傳輸數(shù)據(jù)和校驗(yàn)碼。每當(dāng)接收到一個藍(lán)牙數(shù)據(jù)包時,都根據(jù)預(yù)設(shè)校驗(yàn)信息對當(dāng)前接收的藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)檢測。預(yù)設(shè)校驗(yàn)信息的具體內(nèi)容并不唯一,根據(jù)預(yù)設(shè)校驗(yàn)信息內(nèi)容的不同,對應(yīng)判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常的方式也對應(yīng)不同。

數(shù)據(jù)包解碼模塊130用于在當(dāng)前藍(lán)牙數(shù)據(jù)包正常時,通過解碼器對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行解碼,將解碼得到的數(shù)據(jù)存入fifo中,獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

在判斷當(dāng)前藍(lán)牙數(shù)據(jù)包正常后,將該數(shù)據(jù)包輸入解碼器進(jìn)行解碼,提取當(dāng)前藍(lán)牙傳輸數(shù)據(jù)得到數(shù)據(jù)幀,并將數(shù)據(jù)幀存入fifo中,獲取fifo導(dǎo)出的與數(shù)據(jù)幀等長的數(shù)據(jù)作為輸出,并且移動fifo中的數(shù)據(jù)。

解碼器參數(shù)校正模塊140用于在當(dāng)前藍(lán)牙數(shù)據(jù)包正常時,根據(jù)預(yù)設(shè)校驗(yàn)信息對上一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在上一藍(lán)牙數(shù)據(jù)包不正常時對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,并根據(jù)預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正。

在當(dāng)前藍(lán)牙數(shù)據(jù)包正常且上一藍(lán)牙數(shù)據(jù)包不正常時,還對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行預(yù)解碼,提取預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正,校正解碼器的初始數(shù)據(jù),避免由于初始數(shù)據(jù)的錯誤導(dǎo)致解碼器出現(xiàn)解碼錯誤,提高了藍(lán)牙通話質(zhì)量。

數(shù)據(jù)包修復(fù)模塊150用于在當(dāng)前藍(lán)牙數(shù)據(jù)包不正常時,根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

若當(dāng)前藍(lán)牙數(shù)據(jù)包不正常,則根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)包修復(fù),將修復(fù)得到的數(shù)據(jù)存入fifo中,獲取fifo導(dǎo)出的與存入數(shù)據(jù)等長的數(shù)據(jù)作為輸出,并且移動fifo中的數(shù)據(jù)。具體地,在一個實(shí)施例中,數(shù)據(jù)包修復(fù)模塊150包括第一修復(fù)單元、第二修復(fù)單元和第三修復(fù)單元。

第一修復(fù)單元用于通過fifo中已有數(shù)據(jù)得到藍(lán)牙語音信號的基音周期。

基音周期用于記錄基音的時間長度,不同語音信號的基音周期不同。利用fifo中已經(jīng)存儲的數(shù)據(jù)提取基音周期的方式并不唯一,具體可采用自相關(guān)函數(shù)法、平均幅度差函數(shù)法和倒譜方法進(jìn)行基音周期提取。

第二修復(fù)單元用于根據(jù)基音周期在fifo中進(jìn)行數(shù)據(jù)修復(fù)并獲取修復(fù)數(shù)據(jù)的長度。

修復(fù)數(shù)據(jù)的長度大于預(yù)設(shè)時間基準(zhǔn)的長度。預(yù)設(shè)時間基準(zhǔn)具體采用長度可調(diào)時間窗,時間窗的長度可根據(jù)藍(lán)牙數(shù)據(jù)包的長度進(jìn)行調(diào)整。在獲取藍(lán)牙語音信號的基音周期之后,利用基音周期合成語音再現(xiàn)原始語音信號,實(shí)現(xiàn)數(shù)據(jù)修復(fù)。將修復(fù)得到的數(shù)據(jù)替代錯誤的藍(lán)牙數(shù)據(jù)包存儲在fifo中。此外,在將數(shù)據(jù)填充在fifo中時,第二修復(fù)單元還可對數(shù)據(jù)進(jìn)行衰減處理,使得恢復(fù)數(shù)據(jù)質(zhì)量更佳。

第三修復(fù)單元用于從fifo中取出與修復(fù)數(shù)據(jù)的長度等長的數(shù)據(jù)輸出。

在fifo中進(jìn)行數(shù)據(jù)修復(fù)之后,從fifo中最先存儲的數(shù)據(jù)開始,獲取與修復(fù)數(shù)據(jù)的長度等長的數(shù)據(jù)作為輸出,然后移動fifo中的數(shù)據(jù)。

在一個實(shí)施例中,如圖5所示,該裝置還包括數(shù)據(jù)包檢測模塊110。

數(shù)據(jù)包檢測模塊110用于在數(shù)據(jù)包校驗(yàn)?zāi)K120根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常之前,檢測是否接收到藍(lán)牙數(shù)據(jù)包;若是,則控制數(shù)據(jù)包校驗(yàn)?zāi)K120根據(jù)預(yù)設(shè)校驗(yàn)信息判斷當(dāng)前藍(lán)牙數(shù)據(jù)包是否正常;若否,則控制數(shù)據(jù)包修復(fù)模塊150根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出。

具體地,可通過判斷在預(yù)設(shè)時長內(nèi)是否接收到藍(lán)牙數(shù)據(jù)包,若是,則對當(dāng)前藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn);若沒有接收到藍(lán)牙數(shù)據(jù)包的時長超過預(yù)設(shè)時長,則可判定為當(dāng)前藍(lán)牙數(shù)據(jù)包丟失,直接在fifo中對丟失數(shù)據(jù)包進(jìn)行數(shù)據(jù)修復(fù)并輸出fifo導(dǎo)出的數(shù)據(jù)。

本實(shí)施例中,即是對于發(fā)生數(shù)據(jù)包丟失或錯誤時均進(jìn)行數(shù)據(jù)修復(fù)處理,可有效地恢復(fù)錯誤的或者丟失的數(shù)據(jù),避免因數(shù)據(jù)丟失或錯誤而影響藍(lán)牙通信,進(jìn)一步提高了藍(lán)牙通話質(zhì)量。

在一個實(shí)施例中,數(shù)據(jù)包修復(fù)模塊150根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出之后,根據(jù)預(yù)設(shè)校驗(yàn)信息對下一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在下一藍(lán)牙數(shù)據(jù)包不正常時,根據(jù)基音周期從完成修復(fù)的位置繼續(xù)進(jìn)行數(shù)據(jù)修復(fù),直至修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度。

預(yù)設(shè)的最大修復(fù)長度的具體取值并不唯一,可根據(jù)實(shí)際情況調(diào)整。具體地,在當(dāng)前藍(lán)牙數(shù)據(jù)包發(fā)生丟包或者錯誤,并根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù)和數(shù)據(jù)輸出之后,若接收到的下一藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)后也判斷為非正常數(shù)據(jù)包,則將下一藍(lán)牙數(shù)據(jù)包作為新的當(dāng)前數(shù)據(jù)包,從上一次完成數(shù)據(jù)修復(fù)的位置繼續(xù)進(jìn)行數(shù)據(jù)修復(fù),直至修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度。

可以理解,若再一次發(fā)生數(shù)據(jù)包丟失時同樣可再次進(jìn)行數(shù)據(jù)修復(fù)。也就是說,當(dāng)連續(xù)出現(xiàn)數(shù)據(jù)包丟失或數(shù)據(jù)包錯誤時,則在fifo中持續(xù)進(jìn)行數(shù)據(jù)修復(fù)操作。當(dāng)修復(fù)數(shù)據(jù)總長度大于預(yù)設(shè)的最大修復(fù)長度之后,此時可淡出處理或者在接近零值的位置結(jié)束修復(fù)輸出零值,淡出處理即指使信號呈現(xiàn)從有到無的漸變效果。

在一個實(shí)施例中,數(shù)據(jù)包修復(fù)模塊150根據(jù)fifo中的已有數(shù)據(jù)在fifo中進(jìn)行數(shù)據(jù)修復(fù),獲取fifo導(dǎo)出的數(shù)據(jù)并輸出之后,根據(jù)預(yù)設(shè)校驗(yàn)信息對下一藍(lán)牙數(shù)據(jù)包進(jìn)行檢測,在下一藍(lán)牙數(shù)據(jù)包正常時,根據(jù)下一藍(lán)牙數(shù)據(jù)包解碼得到的數(shù)據(jù)與預(yù)設(shè)時間基準(zhǔn)內(nèi)數(shù)據(jù)的相關(guān)性獲取關(guān)聯(lián)區(qū)域,并將下一藍(lán)牙數(shù)據(jù)包解碼得到的數(shù)據(jù)替換fifo中關(guān)聯(lián)區(qū)域?qū)?yīng)的數(shù)據(jù)。

具體地,在當(dāng)前藍(lán)牙數(shù)據(jù)包發(fā)生丟包或者錯誤,并根據(jù)fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù)和數(shù)據(jù)輸出之后,若接收到的下一藍(lán)牙數(shù)據(jù)包進(jìn)行校驗(yàn)后判斷為正常數(shù)據(jù)包,則在將下一藍(lán)牙數(shù)據(jù)包通過解碼器進(jìn)行解碼后,分析解碼得到的數(shù)據(jù)與預(yù)設(shè)時間基準(zhǔn)內(nèi)數(shù)據(jù)的相關(guān)性,找到解碼得到的數(shù)據(jù)的關(guān)聯(lián)區(qū)域進(jìn)行數(shù)據(jù)拼接。本實(shí)施例中,通過查找關(guān)聯(lián)區(qū)域中與解碼得到的數(shù)據(jù)最相關(guān)位置,然后將解碼得到的數(shù)據(jù)拼接到fifo中最相關(guān)位置,替換fifo中最相關(guān)位置原來的數(shù)據(jù)。

上述藍(lán)牙通話信號恢復(fù)裝置,在當(dāng)前藍(lán)牙數(shù)據(jù)包不正常時候利用fifo中的已有數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù),實(shí)現(xiàn)對丟失的藍(lán)牙信號的恢復(fù)。此外,在當(dāng)前藍(lán)牙數(shù)據(jù)包正常且上一藍(lán)牙數(shù)據(jù)包不正常時,利用當(dāng)前藍(lán)牙數(shù)據(jù)包預(yù)解碼得到的數(shù)據(jù)對解碼器進(jìn)行參數(shù)校正,從而校正解碼器的初始數(shù)據(jù),避免解碼器在接收到的正確數(shù)據(jù)包進(jìn)行解碼時出現(xiàn)解碼錯誤的問題。通過有效地恢復(fù)錯誤的數(shù)據(jù)包,且利用正確數(shù)據(jù)包對解碼器進(jìn)行參數(shù)校正,避免因藍(lán)牙信號的數(shù)據(jù)錯誤或解碼器解碼錯誤而影響藍(lán)牙通話效果,提高了藍(lán)牙通話質(zhì)量,改善了用戶體驗(yàn)感。

在一個實(shí)施例中,一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時實(shí)現(xiàn)上述方法的步驟。存儲介質(zhì)具體可以是軟盤、光盤、dvd、硬盤、閃存、u盤等,具體類型并不唯一。

上述計(jì)算機(jī)可讀存儲介質(zhì),通過有效地恢復(fù)錯誤的數(shù)據(jù)包,且利用正確數(shù)據(jù)包對解碼器進(jìn)行參數(shù)校正,避免因藍(lán)牙信號的數(shù)據(jù)錯誤或解碼器解碼錯誤而影響藍(lán)牙通話效果,提高了藍(lán)牙通話質(zhì)量,改善了用戶體驗(yàn)感。

在一個實(shí)施例中,一種計(jì)算機(jī)設(shè)備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,處理器執(zhí)行程序時實(shí)現(xiàn)上述方法的步驟。

上述計(jì)算機(jī)設(shè)備,通過有效地恢復(fù)錯誤的數(shù)據(jù)包,且利用正確數(shù)據(jù)包對解碼器進(jìn)行參數(shù)校正,避免因藍(lán)牙信號的數(shù)據(jù)錯誤或解碼器解碼錯誤而影響藍(lán)牙通話效果,提高了藍(lán)牙通話質(zhì)量,改善了用戶體驗(yàn)感。

以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實(shí)施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。

以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1