一種語音抖動緩沖區(qū)的調(diào)整方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種語音抖動緩沖區(qū)的調(diào)整方法及裝置,其中該方法包括:獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時;對語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)緩沖延時和語音無參考分?jǐn)?shù),對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時;結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),按照預(yù)設(shè)策略對語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。本發(fā)明實(shí)施例在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
【專利說明】
一種語音抖動緩沖區(qū)的調(diào)整方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種語音抖動緩沖區(qū)的調(diào)整方法及裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)帶寬也在不斷的提升,實(shí)時語音技術(shù)在生活中 被廣泛的應(yīng)用?;诨ヂ?lián)網(wǎng)傳輸?shù)恼Z音業(yè)務(wù),用戶通過2G/3G/4G/WIFI等網(wǎng)絡(luò)接入互聯(lián)網(wǎng) 成為主流,但由于這些接入的網(wǎng)絡(luò)環(huán)境越來越復(fù)雜,網(wǎng)絡(luò)中存在延時、抖動、丟包、亂序等對 語音質(zhì)量影響巨大,因此語音質(zhì)量越來越受到人們關(guān)注。
[0003] 為了提高語音質(zhì)量,減少網(wǎng)絡(luò)抖動的一般方法就是在接收端加入抖動緩沖區(qū),即 在解碼和播放之前放入一個固定長度的緩沖區(qū),該緩沖區(qū)用于緩存一定時間的語音數(shù)據(jù) 包,通過增加一定的延時,消除網(wǎng)絡(luò)抖動。這種算法實(shí)現(xiàn)簡單,算法復(fù)雜度低。
[0004] 在對現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),由于接收端增加一個 固定長度的抖動緩沖區(qū),如果緩沖區(qū)設(shè)置比抖動小,那么將會導(dǎo)致數(shù)據(jù)的丟失從而導(dǎo)致語 音失真,降低語音質(zhì)量;如果緩沖區(qū)設(shè)置較大,相當(dāng)于引入很大的通話延時,同樣也影響用 戶的通話質(zhì)量,甚至影響正常的實(shí)時通話。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種語音抖動緩沖區(qū)的調(diào)整方法及裝置,旨在消除網(wǎng)絡(luò)抖 動,提高語音通話質(zhì)量。
[0006] 為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
[0007] -種語音抖動緩沖區(qū)的調(diào)整方法,其中包括:
[0008] 獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時;
[0009] 對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);
[0010] 根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正, 得到目標(biāo)緩沖延時;
[0011] 結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù),按照預(yù)設(shè) 策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0012] 為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
[0013] -種語音抖動緩沖區(qū)的調(diào)整裝置,其中包括:
[0014] 獲取模塊,用于獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時;
[0015] 檢測模塊,用于對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);
[0016] 修正模塊,用于根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動 延時進(jìn)行修正,得到目標(biāo)緩沖延時;
[0017] 調(diào)整模塊,用于結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考 分?jǐn)?shù),按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0018] 相對于現(xiàn)有技術(shù),本實(shí)施例,對待播放的語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考 分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行 修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖延時;并結(jié) 合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以 讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
【附圖說明】
[0019] 下面結(jié)合附圖,通過對本發(fā)明的【具體實(shí)施方式】詳細(xì)描述,將使本發(fā)明的技術(shù)方案 及其它有益效果顯而易見。
[0020] 圖1是本發(fā)明第一實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流程示意圖;
[0021] 圖2a為本發(fā)明第二實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流程示意圖;
[0022] 圖2b為本發(fā)明第二實(shí)施例提供的卡頓檢測結(jié)果示意圖;
[0023] 圖3為本發(fā)明第三實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流程示意圖;
[0024] 圖4為本發(fā)明第四實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置的結(jié)構(gòu)示意圖;
[0025] 圖5為本發(fā)明第五實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置的結(jié)構(gòu)示意圖;
[0026] 圖6為本發(fā)明第六實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027] 請參照圖式,其中相同的組件符號代表相同的組件,本發(fā)明的原理是以實(shí)施在一 適當(dāng)?shù)倪\(yùn)算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實(shí)施例,其不應(yīng)被 視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
[0028] 在以下的說明中,本發(fā)明的具體實(shí)施例將參考由一部或多部計算機(jī)所執(zhí)行的步驟 及符號來說明,除非另有述明。因此,這些步驟及操作將有數(shù)次提到由計算機(jī)執(zhí)行,本文所 指的計算機(jī)執(zhí)行包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)的電子信號的計算機(jī)處理單元 的操作。此操作轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計算機(jī)的內(nèi)存系統(tǒng)中的位置處,其可重新配置 或另外以本領(lǐng)域測試人員所熟知的方式來改變該計算機(jī)的運(yùn)作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu) 為該內(nèi)存的實(shí)體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文 字來說明,其并不代表為一種限制,本領(lǐng)域測試人員將可了解到以下所述的多種步驟及操 作亦可實(shí)施在硬件當(dāng)中。
[0029] 本發(fā)明的原理使用許多其它泛用性或特定目的運(yùn)算、通信環(huán)境或組態(tài)來進(jìn)行操 作。所熟知的適合用于本發(fā)明的運(yùn)算系統(tǒng)、環(huán)境與組態(tài)的范例可包括(但不限于)手持電 話、個人計算機(jī)、服務(wù)器、多處理器系統(tǒng)、微電腦為主的系統(tǒng)、主架構(gòu)型計算機(jī)、及分布式運(yùn) 算環(huán)境,其中包括了任何的上述系統(tǒng)或裝置。
[0030] 本文所使用的術(shù)語「模塊」可看做為在該運(yùn)算系統(tǒng)上執(zhí)行的軟件對象。本文所述的 不同組件、模塊、引擎及服務(wù)可看做為在該運(yùn)算系統(tǒng)上的實(shí)施對象。而本文所述的裝置及方 法優(yōu)選的以軟件的方式進(jìn)行實(shí)施,當(dāng)然也可在硬件上進(jìn)行實(shí)施,均在本發(fā)明保護(hù)范圍之內(nèi)。
[0031] 而且本文所使用的詞語"優(yōu)選的"意指用作實(shí)例、示例或例證。奉文描述為"優(yōu)選 的"任意方面或設(shè)計不必被解釋為比其他方面或設(shè)計更有利。相反,詞語"優(yōu)選的"的使用 旨在以具體方式提出概念。如本申請中所使用的術(shù)語"或"旨在意指包含的"或"而非排除 的"或"。即,除非另外指定或從上下文中清楚,"X使用A或B"意指自然包括排列的任意一 個。即,如果X使用A ;X使用B ;或X使用A和B二者,則"X使用A或B"在前述任一示例 中得到滿足。
[0032] 而且,盡管已經(jīng)相對于一個或多個實(shí)現(xiàn)方式示出并描述了本公開,但是本領(lǐng)域技 術(shù)人員基于對本說明書和附圖的閱讀和理解將會想到等價變型和修改。本公開包括所有這 樣的修改和變型,并且僅由所附權(quán)利要求的范圍限制。特別地關(guān)于由上述組件(例如元件、 資源等)執(zhí)行的各種功能,用于描述這樣的組件的術(shù)語旨在對應(yīng)于執(zhí)行所述組件的指定功 能(例如其在功能上是等價的)的任意組件(除非另外指示),即使在結(jié)構(gòu)上與執(zhí)行本文 所示的本公開的示范性實(shí)現(xiàn)方式中的功能的公開結(jié)構(gòu)不等同。此外,盡管本公開的特定特 征已經(jīng)相對于若干實(shí)現(xiàn)方式中的僅一個被公開,但是這種特征可以與如可以對給定或特定 應(yīng)用而言是期望和有利的其他實(shí)現(xiàn)方式的一個或多個其他特征組合。而且,就術(shù)語"包括"、 "具有"、"含有"或其變形被用在【具體實(shí)施方式】或權(quán)利要求中而言,這樣的術(shù)語旨在以與術(shù) 語"包含"相似的方式包括。
[0033] 第一實(shí)施例
[0034] 請參閱圖1,圖1是本發(fā)明第一實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流程 示意圖。所述方法包括:
[0035] 在步驟S101中,獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時。
[0036] 其中,所述語音抖動緩沖區(qū)的調(diào)整方法可基于一接收終端服務(wù)器上運(yùn)行,所述接 收終端上設(shè)置有抖動緩沖區(qū)(即JitterBuffer),所述抖動緩沖區(qū)將接收到的語音數(shù)據(jù)包 按照時間進(jìn)行緩存,然后順序的按固定時間間隔進(jìn)行播放語音數(shù)據(jù)。
[0037] 本發(fā)明實(shí)施例中,待播放的語音數(shù)據(jù)為網(wǎng)絡(luò)上接收到的經(jīng)過糾錯處理且解碼后的 語音數(shù)據(jù);根據(jù)待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時,檢測到當(dāng)前的網(wǎng)絡(luò)狀況,進(jìn) 而根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況實(shí)時的對抖動緩沖區(qū)的大小進(jìn)行自適應(yīng)動態(tài)調(diào)整。
[0038] 可以理解的是,所述網(wǎng)絡(luò)抖動延時和所述緩沖延時可以分別根據(jù)預(yù)設(shè)時間段內(nèi)的 平均抖動和平均延時來生成,也可以根據(jù)語音數(shù)據(jù)包的到達(dá)間隔進(jìn)行統(tǒng)計生成,此處對網(wǎng) 絡(luò)抖動延時和緩沖延時的生成方式不作具體限定。
[0039] 在步驟S102中,對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù)。
[0040] 本實(shí)施例中所述語音無參考分?jǐn)?shù)是根據(jù)卡頓檢測得到,具體的,其主要是由人耳 主觀感受到的卡頓以及人耳感覺不到的卡頓計算得出。由于語音數(shù)據(jù)的音頻部分是以基于 卡頓檢測統(tǒng)計的,因此檢測過程可以不用考慮網(wǎng)絡(luò)的丟包模型,從實(shí)際的卡頓入手,結(jié)果更 加客觀。
[0041] 在步驟S103中,根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動 延時進(jìn)行修正,得到目標(biāo)緩沖延時。
[0042] 可以理解的是,當(dāng)網(wǎng)絡(luò)抖動比較大的情況下,如果一味的增加抖動緩沖區(qū)的大小, 會導(dǎo)致用戶的語音延時會偏大,也會影響語音的體驗(yàn)。因此,該實(shí)施例中,根據(jù)當(dāng)前的緩沖 延時和語音無參考分?jǐn)?shù)這兩個參數(shù)對所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況 下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖延時。
[0043] 在步驟S104中,結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考 分?jǐn)?shù),按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0044] 可以理解的是,所述預(yù)設(shè)策略可預(yù)先設(shè)置于服務(wù)器中,所述預(yù)設(shè)策略可以具體指 示根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況,對語音數(shù)據(jù)執(zhí)行的相應(yīng)的調(diào)速操作,從而通過語音數(shù)據(jù)的調(diào)速操 作實(shí)現(xiàn)對抖動緩沖區(qū)的大小的調(diào)整。
[0045] 其中,本實(shí)施例中所述當(dāng)前的網(wǎng)絡(luò)狀況可以通過步驟S103得到的目標(biāo)緩沖延時, 以及當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù)來表征,即所述抖動緩沖區(qū)隨著網(wǎng)絡(luò)抖 動、延時的變化而不斷動態(tài)調(diào)整,且可實(shí)現(xiàn)語音延時和語音質(zhì)量的最佳平衡。
[0046] 由上述可知,本實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法中,對待播放的語音數(shù) 據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩 沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖 動延時,得出目標(biāo)緩沖延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對 抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟 包、亂序等場景,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0047] 第二實(shí)施例
[0048] 請參閱圖2a,圖2a為本發(fā)明第二實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流 程示意圖。其中,所述語音抖動緩沖區(qū)的調(diào)整方法基于一接收終端服務(wù)器上運(yùn)行,所述接收 終端上設(shè)置有抖動緩沖區(qū),所述抖動緩沖區(qū)將接收到的語音數(shù)據(jù)包按照時間進(jìn)行緩存,然 后順序的按固定時間間隔進(jìn)行播放語音數(shù)據(jù)。
[0049] 區(qū)別于第一實(shí)施例,本實(shí)施例主要針對網(wǎng)絡(luò)抖動統(tǒng)計算法(即所述網(wǎng)絡(luò)抖動延時 的生成)、緩沖延時統(tǒng)計算法(即所述緩沖延時的生成)、語音無參考算法(即所述語音無 參考分?jǐn)?shù)的生成)以及網(wǎng)絡(luò)延時修正算法(即對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目 標(biāo)緩沖延時的過程)進(jìn)行詳細(xì)分析進(jìn)行詳細(xì)分析。所述方法包括:
[0050] 在步驟S201中,接收網(wǎng)絡(luò)語音數(shù)據(jù)包;
[0051] 在步驟S202中,對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理,并將糾錯處理且解碼后的 網(wǎng)絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。
[0052] 所述步驟S201與步驟S202可具體為:
[0053] 也就是說,在獲取到網(wǎng)絡(luò)抖動延時和緩沖延時之前,服務(wù)器在接收到網(wǎng)絡(luò)語音數(shù) 據(jù)包后,把經(jīng)過前向糾錯和后向糾錯之后的語音包送給抖動緩沖處理模塊,將該語音包進(jìn) 行解碼,其后根據(jù)語音包的到達(dá)間隔統(tǒng)計網(wǎng)絡(luò)抖動延時和緩沖延時,以體現(xiàn)當(dāng)前的網(wǎng)絡(luò)狀 況,進(jìn)而根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況實(shí)時的對抖動緩沖區(qū)的大小進(jìn)行自適應(yīng)動態(tài)調(diào)整。
[0054] 步驟S203、獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時。
[0055] 進(jìn)一步優(yōu)選的,以下對所述網(wǎng)絡(luò)抖動延時與所述緩沖延時的生成計算進(jìn)行簡單說 明:
[0056] 本發(fā)明實(shí)施例中所述網(wǎng)絡(luò)抖動延時可以基于以下方式生成:
[0057] 步驟a、計算所述語音數(shù)據(jù)的到達(dá)間隔;
[0058] 步驟b、根據(jù)所述到達(dá)間隔生成遺忘因子更新概率分布;
[0059] 步驟c、根據(jù)所述遺忘因子更新概率分布以及預(yù)設(shè)間隔進(jìn)行峰值檢測,獲取目標(biāo)到 達(dá)間隔;
[0060] 步驟d、根據(jù)所述目標(biāo)達(dá)到間隔生成所述語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時。
[0061] 可以理解的是,計算語音數(shù)據(jù)的到達(dá)間隔之前還可以獲取所述語音數(shù)據(jù)的包序號 以及包時戳,其后根據(jù)所述包序號以及所述包時戳,計算所述語音數(shù)據(jù)的到達(dá)間隔;根據(jù)所 述到達(dá)間隔生成遺忘因子更新概率分布,在所述遺忘因子更新概率分布中確定出概率和滿 足某一閾值(如優(yōu)選為95%)的到達(dá)間隔,跟預(yù)設(shè)間隔進(jìn)行峰值檢測,將較大值確定為所 述目標(biāo)到達(dá)間隔,最后根據(jù)所述目標(biāo)達(dá)到間隔以及數(shù)據(jù)包長度得到語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延 時。
[0062] 本發(fā)明實(shí)施例中所述緩沖延時可以基于以下方式生成:
[0063] 步驟e、根據(jù)所述網(wǎng)絡(luò)抖動延時確定對應(yīng)的遺忘因子;
[0064] 步驟f、根據(jù)所述遺忘因子生成所述語音數(shù)據(jù)的緩沖延時。
[0065] 具體的,定義緩沖延時為L,遺忘因子f,當(dāng)當(dāng)前的網(wǎng)絡(luò)抖動延時越大,遺忘因子f 就越小,計算緩沖延時的公式可如下:
[0066] L(n) = f*L (n-1) + (1-f) *L (η);
[0067] 其中本實(shí)施例中可默認(rèn)f = 0.98??梢岳斫獾氖牵谀承└鼮榫珳?zhǔn)的實(shí)施方式 中,所述遺忘因子f可以根據(jù)當(dāng)前的網(wǎng)絡(luò)抖動延時及緩沖包個數(shù)等來確定,此處不作具體 描述,此處舉例不構(gòu)成對本發(fā)明的限定。
[0068] 在步驟S204中,對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù)。
[0069] 本實(shí)施例中所述語音無參考分?jǐn)?shù)是根據(jù)卡頓檢測得到,具體的,其主要是由人耳 主觀感受到的卡頓以及人耳感覺不到的卡頓計算得出。由于語音數(shù)據(jù)的音頻部分是以基于 卡頓檢測統(tǒng)計的,因此檢測過程可以不用考慮網(wǎng)絡(luò)的丟包模型,從實(shí)際的卡頓入手,結(jié)果更 加客觀。
[0070] 具體的,對語音數(shù)據(jù)進(jìn)行卡頓檢測,統(tǒng)計一預(yù)設(shè)時間段內(nèi)的卡頓次數(shù)BdP B s。其 中^是指人耳主觀能夠感覺得到的卡頓,稱為大卡;B s是指人耳感覺不到卡頓但體現(xiàn)出來 是失真,稱為小卡??梢徊⒖紙D2b,圖2b為卡頓檢測中兩類卡頓的打分效果示意圖,包括 指示大卡&的主觀打分以及指示小卡B s的模型打分。
[0071] 其后基于以下公式計算語音無參考分?jǐn)?shù)Qa:
[0072]
[0073] 其中,山,a7, as,a9為擬合常數(shù),通過模擬不同的卡頓參數(shù)的主觀語音質(zhì)量評估 (PESQ,Perceptual evaluation of speech quality)擬合出來最佳的常數(shù)值。
[0074] 可以理解的是,所述預(yù)設(shè)時間段可根據(jù)當(dāng)前網(wǎng)絡(luò)狀況及數(shù)據(jù)包大小來確定,本實(shí) 施例可優(yōu)選為12S或者16S等等,此處舉例不構(gòu)成對發(fā)明實(shí)現(xiàn)的限定。
[0075] 在步驟S205中,根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),確定緩沖延時最大閾 值以及語音緩沖損失因子。
[0076] 在步驟S206中,根據(jù)所述緩沖延時最大閾值以及所述語音緩沖損失因子,對當(dāng)前 所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時。
[0077] 其中,步驟S205與步驟S206可具體為:
[0078] 當(dāng)網(wǎng)絡(luò)抖動比較大的情況下,如果一味的增加抖動緩沖區(qū)的大小,會導(dǎo)致用戶的 語音延時會偏大,也會影響語音的體驗(yàn)。于是根據(jù)當(dāng)前緩沖延時和語音無參考分?jǐn)?shù),計算出 緩沖延時最大閥值和語音緩沖損傷因子,利用這兩個參數(shù)對網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確 保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖延時。
[0079] 優(yōu)選的,該實(shí)施例中,當(dāng)前網(wǎng)絡(luò)抖動延時為DMtwOTk(t),目標(biāo)緩沖延時的最小閥值為 D_,目標(biāo)緩沖延時的最大閥值最小值為D__,目標(biāo)緩沖延時的最大閥值的最大值為D__, 根據(jù)閥值和語音無參考分?jǐn)?shù)QA,計算目標(biāo)緩沖延時D ta_t (t):
[0080] 所述目標(biāo)緩沖延時Dta_t(t)可以基于以下公式計算:
[0081]
[0082] 其中,f⑴為根據(jù)QA(t)算出來的可損傷因子,在盡量確保QA(t)彡Q_,Q_為可 接受的最小語音無參考分?jǐn)?shù),Q_為最大的語音無參考分?jǐn)?shù)。
[0083] 其中
[0084] 在步驟S207中,結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考 分?jǐn)?shù),按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0085] 可以理解的是,所述預(yù)設(shè)策略可預(yù)先設(shè)置于服務(wù)器中,所述預(yù)設(shè)策略可以具體指 示根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況,對語音數(shù)據(jù)執(zhí)行的相應(yīng)的調(diào)速操作,從而通過語音數(shù)據(jù)的調(diào)速操 作實(shí)現(xiàn)對抖動緩沖區(qū)的大小的調(diào)整。
[0086] 其中,本實(shí)施例中所述當(dāng)前的網(wǎng)絡(luò)狀況可以通過步驟S205及步驟S206得到的目 標(biāo)緩沖延時,以及當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù)來表征,即所述抖動緩沖區(qū) 隨著網(wǎng)絡(luò)抖動、延時的變化而不斷動態(tài)調(diào)整,且可實(shí)現(xiàn)語音延時和語音質(zhì)量的最佳平衡。
[0087] 由上述可知,本實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法中,對待播放的語音數(shù) 據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩 沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖 動延時,得出目標(biāo)緩沖延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對 抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟 包、亂序等場景,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0088] 第三實(shí)施例
[0089] 請參閱圖3,圖3為本發(fā)明第三實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法的流程 示意圖。同上述實(shí)施例,所述語音抖動緩沖區(qū)的調(diào)整方法基于一接收終端服務(wù)器上運(yùn)行,所 述接收終端上設(shè)置有抖動緩沖區(qū)。
[0090] 區(qū)別于第二實(shí)施例,本實(shí)施例主要針對抖動策略算法,即對對所述語音數(shù)據(jù)包所 屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整的過程進(jìn)行詳細(xì)分析。所述方法包括:
[0091] 在步驟S301中,獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時。
[0092] 優(yōu)選的,在所述獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時之前,還可以 包括以下步驟:
[0093] 接收網(wǎng)絡(luò)語音數(shù)據(jù)包;對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理;將糾錯處理后的網(wǎng) 絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。
[0094] 也就是說,服務(wù)器在接收到網(wǎng)絡(luò)語音數(shù)據(jù)包后,把經(jīng)過前向糾錯和后向糾錯處理, 且經(jīng)過解碼后的語音包確定為待播放的語音數(shù)據(jù),其后根據(jù)語音數(shù)據(jù)的到達(dá)間隔統(tǒng)計網(wǎng)絡(luò) 抖動延時和緩沖延時,以體現(xiàn)當(dāng)前的網(wǎng)絡(luò)狀況,進(jìn)而根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況實(shí)時的對抖動緩 沖區(qū)的大小進(jìn)行自適應(yīng)動態(tài)調(diào)整。
[0095] 可以理解的是,所述網(wǎng)絡(luò)抖動延時和所述緩沖延時的生成可以參考第二實(shí)例步驟 S203的相關(guān)描述進(jìn)行實(shí)現(xiàn),此處不再具體闡述;另外,此處舉例僅為解釋說明,所述網(wǎng)絡(luò)抖 動延時和所述緩沖延時也可以分別根據(jù)預(yù)設(shè)時間段內(nèi)的平均抖動和平均延時來生成,此處 不作具體限定。
[0096] 在步驟S302中,對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù)。
[0097] 本實(shí)施例中所述語音無參考分?jǐn)?shù)是根據(jù)卡頓檢測得到,具體的,其主要是由人耳 主觀感受到的卡頓以及人耳感覺不到的卡頓計算得出。由于語音數(shù)據(jù)的音頻部分是以基于 卡頓檢測統(tǒng)計的,因此檢測過程可以不用考慮網(wǎng)絡(luò)的丟包模型,從實(shí)際的卡頓入手,結(jié)果更 加客觀。
[0098] 可以理解的是,所述語音無參考分?jǐn)?shù)的計算和確定可以參考第二實(shí)例步驟S204 的相關(guān)描述進(jìn)行實(shí)現(xiàn),此處不再具體闡述。
[0099] 在步驟S303中,根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動 延時進(jìn)行修正,得到目標(biāo)緩沖延時。
[0100] 可具體的,可先根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),確定緩沖延時最大閾 值以及語音緩沖損失因子,再根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù)這兩個參數(shù),對當(dāng) 前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時,以在確保語音質(zhì)量的情況下,可以適當(dāng) 的減少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖延時。
[0101] 可以理解的是,所述目標(biāo)緩沖延時的計算和確定可以參考第二實(shí)例步驟S205和 步驟S206的相關(guān)描述進(jìn)行實(shí)現(xiàn),此處不再具體闡述。
[0102] 在步驟S304中,獲取所述語音數(shù)據(jù)的包序號以及包時戳;
[0103] 在步驟S305中,根據(jù)所述包序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào) 整方式。
[0104] 本實(shí)施例中,所述抖動緩沖區(qū)大小的調(diào)整方式包括調(diào)大、調(diào)小以及不調(diào)整三種;其 中,所述抖動緩沖區(qū)大小的調(diào)整方式可具體基于以下步驟進(jìn)行確定:
[0105] 步驟A、根據(jù)所述包序號以及所述包時戳,判斷所述語音數(shù)據(jù)是否連續(xù);
[0106] 步驟A1、若所述語音數(shù)據(jù)不連續(xù),則確定所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào) 整;
[0107] 步驟A2、若所述語音數(shù)據(jù)連續(xù),則根據(jù)所述目標(biāo)緩沖延時、網(wǎng)絡(luò)抖動延時以及預(yù)設(shè) 運(yùn)行調(diào)速條件,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大或調(diào)小或不調(diào)整。
[0108] 可以理解的是,當(dāng)確定出所述語音數(shù)據(jù)不連續(xù)時,可直接確定所述抖動緩沖區(qū)大 小的調(diào)整方式為不調(diào)整;當(dāng)確定出所述語音數(shù)據(jù)連續(xù)時,需要結(jié)合考慮預(yù)設(shè)運(yùn)行調(diào)速條件 對調(diào)整方式進(jìn)行判斷,其中,所述運(yùn)行調(diào)速條件可以根據(jù)實(shí)際操作情況預(yù)先設(shè)置于接收終 端的服務(wù)器中。
[0109] 該實(shí)施例中,所述運(yùn)行調(diào)速條件可理解為允許調(diào)速條件,譬如:為了確保語音質(zhì) 量,該運(yùn)行調(diào)速條件可以定義為:語音幀為連續(xù)低能量幀率允許調(diào)整,或者語音幀率連續(xù)6 幀語音數(shù)據(jù)只進(jìn)行一次調(diào)速;則可具體限定目標(biāo)緩沖延時與網(wǎng)絡(luò)抖動延時的關(guān)系,以確定 出所述抖動緩沖區(qū)大小的調(diào)整方式。
[0110] 進(jìn)一步優(yōu)選的,在所述語音數(shù)據(jù)連續(xù)的情況下,當(dāng)在目標(biāo)緩沖延時小于網(wǎng)絡(luò)抖動 延時75%且滿足所述運(yùn)行調(diào)速條件時,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大;當(dāng)在 目標(biāo)緩沖延時大于網(wǎng)絡(luò)抖動延時加20m且滿足運(yùn)行調(diào)速條件時,確定所述抖動緩沖區(qū)大小 的調(diào)整方式為調(diào)??;在其他情況時,確定所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整。
[0111] 可容易想到的是,此處運(yùn)行調(diào)速條件以及具體情形的舉例僅為本方案的一種可實(shí) 現(xiàn)方式,并不構(gòu)成對本發(fā)明實(shí)現(xiàn)的限定。
[0112] 在步驟S306中,根據(jù)所述抖動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù)進(jìn)行相應(yīng)的處 理。
[0113] 優(yōu)選的,在確定所述抖動緩沖區(qū)大小的調(diào)整方式后,根據(jù)其進(jìn)行相對應(yīng)的處理操 作,可包括:
[0114] -、若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大,則對所述語音數(shù)據(jù)進(jìn)行拉 升慢播處理;即語音數(shù)據(jù)需要進(jìn)行減速,以調(diào)大抖動緩沖區(qū)的大小。
[0115] 二、若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)小,則對所述語音數(shù)據(jù)進(jìn)行壓 縮加速快播處理;與第一種情形相反,所述語音數(shù)據(jù)需要進(jìn)行加速,以調(diào)小抖動緩沖區(qū)的大 小。
[0116] 三、若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)不連續(xù), 則對所述語音數(shù)據(jù)進(jìn)行丟包隱藏處理;
[0117] 四、若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)連續(xù),則 對所述語音數(shù)據(jù)進(jìn)行正常處理。
[0118] 在第三種情形與第四種情形下,都不需要對抖動緩沖區(qū)的大小進(jìn)行調(diào)整;當(dāng)語音 數(shù)據(jù)不連續(xù)進(jìn)行丟包隱藏處理,當(dāng)語音數(shù)據(jù)連續(xù)進(jìn)行正常處理。
[0119] 其中,對所述語音數(shù)據(jù)進(jìn)行正常處理就是指對語音數(shù)據(jù)不調(diào)速,直接進(jìn)行播放;一 般情況下,當(dāng)確定出所述語音數(shù)據(jù)為不連續(xù)時,則可對所述語音數(shù)據(jù)進(jìn)行丟包隱藏處理,即 不調(diào)整所述抖動緩沖區(qū)的大小。
[0120] 步驟S304至步驟S306為抖動緩沖區(qū)大小的具體調(diào)整方式,根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況, 對語音數(shù)據(jù)執(zhí)行相應(yīng)的調(diào)速操作,從而通過語音數(shù)據(jù)的調(diào)速操作實(shí)現(xiàn)對抖動緩沖區(qū)的大小 的調(diào)整。
[0121] 其中,本實(shí)施例中所述當(dāng)前的網(wǎng)絡(luò)狀況可以通過步驟S303得到的目標(biāo)緩沖延時, 以及當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù)來表征,即所述抖動緩沖區(qū)隨著網(wǎng)絡(luò)抖 動、延時的變化而不斷動態(tài)調(diào)整,且可實(shí)現(xiàn)語音延時和語音質(zhì)量的最佳平衡。
[0122] 在更為優(yōu)選的實(shí)現(xiàn)方式下,根據(jù)播放緩沖區(qū)中當(dāng)前仍然還有的數(shù)據(jù)長度,可再設(shè) 定判斷語音數(shù)據(jù)調(diào)速的條件:
[0123] 1、如果所述語音數(shù)據(jù)不連續(xù),播放緩沖區(qū)數(shù)據(jù)大于20ms,那么可確定數(shù)據(jù)足夠播 放,本次不需要做丟包隱藏操作,否則做丟包隱藏操作,然后正常播放,不調(diào)速。
[0124] 2、如果所述語音數(shù)據(jù)連續(xù),需要加速,那么需要確保有足夠數(shù)據(jù),即如播放緩沖區(qū) 及解碼出來的語音數(shù)據(jù)大于40ms,則語音數(shù)據(jù)加速處理,否則數(shù)據(jù)不足,則不進(jìn)行加速。
[0125] 3、如果所述語音數(shù)據(jù)連續(xù),不需要調(diào)速,播放緩沖區(qū)數(shù)據(jù)不足20ms,解碼抖動緩沖 區(qū)中的數(shù)據(jù)到播放緩沖區(qū),直到播放緩沖區(qū)數(shù)據(jù)大于20ms,則進(jìn)行正常播放。
[0126] 4、如果所述語音數(shù)據(jù)連續(xù),需要拉升(減速)操作,如果播放緩沖區(qū)數(shù)據(jù)大于 40ms,或者解碼抖動緩沖區(qū)中數(shù)據(jù)以及播放緩沖區(qū)中數(shù)據(jù)大于20ms,則進(jìn)行減速,減速需要 確保一定有一幀的語音數(shù)據(jù),否則不進(jìn)行減速處理。
[0127] 由上述可知,本實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法中,對待播放的語音數(shù) 據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩 沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖 動延時,得出目標(biāo)緩沖延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對 抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟 包、亂序等場景,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0128] 第四實(shí)施例
[0129] 為便于更好的實(shí)施本發(fā)明實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整方法,本發(fā)明實(shí)施 例還提供一種基于上述語音抖動緩沖區(qū)的調(diào)整方法的裝置。其中名詞的含義與上述語音抖 動緩沖區(qū)的調(diào)整的方法中相同,具體實(shí)現(xiàn)細(xì)節(jié)可以參考方法實(shí)施例中的說明。
[0130] 請參閱圖4,圖4為本發(fā)明實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置的結(jié)構(gòu)示意 圖,其中所述語音抖動緩沖區(qū)的調(diào)整裝置可基于一接收終端服務(wù)器上運(yùn)行,所述接收終端 上設(shè)置有抖動緩沖區(qū)(即JitterBuffer),所述抖動緩沖區(qū)將接收到的語音數(shù)據(jù)包按照時 間進(jìn)行緩存,然后順序的按固定時間間隔進(jìn)行播放語音數(shù)據(jù)。
[0131] 如圖4所示,本發(fā)明所述語音抖動緩沖區(qū)的調(diào)整裝置可以包括獲取模塊401、檢測 模塊402、修正模塊403以及調(diào)整模塊404。
[0132] 其中,所述獲取模塊401,用于獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延 時;所述檢測模塊402,用于對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù)。
[0133] 本發(fā)明實(shí)施例中,待播放的語音數(shù)據(jù)為網(wǎng)絡(luò)上接收到的經(jīng)過糾錯處理且解碼后的 語音數(shù)據(jù);根據(jù)待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時,檢測到當(dāng)前的網(wǎng)絡(luò)狀況,進(jìn) 而根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況實(shí)時的對抖動緩沖區(qū)的大小進(jìn)行自適應(yīng)動態(tài)調(diào)整。
[0134] 可以理解的是,所述網(wǎng)絡(luò)抖動延時和所述緩沖延時可以分別根據(jù)預(yù)設(shè)時間段內(nèi)的 平均抖動和平均延時來生成,也可以根據(jù)語音數(shù)據(jù)包的到達(dá)間隔進(jìn)行統(tǒng)計生成,此處對網(wǎng) 絡(luò)抖動延時和緩沖延時的生成方式不作具體限定。
[0135] 另外,本實(shí)施例中所述語音無參考分?jǐn)?shù)是根據(jù)卡頓檢測得到,具體的,其主要是由 人耳主觀感受到的卡頓以及人耳感覺不到的卡頓計算得出。由于語音數(shù)據(jù)的音頻部分是以 基于卡頓檢測統(tǒng)計的,因此檢測過程可以不用考慮網(wǎng)絡(luò)的丟包模型,從實(shí)際的卡頓入手,結(jié) 果更加客觀。
[0136] 所述修正模塊403,用于根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述 網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時;所述調(diào)整模塊404,用于結(jié)合所述目標(biāo)緩沖延 時、當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù),按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖 動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0137] 可以理解的是,當(dāng)網(wǎng)絡(luò)抖動比較大的情況下,如果一味的增加抖動緩沖區(qū)的大小, 會導(dǎo)致用戶的語音延時會偏大,也會影響語音的體驗(yàn)。因此,該實(shí)施例中,根據(jù)當(dāng)前的緩沖 延時和語音無參考分?jǐn)?shù)這兩個參數(shù)對所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況 下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖延時。
[0138] 另容易想到的是,所述預(yù)設(shè)策略可預(yù)先設(shè)置于服務(wù)器中,所述預(yù)設(shè)策略可以具體 指示根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況,對語音數(shù)據(jù)執(zhí)行的相應(yīng)的調(diào)速操作,從而通過語音數(shù)據(jù)的調(diào)速 操作實(shí)現(xiàn)對抖動緩沖區(qū)的大小的調(diào)整。
[0139] 其中,本實(shí)施例中所述當(dāng)前的網(wǎng)絡(luò)狀況可以通過所述修正模塊403得到的目標(biāo)緩 沖延時實(shí)時,以及當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù)來表征,即所述抖動緩沖區(qū) 隨著網(wǎng)絡(luò)抖動、延時的變化而不斷動態(tài)調(diào)整,且可實(shí)現(xiàn)語音延時和語音質(zhì)量的最佳平衡。
[0140] 由上述可知,本實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置中,對待播放的語音數(shù) 據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩 沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖 動延時,得出目標(biāo)緩沖延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對 抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟 包、亂序等場景,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0141] 第五實(shí)施例
[0142] 請參閱圖5,圖5為本發(fā)明實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置的結(jié)構(gòu)示意 圖,其中所述語音抖動緩沖區(qū)的調(diào)整裝置包括:獲取模塊501、檢測模塊502、修正模塊503 以及調(diào)整模塊504,其中,該實(shí)施例中上述各功能模塊的功能作用可對應(yīng)參考第四實(shí)施例中 的獲取模塊401、檢測模塊402、修正模塊403以及調(diào)整模塊404的相關(guān)描述,此處不作贅 述。
[0143] 在某些實(shí)施方式中,所述語音抖動緩沖區(qū)的調(diào)整裝置還可以包括接收模塊505、糾 錯模塊506以及確定模塊507 ;其中所述接收模塊505,用于接收網(wǎng)絡(luò)語音數(shù)據(jù)包;所述糾 錯模塊506,用于對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理;所述確定模塊507,用于將糾錯處 理后的網(wǎng)絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。
[0144] 進(jìn)一步,可具體的,所述獲取模塊501包括第一獲取單元,用于獲取網(wǎng)絡(luò)抖動延 時,包括:計算所述語音數(shù)據(jù)的到達(dá)間隔;根據(jù)所述到達(dá)間隔生成遺忘因子更新概率分布; 根據(jù)所述遺忘因子更新概率分布以及預(yù)設(shè)間隔進(jìn)行峰值檢測,獲取目標(biāo)到達(dá)間隔;根據(jù)所 述目標(biāo)達(dá)到間隔生成所述語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時。
[0145] 可以理解的是,計算語音數(shù)據(jù)的到達(dá)間隔之前還可以獲取所述語音數(shù)據(jù)的包序號 以及包時戳,其后根據(jù)所述包序號以及所述包時戳,計算所述語音數(shù)據(jù)的到達(dá)間隔;根據(jù)所 述到達(dá)間隔生成遺忘因子更新概率分布,在所述遺忘因子更新概率分布中確定出概率和滿 足某一閾值(如優(yōu)選為95%)的到達(dá)間隔,跟預(yù)設(shè)間隔進(jìn)行峰值檢測,將較大值確定為所 述目標(biāo)到達(dá)間隔,最后根據(jù)所述目標(biāo)達(dá)到間隔以及數(shù)據(jù)包長度得到語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延 時。
[0146] 所述獲取模塊501包括第二獲取單元,用于獲取緩沖延時,包括:根據(jù)所述網(wǎng)絡(luò)抖 動延時確定對應(yīng)的遺忘因子;根據(jù)所述遺忘因子生成所述語音數(shù)據(jù)的緩沖延時。
[0147] 具體的,定義緩沖延時為L,遺忘因子f,當(dāng)當(dāng)前的網(wǎng)絡(luò)抖動延時越大,遺忘因子f 就越小,計算緩沖延時的公式可如下:
[0148] L (n) = f*L (n_l) + (l_f) *L (η);
[0149] 其中本實(shí)施例中可默認(rèn)f = 0.98??梢岳斫獾氖?,在某些更為精準(zhǔn)的實(shí)施方式 中,所述遺忘因子f可以根據(jù)當(dāng)前的網(wǎng)絡(luò)抖動延時及緩沖包個數(shù)等來確定,此處不作具體 描述,此處舉例不構(gòu)成對本發(fā)明的限定。
[0150] 所述檢測模塊502對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);
[0151] 可具體的,所述語音無參考分?jǐn)?shù)主要是由人耳主觀感受到的卡頓以及人耳感覺不 到的卡頓計算得出;統(tǒng)計一預(yù)設(shè)時間段內(nèi)的卡頓次數(shù)BJPB S。其中&是指人耳主觀能夠感 覺得到的卡頓;BS是指人耳感覺不到卡頓但體現(xiàn)出來是失真。
[0152] 其中,山,a7, as,a9為擬合常數(shù),通過模擬不同的卡頓參數(shù)的主觀語音質(zhì)量評估 PESQ擬合出來最佳的常數(shù)值。
[0153] 可以理解的是,所述預(yù)設(shè)時間段可根據(jù)當(dāng)前網(wǎng)絡(luò)狀況及數(shù)據(jù)包大小來確定,本實(shí) 施例可優(yōu)選為12S或者16S等等,此處舉例不構(gòu)成對發(fā)明實(shí)現(xiàn)的限定。
[0154] 優(yōu)選的,所述修正模塊503可以包括第一確定單元5031以及修正單元5032 ;其中 所述第一確定單元5031,用于根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),確定緩沖延時最 大閾值以及語音緩沖損失因子;所述修正單元5032,用于根據(jù)所述緩沖延時最大閾值以及 所述語音緩沖損失因子,對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時。
[0155] 假設(shè),該實(shí)施例中,當(dāng)前網(wǎng)絡(luò)抖動延時SDnetw"k(t),目標(biāo)緩沖延時的最小閥值為 D_,目標(biāo)緩沖延時的最大閥值最小值為D__,目標(biāo)緩沖延時的最大閥值的最大值為D__, 根據(jù)閥值和語音無參考分?jǐn)?shù)QA,計算目標(biāo)緩沖延時D ta_t (t):
[0156] 所述目標(biāo)緩沖延時Dta_(t)可以基于以下公式計算:
[0157]
[0158] 其中,f(t)為根據(jù)QA(t)算出來的可損傷因子,在盡量確保QA(t)彡Q_,Q_為可 接受的最小語音無參考分?jǐn)?shù),Q_為最大的語音無參考分?jǐn)?shù)。
[0159] 其中
[0160] 所述調(diào)整模塊504可以包括獲取單元5041、第二確定單元5042以及調(diào)整處理單 元5043 ;其中所述獲取單元5041,用于獲取所述語音數(shù)據(jù)的包序號以及包時戳;所述第二 確定單元5042,用于根據(jù)所述包序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào)整方 式,所述抖動緩沖區(qū)大小的調(diào)整方式包括調(diào)大、調(diào)小以及不調(diào)整;所述調(diào)整處理單元5043, 用于根據(jù)所述抖動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù)進(jìn)行相應(yīng)的處理。
[0161] 其中,所述抖動緩沖區(qū)大小的調(diào)整方式可具體基于所述第二確定單元5042中的 功能子單元進(jìn)行確定,包括:
[0162] 判斷子單元,用于根據(jù)所述包序號以及所述包時戳,判斷所述語音數(shù)據(jù)是否連續(xù); 第一確定子單元,用于若所述語音數(shù)據(jù)不連續(xù),則確定所述抖動緩沖區(qū)大小的調(diào)整方式為 不調(diào)整;第二確定子單元,用于若所述語音數(shù)據(jù)連續(xù),則根據(jù)所述目標(biāo)緩沖延時、網(wǎng)絡(luò)抖動 延時以及預(yù)設(shè)運(yùn)行調(diào)速條件,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大或調(diào)小或不調(diào) 整。
[0163] 可以理解的是,當(dāng)確定出所述語音數(shù)據(jù)不連續(xù)時,可直接確定所述抖動緩沖區(qū)大 小的調(diào)整方式為不調(diào)整;當(dāng)確定出所述語音數(shù)據(jù)連續(xù)時,需要結(jié)合考慮預(yù)設(shè)運(yùn)行調(diào)速條件 對調(diào)整方式進(jìn)行判斷,其中,所述運(yùn)行調(diào)速條件可以根據(jù)實(shí)際操作情況預(yù)先設(shè)置于接收終 端的服務(wù)器中。
[0164] 該實(shí)施例中,所述運(yùn)行調(diào)速條件可理解為允許調(diào)速條件,譬如:為了確保語音質(zhì) 量,該運(yùn)行調(diào)速條件可以定義為:語音幀為連續(xù)低能量幀率允許調(diào)整,或者語音幀率連續(xù)6 幀語音數(shù)據(jù)只進(jìn)行一次調(diào)速;則可具體限定目標(biāo)緩沖延時與網(wǎng)絡(luò)抖動延時的關(guān)系,以確定 出所述抖動緩沖區(qū)大小的調(diào)整方式。
[0165] 進(jìn)一步優(yōu)選的,在所述語音數(shù)據(jù)連續(xù)的情況下,當(dāng)在目標(biāo)緩沖延時小于網(wǎng)絡(luò)抖動 延時75%且滿足所述運(yùn)行調(diào)速條件時,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大;當(dāng)在 目標(biāo)緩沖延時大于網(wǎng)絡(luò)抖動延時加20m且滿足運(yùn)行調(diào)速條件時,確定所述抖動緩沖區(qū)大小 的調(diào)整方式為調(diào)??;在其他情況時,確定所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整。
[0166] 可容易想到的是,此處運(yùn)行調(diào)速條件以及具體情形的舉例僅為本方案的一種可實(shí) 現(xiàn)方式,并不構(gòu)成對本發(fā)明實(shí)現(xiàn)的限定。
[0167] 優(yōu)選的,在確定所述抖動緩沖區(qū)大小的調(diào)整方式后,根據(jù)其進(jìn)行相對應(yīng)的處理操 作,基于此,所述調(diào)整處理單元5043可以包括:第一調(diào)整處理子單元,用于若確定出所述抖 動緩沖區(qū)大小的調(diào)整方式為調(diào)大,則對所述語音數(shù)據(jù)進(jìn)行拉升慢播處理;第二調(diào)整處理子 單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)小,則對所述語音數(shù)據(jù)進(jìn)行壓縮 加速快播處理;第三調(diào)整處理子單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不 調(diào)整,且所述語音數(shù)據(jù)不連續(xù),則對所述語音數(shù)據(jù)進(jìn)行丟包隱藏處理;第四調(diào)整處理子單 元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)連續(xù),則對所 述語音數(shù)據(jù)進(jìn)行正常處理。
[0168] 在更為優(yōu)選的實(shí)現(xiàn)方式下,根據(jù)播放緩沖區(qū)中當(dāng)前仍然還有的數(shù)據(jù)長度,可再設(shè) 定判斷語音數(shù)據(jù)調(diào)速的條件,例如:如果所述語音數(shù)據(jù)不連續(xù),播放緩沖區(qū)數(shù)據(jù)大于20ms, 那么可確定數(shù)據(jù)足夠播放,本次不需要做丟包隱藏操作,否則做丟包隱藏操作,然后正常播 放,不調(diào)速。又如,如果所述語音數(shù)據(jù)連續(xù),需要加速,那么需要確保有足夠數(shù)據(jù),即如播放 緩沖區(qū)及解碼出來的語音數(shù)據(jù)大于40ms,則語音數(shù)據(jù)加速處理,否則數(shù)據(jù)不足,則不進(jìn)行加 速。又如,如果所述語音數(shù)據(jù)連續(xù),不需要調(diào)速,播放緩沖區(qū)數(shù)據(jù)不足20ms,解碼抖動緩沖區(qū) 中的數(shù)據(jù)到播放緩沖區(qū),直到播放緩沖區(qū)數(shù)據(jù)大于20ms,則進(jìn)行正常播放。又如,如果所述 語音數(shù)據(jù)連續(xù),需要拉升(減速)操作,如果播放緩沖區(qū)數(shù)據(jù)大于40ms,或者解碼抖動緩沖 區(qū)中數(shù)據(jù)以及播放緩沖區(qū)中數(shù)據(jù)大于20ms,則進(jìn)行減速,減速需要確保一定有一幀的語音 數(shù)據(jù),否則不進(jìn)行減速處理。
[0169] 由上述可知,本實(shí)施例提供的語音抖動緩沖區(qū)的調(diào)整裝置中,對待播放的語音數(shù) 據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩 沖延時,對當(dāng)前網(wǎng)絡(luò)抖動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖 動延時,得出目標(biāo)緩沖延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對 抖動緩沖區(qū)的大小進(jìn)行調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟 包、亂序等場景,提升用戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0170] 第六實(shí)施例
[0171] 本發(fā)明實(shí)施例還提供一種服務(wù)器,其中可以集成本發(fā)明實(shí)施例的語音抖動緩沖區(qū) 的調(diào)整裝置,所述服務(wù)器可基于一接收終端服務(wù)器上運(yùn)行,所述接收終端上設(shè)置有抖動緩 沖區(qū),所述抖動緩沖區(qū)將接收到的語音數(shù)據(jù)包按照時間進(jìn)行緩存,然后順序的按固定時間 間隔進(jìn)行播放語音數(shù)據(jù)。如圖6所示,其示出了本發(fā)明實(shí)施例所涉及的服務(wù)器的結(jié)構(gòu)示意 圖,具體來講:
[0172] 該服務(wù)器可以包括一個或者一個以上處理核心的處理器601、一個或一個以上計 算機(jī)可讀存儲介質(zhì)的存儲器602、射頻(Radio Frequency,RF)電路603、電源604、輸入單 元605、以及顯示單元606等部件。本領(lǐng)域技術(shù)人員可以理解,圖6中示出的服務(wù)器結(jié)構(gòu)并 不構(gòu)成對服務(wù)器的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同 的部件布置。其中:
[0173] 處理器601是該服務(wù)器的控制中心,利用各種接口和線路連接整個服務(wù)器的各個 部分,通過運(yùn)行或執(zhí)行存儲在存儲器602內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器 602內(nèi)的數(shù)據(jù),執(zhí)行服務(wù)器的各種功能和處理數(shù)據(jù),從而對服務(wù)器進(jìn)行整體監(jiān)控??蛇x的,處 理器601可包括一個或多個處理核心;優(yōu)選的,處理器601可集成應(yīng)用處理器和調(diào)制解調(diào)處 理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要 處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器601中。
[0174] 存儲器602可用于存儲軟件程序以及模塊,處理器601通過運(yùn)行存儲在存儲器602 的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器602可主要包括存儲 程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序 (比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)服務(wù)器的使用所創(chuàng)建的 數(shù)據(jù)等。此外,存儲器602可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例 如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器602還 可以包括存儲器控制器,以提供處理器601對存儲器602的訪問。
[0175] RF電路603可用于收發(fā)信息過程中,信號的接收和發(fā)送,特別地,將基站的下行信 息接收后,交由一個或者一個以上處理器601處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。 通常,RF電路603包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身 份模塊(S頂)卡、收發(fā)信機(jī)、耦合器、低噪聲放大器(LNA,Low Noise Amplifier)、雙工器 等。此外,RF電路603還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使 用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(GSM,Global System of Mobile communication)、通用分組無線服務(wù)(GPRS,General Packet Radio Service)、碼分多址 (CDMA,Code Division Multiple Access)、寬帶碼分多址(WCDMA,Wideband Code Division Multiple Access)、長期演進(jìn)(LTE,Long Term Evolution)、電子郵件、短消息服務(wù)(SMS, Short Messaging Service)等。
[0176] 服務(wù)器還包括給各個部件供電的電源604(比如電池),優(yōu)選的,電源可以通過電 源管理系統(tǒng)與處理器601邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗 管理等功能。電源604還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故 障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
[0177] 該服務(wù)器還可包括輸入單元605,該輸入單元605可用于接收輸入的數(shù)字或字符 信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號 輸入。
[0178] 該服務(wù)器還可包括顯示單元606,該顯示單元606可用于顯示由用戶輸入的信息 或提供給用戶的信息以及服務(wù)器的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文 本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元608可包括顯示面板,可選的,可以采用液晶 顯不器(LCD,Liquid Crystal Display)、有機(jī)發(fā)光二極管(0LED,0rganic Light-Emitting Diode)等形式來配置顯示面板。
[0179] 具體在本實(shí)施例中,服務(wù)器中的處理器601會按照如下的指令,將一個或一個以 上的應(yīng)用程序的進(jìn)程對應(yīng)的可執(zhí)行文件加載到存儲器602中,并由處理器601來運(yùn)行存儲 在存儲器602中的應(yīng)用程序,從而實(shí)現(xiàn)各種功能,如下:
[0180] 獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時;對所述語音數(shù)據(jù)進(jìn)行卡頓檢 測,確定語音無參考分?jǐn)?shù);根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動 延時進(jìn)行修正,得到目標(biāo)緩沖延時;結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語 音無參考分?jǐn)?shù),按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。
[0181] 優(yōu)選的,所述處理器601還可以用于:根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù), 確定緩沖延時最大閾值以及語音緩沖損失因子;根據(jù)所述緩沖延時最大閾值以及所述語音 緩沖損失因子,對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時。
[0182] 優(yōu)選的,所述處理器601還可以用于:獲取所述語音數(shù)據(jù)的包序號以及包時戳;根 據(jù)所述包序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào)整方式,所述抖動緩沖區(qū)大小 的調(diào)整方式包括調(diào)大、調(diào)小以及不調(diào)整;根據(jù)所述抖動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù) 進(jìn)行相應(yīng)的處理。
[0183] 優(yōu)選的,所述處理器601還可以用于:根據(jù)所述包序號以及所述包時戳,判斷所述 語音數(shù)據(jù)是否連續(xù);若所述語音數(shù)據(jù)不連續(xù),則確定所述抖動緩沖區(qū)大小的調(diào)整方式為不 調(diào)整;若所述語音數(shù)據(jù)連續(xù),則根據(jù)所述目標(biāo)緩沖延時、網(wǎng)絡(luò)抖動延時以及預(yù)設(shè)運(yùn)行調(diào)速條 件,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大或調(diào)小或不調(diào)整。
[0184] 優(yōu)選的,所述處理器601還可以用于:若確定出所述抖動緩沖區(qū)大小的調(diào)整方式 為調(diào)大,則對所述語音數(shù)據(jù)進(jìn)行拉升慢播處理;若確定出所述抖動緩沖區(qū)大小的調(diào)整方式 為調(diào)小,則對所述語音數(shù)據(jù)進(jìn)行壓縮加速快播處理;若確定出所述抖動緩沖區(qū)大小的調(diào)整 方式為不調(diào)整,且所述語音數(shù)據(jù)不連續(xù),則對所述語音數(shù)據(jù)進(jìn)行丟包隱藏處理;若確定出所 述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)連續(xù),則對所述語音數(shù)據(jù)進(jìn)行正 常處理。
[0185] 優(yōu)選的,所述處理器601還可以用于:在獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時 和緩沖延時之前,接收網(wǎng)絡(luò)語音數(shù)據(jù)包;對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理;將糾錯處 理后的網(wǎng)絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。
[0186] 優(yōu)選的,所述處理器601還可以用于:計算所述語音數(shù)據(jù)的到達(dá)間隔;根據(jù)所述到 達(dá)間隔生成遺忘因子更新概率分布;根據(jù)所述遺忘因子更新概率分布以及預(yù)設(shè)間隔進(jìn)行峰 值檢測,獲取目標(biāo)到達(dá)間隔;根據(jù)所述目標(biāo)達(dá)到間隔生成所述語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時。
[0187] 優(yōu)選的,所述處理器601還可以用于:根據(jù)所述網(wǎng)絡(luò)抖動延時確定對應(yīng)的遺忘因 子;根據(jù)所述遺忘因子生成所述語音數(shù)據(jù)的緩沖延時。
[0188] 由上述可知,本實(shí)施例提供的服務(wù)器中,對待播放的語音數(shù)據(jù)進(jìn)行卡頓檢測,確定 語音無參考分?jǐn)?shù);根據(jù)語音無參考分?jǐn)?shù)以及待播放的語音數(shù)據(jù)的緩沖延時,對當(dāng)前網(wǎng)絡(luò)抖 動延時進(jìn)行修正,在確保語音質(zhì)量的情況下,可以適當(dāng)?shù)臏p少網(wǎng)絡(luò)抖動延時,得出目標(biāo)緩沖 延時;并結(jié)合目標(biāo)緩沖延時、當(dāng)前緩沖延時以及語音無參考分?jǐn)?shù),對抖動緩沖區(qū)的大小進(jìn)行 調(diào)整,可以讓互聯(lián)網(wǎng)語音通話快速適應(yīng)網(wǎng)絡(luò)變化,包括網(wǎng)絡(luò)抖動、丟包、亂序等場景,提升用 戶在移動互聯(lián)網(wǎng)中使用語音通話的質(zhì)量。
[0189] 在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部 分,可以參見上文針對語音抖動緩沖區(qū)的調(diào)整方法的詳細(xì)描述,此處不再贅述。
[0190] 本發(fā)明實(shí)施例提供的所述語音抖動緩沖區(qū)的調(diào)整裝置,譬如為計算機(jī)、平板電腦、 具有觸摸功能的手機(jī)等等,所述語音抖動緩沖區(qū)的調(diào)整裝置與上文實(shí)施例中的語音抖動緩 沖區(qū)的調(diào)整方法屬于同一構(gòu)思,在所述語音抖動緩沖區(qū)的調(diào)整裝置上可以運(yùn)行所述語音抖 動緩沖區(qū)的調(diào)整方法實(shí)施例中提供的任一方法,其具體實(shí)現(xiàn)過程詳見所述語音抖動緩沖區(qū) 的調(diào)整方法實(shí)施例,此處不再贅述。
[0191] 需要說明的是,對本發(fā)明所述語音抖動緩沖區(qū)的調(diào)整方法而言,本領(lǐng)域普通測試 人員可以理解實(shí)現(xiàn)本發(fā)明實(shí)施例所述語音抖動緩沖區(qū)的調(diào)整方法的全部或部分流程,是可 以通過計算機(jī)程序來控制相關(guān)的硬件來完成,所述計算機(jī)程序可存儲于一計算機(jī)可讀取存 儲介質(zhì)中,如存儲在終端的存儲器中,并被該終端內(nèi)的至少一個處理器執(zhí)行,在執(zhí)行過程中 可包括如所述語音抖動緩沖區(qū)的調(diào)整方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為 磁碟、光盤、只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取記憶體(RAM,Random Access Memory)等。
[0192] 對本發(fā)明實(shí)施例的所述語音抖動緩沖區(qū)的調(diào)整裝置而言,其各功能模塊可以集成 在一個處理芯片中,也可以是各個模塊單獨(dú)物理存在,也可以兩個或兩個以上模塊集成在 一個模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形 式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用 時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中,所述存儲介質(zhì)譬如為只讀存儲器,磁盤或 光盤等。
[0193] 以上對本發(fā)明實(shí)施例所提供的一種語音抖動緩沖區(qū)的調(diào)整方法及裝置進(jìn)行了詳 細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說 明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā) 明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理 解為對本發(fā)明的限制。
【主權(quán)項(xiàng)】
1. 一種語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,包括: 獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時; 對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù); 根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到 目標(biāo)緩沖延時; 結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù),按照預(yù)設(shè)策略 對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。2. 根據(jù)權(quán)利要求1所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述根據(jù)所述緩 沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時,包 括: 根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),確定緩沖延時最大閾值以及語音緩沖損失 因子; 根據(jù)所述緩沖延時最大閾值以及所述語音緩沖損失因子,對當(dāng)前所述網(wǎng)絡(luò)抖動延時進(jìn) 行修正,得到目標(biāo)緩沖延時。3. 根據(jù)權(quán)利要求1所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述按照預(yù)設(shè)策 略對所述語音數(shù)據(jù)包所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整,包括: 獲取所述語音數(shù)據(jù)的包序號以及包時戳; 根據(jù)所述包序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào)整方式,所述抖動緩沖 區(qū)大小的調(diào)整方式包括調(diào)大、調(diào)小以及不調(diào)整; 根據(jù)所述抖動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù)進(jìn)行相應(yīng)的處理。4. 根據(jù)權(quán)利要求3所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述根據(jù)所述包 序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào)整方式,包括: 根據(jù)所述包序號以及所述包時戳,判斷所述語音數(shù)據(jù)是否連續(xù); 若所述語音數(shù)據(jù)不連續(xù),則確定所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整; 若所述語音數(shù)據(jù)連續(xù),則根據(jù)所述目標(biāo)緩沖延時、網(wǎng)絡(luò)抖動延時以及預(yù)設(shè)運(yùn)行調(diào)速條 件,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大或調(diào)小或不調(diào)整。5. 根據(jù)權(quán)利要求4所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述根據(jù)所述抖 動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù)進(jìn)行相應(yīng)的處理,包括: 若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大,則對所述語音數(shù)據(jù)進(jìn)行拉升慢播處 理; 若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)小,則對所述語音數(shù)據(jù)進(jìn)行壓縮加速快 播處理; 若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)不連續(xù),則對所 述語音數(shù)據(jù)進(jìn)行丟包隱藏處理; 若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所述語音數(shù)據(jù)連續(xù),則對所述 語音數(shù)據(jù)進(jìn)行正常處理。6. 根據(jù)權(quán)利要求1至5任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述獲 取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時之前,還包括: 接收網(wǎng)絡(luò)語音數(shù)據(jù)包; 對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理; 將糾錯處理后的網(wǎng)絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。7. 根據(jù)權(quán)利要求1至5任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述網(wǎng) 絡(luò)抖動延時基于以下方式獲?。?計算所述語音數(shù)據(jù)的到達(dá)間隔; 根據(jù)所述到達(dá)間隔生成遺忘因子更新概率分布; 根據(jù)所述遺忘因子更新概率分布以及預(yù)設(shè)間隔進(jìn)行峰值檢測,獲取目標(biāo)到達(dá)間隔; 根據(jù)所述目標(biāo)達(dá)到間隔生成所述語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時。8. 根據(jù)權(quán)利要求1至5任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整方法,其特征在于,所述緩 沖延時基于以下方式獲?。?根據(jù)所述網(wǎng)絡(luò)抖動延時確定對應(yīng)的遺忘因子; 根據(jù)所述遺忘因子生成所述語音數(shù)據(jù)的緩沖延時。9. 一種語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,包括: 獲取模塊,用于獲取待播放的語音數(shù)據(jù)的網(wǎng)絡(luò)抖動延時和緩沖延時; 檢測模塊,用于對所述語音數(shù)據(jù)進(jìn)行卡頓檢測,確定語音無參考分?jǐn)?shù); 修正模塊,用于根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),對當(dāng)前所述網(wǎng)絡(luò)抖動延時 進(jìn)行修正,得到目標(biāo)緩沖延時; 調(diào)整模塊,用于結(jié)合所述目標(biāo)緩沖延時、當(dāng)前所述緩沖延時以及所述語音無參考分?jǐn)?shù), 按照預(yù)設(shè)策略對所述語音數(shù)據(jù)所屬的抖動緩沖區(qū)的大小進(jìn)行調(diào)整。10. 根據(jù)權(quán)利要求9所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述修正模塊包 括: 第一確定單元,用于根據(jù)所述緩沖延時和所述語音無參考分?jǐn)?shù),確定緩沖延時最大閾 值以及語音緩沖損失因子; 修正單元,用于根據(jù)所述緩沖延時最大閾值以及所述語音緩沖損失因子,對當(dāng)前所述 網(wǎng)絡(luò)抖動延時進(jìn)行修正,得到目標(biāo)緩沖延時。11. 根據(jù)權(quán)利要求9所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述調(diào)整模塊, 包括: 獲取單元,用于獲取所述語音數(shù)據(jù)的包序號以及包時戳; 第二確定單元,用于根據(jù)所述包序號以及所述包時戳確定所述抖動緩沖區(qū)大小的調(diào)整 方式,所述抖動緩沖區(qū)大小的調(diào)整方式包括調(diào)大、調(diào)小以及不調(diào)整; 調(diào)整處理單元,用于根據(jù)所述抖動緩沖區(qū)大小的調(diào)整方式對語音數(shù)據(jù)進(jìn)行相應(yīng)的處 理。12. 根據(jù)權(quán)利要求11所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述第二確定 單元,包括: 判斷子單元,用于根據(jù)所述包序號以及所述包時戳,判斷所述語音數(shù)據(jù)是否連續(xù); 第一確定子單元,用于若所述語音數(shù)據(jù)不連續(xù),則確定所述抖動緩沖區(qū)大小的調(diào)整方 式為不調(diào)整; 第二確定子單元,用于若所述語音數(shù)據(jù)連續(xù),則根據(jù)所述目標(biāo)緩沖延時、網(wǎng)絡(luò)抖動延時 以及預(yù)設(shè)運(yùn)行調(diào)速條件,確定所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大或調(diào)小或不調(diào)整。13. 根據(jù)權(quán)利要求12所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述調(diào)整處理 單元,包括: 第一調(diào)整處理子單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)大,則對所 述語音數(shù)據(jù)進(jìn)行拉升慢播處理; 第二調(diào)整處理子單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為調(diào)小,則對所 述語音數(shù)據(jù)進(jìn)行壓縮加速快播處理; 第三調(diào)整處理子單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所 述語音數(shù)據(jù)不連續(xù),則對所述語音數(shù)據(jù)進(jìn)行丟包隱藏處理; 第四調(diào)整處理子單元,用于若確定出所述抖動緩沖區(qū)大小的調(diào)整方式為不調(diào)整,且所 述語音數(shù)據(jù)連續(xù),則對所述語音數(shù)據(jù)進(jìn)行正常處理。14. 根據(jù)權(quán)利要求9至13任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述 裝置,還包括: 接收模塊,用于接收網(wǎng)絡(luò)語音數(shù)據(jù)包; 糾錯模塊,用于對所述網(wǎng)絡(luò)語音數(shù)據(jù)包進(jìn)行糾錯處理; 確定模塊,用于將糾錯處理后的網(wǎng)絡(luò)語音數(shù)據(jù)包的數(shù)據(jù)確定為待播放的語音數(shù)據(jù)。15. 根據(jù)權(quán)利要求9至13任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所 述獲取模塊包括第一獲取單元,用于獲取網(wǎng)絡(luò)抖動延時,包括:計算所述語音數(shù)據(jù)的到達(dá)間 隔;根據(jù)所述到達(dá)間隔生成遺忘因子更新概率分布;根據(jù)所述遺忘因子更新概率分布以及 預(yù)設(shè)間隔進(jìn)行峰值檢測,獲取目標(biāo)到達(dá)間隔;根據(jù)所述目標(biāo)達(dá)到間隔生成所述語音數(shù)據(jù)的 網(wǎng)絡(luò)抖動延時。16. 根據(jù)權(quán)利要求9至13任一項(xiàng)所述的語音抖動緩沖區(qū)的調(diào)整裝置,其特征在于,所述 獲取模塊包括第二獲取單元,用于獲取緩沖延時,包括:根據(jù)所述網(wǎng)絡(luò)抖動延時確定對應(yīng)的 遺忘因子;根據(jù)所述遺忘因子生成所述語音數(shù)據(jù)的緩沖延時。
【文檔編號】H04L12/885GK105991477SQ201510071060
【公開日】2016年10月5日
【申請日】2015年2月11日
【發(fā)明人】肖益劍
【申請人】騰訊科技(深圳)有限公司