本發(fā)明涉及終端領(lǐng)域,具體涉及了一種丟幀補(bǔ)償?shù)姆椒敖K端。
背景技術(shù):
近年來,隨著互聯(lián)網(wǎng)的高速發(fā)展和長途通訊需求的不斷增長,基于語音包交換的VOIP(Voice over Internet Protocol,網(wǎng)際語音呼叫)技術(shù)以其良好的通話質(zhì)量越來越受到用戶的青睞,由于語音包在網(wǎng)絡(luò)傳輸過程中被破壞或者網(wǎng)絡(luò)擁塞等各種原因而丟失(稱為丟幀),此時(shí)通話過程中就容易產(chǎn)生語音卡頓、不清晰等現(xiàn)象。
進(jìn)一步,目前的語音編碼器多數(shù)采用幀間相關(guān)的編解碼端同步的方法,這類編碼器可以在相同碼率下提供更高質(zhì)量的語音,但在丟幀情況下,由于幀間相關(guān)性,其語音質(zhì)量下降也比較明顯。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種丟幀補(bǔ)償?shù)姆椒敖K端,能夠在丟幀的情況下,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
本發(fā)明實(shí)施例第一方面公開了一種丟幀補(bǔ)償?shù)姆椒?,所述方法包括?/p>
接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);
獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;
若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;
若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);
對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù),包括:
判斷所述前一有效幀是否為濁音;
若所述前一有效幀為濁音,則判斷所述后續(xù)有效幀是否為濁音;
若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變;
若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀時(shí)濁音且所述后續(xù)有效幀不是濁音,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù)。
結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述方法還包括;
利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
結(jié)合第一方面的第七種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致。
結(jié)合第一方面的第八種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
結(jié)合第一方面或第一方面的第一種至第九種任意一種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí)現(xiàn)方式中,所述方法還包括:
若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)。
本發(fā)明第二方面公開了一種終端,所述終端包括:
接收單元,用于接收語音數(shù)據(jù)流;
存儲(chǔ)單元,用于將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);
獲取單元,用于獲取所述抖動(dòng)緩沖區(qū)的狀態(tài);
確定單元,用于根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;
判斷單元,用于若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;
估計(jì)單元,用于若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);
解碼單元,用于對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述估計(jì)單元包括判斷子單元和確定子單元;
所述判斷子單元,用于判斷所述前一有效幀是否為濁音;
所述判斷子單元,用于若所述前一有效幀為濁音,則判斷所述后續(xù)有效幀是否為濁音;
所述判斷子單元,用于若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變;
所述確定子單元,用于若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述估計(jì)單元還包括計(jì)算子單元;
所述計(jì)算子單元,用于若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述估計(jì)單元還包括設(shè)置子單元;
所述設(shè)置子單元,用于若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述估計(jì)單元還包括確定子單元;
所述確定子單元,用于若所述前一有效幀時(shí)濁音且所述后續(xù)有效幀不是濁音,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,
所述計(jì)算子單元,用于若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù)。
結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述計(jì)算子單元,用于若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述計(jì)算單元,用于利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述設(shè)置子單元,用于若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致。
結(jié)合第二方面的第八種可能的實(shí)現(xiàn)方式,在第二方面的第九種可能的實(shí)現(xiàn)方式中,所述確定子單元,用于若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
結(jié)合第二方面或第二方面的第一種至第九種任意一種可能的實(shí)現(xiàn)方式,在第二方面的第十種可能的實(shí)現(xiàn)方式中,所述估計(jì)單元,還用于若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)。
本發(fā)明第三方面公開了一種終端,所述終端包括:
存儲(chǔ)有可執(zhí)行程序代碼的存儲(chǔ)器;
與所述存儲(chǔ)器耦合的處理器;
所述處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的所述可執(zhí)行程序代碼,執(zhí)行如第一方面或第一方面的第一種至第四種中任意一種可能的實(shí)現(xiàn)方式所述的方法。
可以看出,本發(fā)明實(shí)施例的方案中,接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。從而可知,通過實(shí)施本發(fā)明提供的技術(shù)方案,能夠在丟幀的情況下,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種丟幀補(bǔ)償?shù)姆椒ǖ牧鞒淌疽鈭D;
圖2為本發(fā)明實(shí)施例提供的另一種丟幀補(bǔ)償?shù)姆椒ǖ牧鞒淌疽鈭D;
圖3為本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的另一種終端的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的一種終端的實(shí)體裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種丟幀補(bǔ)償?shù)姆椒敖K端,能夠在丟幀的情況下,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明說明書、權(quán)利要求書和附圖中出現(xiàn)的術(shù)語“第一”、“第二”和“第三”等是用于區(qū)別不同的對(duì)象,而并非用于描述特定的順序。此外,術(shù)語“包括”和“具有”以及它們?nèi)魏巫冃危鈭D在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對(duì)于這些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
在本發(fā)明的一個(gè)實(shí)施例中公開了一種丟幀補(bǔ)償?shù)姆椒ǎ龇椒òǎ航邮照Z音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
請(qǐng)參閱圖1,圖1是本發(fā)明一個(gè)實(shí)施例提供的一種丟幀補(bǔ)償?shù)姆椒ǖ牧鞒淌疽鈭D。其中,如圖1所示,本發(fā)明的一個(gè)實(shí)施例提供的一種丟幀補(bǔ)償?shù)姆椒òㄒ韵聝?nèi)容:
S101、接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);
需要指出的是,該方法的執(zhí)行主體是終端,例如可以為智能手機(jī)、平板電腦、智能穿戴式設(shè)備、計(jì)算機(jī)等電子設(shè)備。
具體的,終端中可以安裝具備網(wǎng)絡(luò)通信功能的客戶端。其中,語音數(shù)據(jù)流通過網(wǎng)絡(luò)到達(dá)客戶端,然后將接收到語音數(shù)據(jù)流輸入緩存進(jìn)抖動(dòng)緩沖區(qū)。
S102、獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;
其中,抖動(dòng)緩沖區(qū)可以給出的當(dāng)前丟幀的序號(hào)和連續(xù)丟幀數(shù)等信息。
其中,需要指出的是,如果沒有丟幀,那么就可以提取正常的參數(shù),然后對(duì)參數(shù)進(jìn)行解碼。
S103、若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;
S104、若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);
其中,當(dāng)前幀的參數(shù)包括但不限于基音周期、碼本激勵(lì)、增益等參數(shù)。
其中,可選的,若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)。
由于語音具有清濁音之分,所以在語音模型中對(duì)濁音(周期性信號(hào))和清音(非周期性信號(hào))的編碼方式具有明顯區(qū)別。因此,在丟幀的環(huán)境下,會(huì)對(duì)丟失的幀進(jìn)行信號(hào)分類,以根據(jù)信號(hào)類型進(jìn)行不同的參數(shù)估計(jì)方式。
可選的,根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)包括:判斷所述前一有效幀是否為濁音;若所述前一有效幀為濁音,則判斷所述后續(xù)有效幀是否為濁音;若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變;若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期;若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
可選的,若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
可選的,若所述前一有效幀時(shí)濁音且所述后續(xù)有效幀不是濁音,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
舉例來說,當(dāng)前丟失幀狀態(tài)由抖動(dòng)緩沖區(qū)給出,包括當(dāng)前丟幀的連續(xù)丟幀數(shù)目NumOfLostFrames和當(dāng)前丟幀序號(hào)CurLostSeqNum(從序號(hào)0開始,最大為NumOfLostFrames-1),及丟幀數(shù)閾值Threshold.而一般地,設(shè)定Threshold=NumOfLostFrames/2;假設(shè)前一有效濁音幀的基音周期為prevPitch,當(dāng)前丟失幀基音周期為CurPitch,子幀長度為SUBFR。
情況1、當(dāng)CurLostSeqNum<Threshold,CurPitch=prevPitch;
情況2、當(dāng)CurLostSeqNum>=Threshold,CurPitch=prevPitch+CurLostSeqNum*SUBFR;
若是濁音幀,判斷基音周期是否存在突變,因?yàn)槿嗽谡f話中可能突然提高或者降低聲調(diào),或者即使在穩(wěn)定濁音話語中,因?yàn)檠哉Z的不同,同樣可能存在基音周期的突變。假設(shè)NextPitch為后一有效幀基音周期,然后用前后有效幀基音周期的差值的絕對(duì)值與預(yù)設(shè)的偏移閾值θ(一般取值為10-20之間)進(jìn)行比較,來判斷是否存在突變。
|prevPitch–NextPitch|>θ
若滿足上式,則判定基音周期存在突變,基音周期為:
情況1、當(dāng)CurLostSeqNum<Threshold,CurPitch=prevPitch
情況2、當(dāng)CurLostSeqNum>=Threshold,CurPitch=NextPitch
否則,則判定基音周期進(jìn)行平滑演進(jìn),設(shè)演進(jìn)增量incIndex0,其中,
incIndex0=(NextPitch-prevPitch)/(NumOfLostFrames+1);
當(dāng)前丟失幀的基音周期計(jì)算方法為:
CurPitch=prevPitch+incIndex0*(CurLostSeqNum+1);
可選的,若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù)。若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
舉例來說,當(dāng)前后有效幀的信號(hào)類型都為濁音時(shí),使用線性的插值方法,假設(shè)前一有效幀的增益為prevGain,后一有效幀的增益為nextGain,則增益的演進(jìn)增量為incIndex1=(nextGain-prevGain)/(NumOfLostFrames+1);
則當(dāng)前丟失幀的增益curGain為
curGain=prevGain*incIndex1*(CurLostSeqNum+1);
舉例來說,當(dāng)前后有效幀的信號(hào)類型都不為濁音時(shí),則使用衰減系數(shù)對(duì)前一有效幀的增益進(jìn)行衰減,一般來說連續(xù)丟幀數(shù)少時(shí),衰減較慢,后續(xù)衰減較快,衰減系數(shù)通??蔀閧0.99,0.9,0.5,0.2},超過4幀時(shí),則系數(shù)都為0.2。
可選的,利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
舉例來說,根據(jù)后一有效幀的LSP(Line Spectral Pairs,線譜對(duì)子)參數(shù),結(jié)合前一有效幀參數(shù)進(jìn)行插值。插值的系數(shù)α計(jì)算如下:
α=(CurLostSeqNum+1)/(NumOfLostFrames+1);
當(dāng)前丟失幀的M階LSP系數(shù)通過下式實(shí)現(xiàn)線性插值,假設(shè)前一有效幀的LSP系數(shù)為prevLsp[M],后一有效幀的LSP系數(shù)為nextLsp[M]:
curLsp[i]=(1-α)*prevLsp[i]+α*nestLsp[i],i={0,1,...,M-1}。
可選的,若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致。若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
舉例來說,如果前后有效幀的信號(hào)類型一樣,則當(dāng)前幀的固定碼本激勵(lì)參數(shù)直接使用前一有效幀的固定碼本激勵(lì)參數(shù);如果前后有效幀的信號(hào)類型不一樣,則當(dāng)CurLostSeqNum<Threshold,使用前一有效幀的固定碼本激勵(lì)參數(shù),CurLostSeqNum>=Threshold,使用后一有效幀的固定碼本激勵(lì)參數(shù)。
S105、對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
可以看出,本發(fā)明實(shí)施例的方案中,接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。從而可知,通過實(shí)施本發(fā)明提供的技術(shù)方案,能夠在丟幀的情況下,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
請(qǐng)參閱圖2,圖2是本發(fā)明的另一個(gè)實(shí)施例提供的一種丟幀補(bǔ)償?shù)姆椒ǖ牧鞒淌疽鈭D。其中,如圖2所示,本發(fā)明的另一個(gè)實(shí)施例提供的另一種丟幀補(bǔ)償?shù)姆椒梢园ㄒ韵聝?nèi)容:
S201、接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū)。
需要指出的是,該方法的執(zhí)行主體是終端,例如可以為智能手機(jī)、平板電腦、智能穿戴式設(shè)備、計(jì)算機(jī)等電子設(shè)備。
S202、獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀。
S203、若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀。
S204、若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)。
S205、若存在后續(xù)有效幀,判斷所述前一有效幀是否為濁音。
S206、若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
S207、若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變。
S208、若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期。
其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
S209、若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
S210、若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù);若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
S211、利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
S212、若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致;若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
S213、對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
其中,所述當(dāng)前幀的參數(shù)包括但不限于基音周期、增益固定碼本激勵(lì)以及線譜對(duì)子等。
可以看出,本發(fā)明實(shí)施例的方案中擴(kuò)充了估計(jì)丟失幀參數(shù)的過程。從而可知,通過實(shí)施本發(fā)明提供的技術(shù)方案,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
請(qǐng)參閱圖3,圖3是本發(fā)明的一個(gè)實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖。其中,如圖3所示,本發(fā)明的一個(gè)實(shí)施例提供的一種終端300,其中,該終端可以是智能手機(jī)、平板電腦、智能穿戴設(shè)備等設(shè)備。該終端300包括接收單元301、存儲(chǔ)單元302,獲取單元303、確定單元304、判斷單元305、估計(jì)單元306以及解碼單元307;
接收單元301,用于接收語音數(shù)據(jù)流;
存儲(chǔ)單元302,用于將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);
獲取單元303,用于獲取所述抖動(dòng)緩沖區(qū)的狀態(tài);
確定單元304,用于根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;
判斷單元305,用于若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;
估計(jì)單元306,用于若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);
解碼單元307,用于對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
其中,接收單元301、存儲(chǔ)單元302,獲取單元303、確定單元304、判斷單元305、估計(jì)單元306以及解碼單元307可以用于執(zhí)行實(shí)施例1中步驟S101至S105所述的方法,具體描述詳見實(shí)施例1對(duì)所述方法的描述,在此不再贅述。
請(qǐng)參閱圖4,圖4是本發(fā)明的一個(gè)實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖。其中,如圖4所示,本發(fā)明的一個(gè)實(shí)施例提供的一種終端400,其中,該終端可以是智能手機(jī)、平板電腦、智能穿戴設(shè)備等設(shè)備。該終端400包括接收單元401、存儲(chǔ)單元402,獲取單元403、確定單元404、判斷單元405、估計(jì)單元406以及解碼單元407;其中,估計(jì)單元406包括判斷子單元4061、確定子單元4062、計(jì)算子單元4063以及設(shè)置子單元4064;
接收單元401,用于接收語音數(shù)據(jù)流;
存儲(chǔ)單元402,用于將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);
獲取單元403,用于獲取所述抖動(dòng)緩沖區(qū)的狀態(tài);
確定單元404,用于根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;
判斷單元405,用于若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;
估計(jì)單元406,用于若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)
估計(jì)單元406,還用于若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);
其中,估計(jì)當(dāng)前幀的參數(shù)的過程具體包括:
判斷子單元4061,用于判斷所述前一有效幀是否為濁音;
判斷子單元4061,還用于若所述前一有效幀為濁音,則判斷所述后續(xù)有效幀是否為濁音;
判斷子單元4061,還用于若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變;
確定子單元4062,用于若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
計(jì)算子單元4063用于若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
設(shè)置子單元4064,用于若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
確定子單元4062,還用于若所述前一有效幀時(shí)濁音且所述后續(xù)有效幀不是濁音,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
計(jì)算子單元4063,用于若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù)。
計(jì)算子單元4063,還用于若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
計(jì)算子單元4063,還用于利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
設(shè)置子單元4064,用于若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致。
確定子單元4062,還用于若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
解碼單元407,用于對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
其中,接收單元401、存儲(chǔ)單元402,獲取單元403、確定單元404、判斷單元405、估計(jì)單元406以及解碼單元407可以用于執(zhí)行實(shí)施例2中步驟S201至S213所述的方法,具體描述詳見實(shí)施例2對(duì)所述方法的描述,在此不再贅述。
請(qǐng)參閱圖5,在本發(fā)明的另一個(gè)實(shí)施例中,提供一種終端。所述終端500包括CPU501、存儲(chǔ)器502、總線503,顯示屏504等硬件。其中,該終端500可以是智能手機(jī)、平板電腦、智能穿戴設(shè)備等設(shè)備。
其中,CPU501執(zhí)行預(yù)先存儲(chǔ)在存儲(chǔ)器502中的程序,該執(zhí)行過程具體包括:
接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。
可選的,所述根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù),包括:
判斷所述前一有效幀是否為濁音;
若所述前一有效幀為濁音,則判斷所述后續(xù)有效幀是否為濁音;
若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則判斷基音周期是否突變;
若所述基音周期突變,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
可選的,執(zhí)行過程還包括:
若所述基音周期沒有突變,則根據(jù)插值法對(duì)所述前一有效幀的基音周期和后續(xù)有效幀的基音周期進(jìn)行計(jì)算以確定所述當(dāng)前幀的基音周期。
可選的,執(zhí)行過程還包括:
若所述前一有效幀不是濁音,則將所述當(dāng)前幀的基音周期設(shè)置為零。
可選的,執(zhí)行過程還包括:
若所述前一有效幀時(shí)濁音且所述后續(xù)有效幀不是濁音,則根據(jù)所述當(dāng)前幀狀態(tài)確定所述當(dāng)前幀的基音周期,其中,所述當(dāng)前幀的基音周期為所述當(dāng)前幀的參數(shù)。
可選的,執(zhí)行過程還包括:
若所述前一有效幀為濁音且所述后續(xù)有效幀為濁音,則利用插值法對(duì)所述前一有效幀的增益和后續(xù)有效幀的增益進(jìn)行計(jì)算以確定所述當(dāng)前幀的增益參數(shù)。
可選的,執(zhí)行過程還包括:
若所述前一有效幀不是濁音且所述后續(xù)有效幀不是濁音,則使用預(yù)設(shè)衰減系數(shù)對(duì)所述前一有效幀的增益進(jìn)行衰減以確定所述當(dāng)前幀的增益參數(shù)。
可選的,執(zhí)行過程還包括:
利用插值法對(duì)所述前一有效幀的線譜對(duì)子和后續(xù)有效幀的線譜對(duì)子進(jìn)行計(jì)算以確定所述當(dāng)前幀的線譜對(duì)子參數(shù)。
可選的,執(zhí)行過程還包括:
若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型相同,則保持所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)與所述前一有效幀的固定碼本激勵(lì)參數(shù)一致。
可選的,執(zhí)行過程還包括:
若所述前一有效幀的信號(hào)類型與所述后續(xù)有效幀的信號(hào)類型不相同,則根據(jù)所述當(dāng)前幀的序列號(hào)和預(yù)設(shè)閾值確定所述當(dāng)前幀的固定碼本激勵(lì)參數(shù)。
可選的,執(zhí)行過程還包括:
若不存在后續(xù)有效幀,則根據(jù)所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù)。
可以看出,本發(fā)明實(shí)施例的方案中,接收語音數(shù)據(jù)流,并將所述語音數(shù)據(jù)流存儲(chǔ)至抖動(dòng)緩沖區(qū);獲取所述抖動(dòng)緩沖區(qū)的狀態(tài),并根據(jù)所述抖動(dòng)緩沖區(qū)的狀態(tài)確定所述語音數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前幀是否為丟失幀;若所述當(dāng)前幀為丟失幀,則判斷所述當(dāng)前幀的后續(xù)幀中是否存在有效幀;若存在后續(xù)有效幀,則根據(jù)所述后續(xù)有效幀以及所述當(dāng)前幀的前一有效幀估計(jì)當(dāng)前幀的參數(shù);對(duì)所述當(dāng)前幀的參數(shù)解碼以重建語音信號(hào)。從而可知,通過實(shí)施本發(fā)明提供的技術(shù)方案,能夠在丟幀的情況下,有效地進(jìn)行丟幀重建,從而提升語音質(zhì)量。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒
有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccess Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。