欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種語音數(shù)據(jù)延時(shí)處理方法及裝置的制造方法

文檔序號(hào):10626775閱讀:420來源:國知局
一種語音數(shù)據(jù)延時(shí)處理方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種語音數(shù)據(jù)延時(shí)處理方法及裝置,涉及網(wǎng)絡(luò)語音通訊技術(shù)領(lǐng)域,用于提高網(wǎng)絡(luò)語音傳輸?shù)馁|(zhì)量。本發(fā)明提供的一種語音數(shù)據(jù)延時(shí)處理方法包括:確定用于表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù);根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù);根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
【專利說明】
一種語音數(shù)據(jù)延時(shí)處理方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及網(wǎng)絡(luò)語音通訊技術(shù)領(lǐng)域,特別是涉及一種語音數(shù)據(jù)延時(shí)處理方法及裝置。
【背景技術(shù)】
[0002]在大規(guī)模的網(wǎng)絡(luò)語音直播技術(shù)中,由于網(wǎng)絡(luò)狀況不穩(wěn)定,包括丟包、抖動(dòng)、網(wǎng)絡(luò)數(shù)據(jù)接收和語音數(shù)據(jù)播放之間存在速率差等因素,從而造成語音斷續(xù)、不清晰,影響語音的效果O
[0003]目前,現(xiàn)有技術(shù)中僅僅給出如何根據(jù)網(wǎng)絡(luò)抖動(dòng)情況確定調(diào)整延時(shí)的方案,即:確定用于表示當(dāng)前網(wǎng)絡(luò)抖動(dòng)情況的網(wǎng)絡(luò)抖動(dòng)參數(shù);根據(jù)當(dāng)前網(wǎng)絡(luò)抖動(dòng)參數(shù),調(diào)整抖動(dòng)緩存(Jitter Buffer)的延時(shí)參數(shù);根據(jù)調(diào)整后的抖動(dòng)緩存的延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
[0004]現(xiàn)有技術(shù)雖然考慮到了根據(jù)網(wǎng)絡(luò)抖動(dòng)情況調(diào)整延時(shí),但存在一些待改進(jìn)之處。一方面,現(xiàn)有技術(shù)在根據(jù)網(wǎng)絡(luò)狀況調(diào)整緩存時(shí),網(wǎng)絡(luò)評(píng)估考慮不夠全面,調(diào)整的自適應(yīng)速度較慢,且未能考慮到網(wǎng)絡(luò)數(shù)據(jù)接收線程和語音數(shù)據(jù)播放線程之間存在速率差,另一方面,現(xiàn)有技術(shù)在調(diào)整時(shí)過于粗糙,而由于語音的時(shí)間連續(xù)性及時(shí)序敏感性關(guān)系,很容易造成語音的卡頓。

【發(fā)明內(nèi)容】

[0005]本發(fā)明綜合考慮丟包、抖動(dòng)等網(wǎng)絡(luò)不穩(wěn)定因素,以及網(wǎng)絡(luò)數(shù)據(jù)接收和語音數(shù)據(jù)播放之間存在速率差,配合上丟包重傳機(jī)制,提供一種改進(jìn)的語音抖動(dòng)緩存Jitter Buffer技術(shù)方案,即通過周期性地統(tǒng)計(jì)原始網(wǎng)絡(luò)丟包率、重傳后網(wǎng)絡(luò)丟包率、重傳數(shù)據(jù)包中遲到包所占比率、數(shù)據(jù)包最大抖動(dòng)幅度這些參數(shù),而后根據(jù)這些參數(shù)合理調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),再周期性地對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理,以達(dá)到快速自適應(yīng)的效果,用于提高網(wǎng)絡(luò)語音傳輸?shù)馁|(zhì)量,令聽覺感受更加舒適。
[0006]本發(fā)明提供的一種語音數(shù)據(jù)延時(shí)處理方法包括如下步驟:
確定用于表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù);
根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù);
根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
[0007]本發(fā)明提供的一種語音數(shù)據(jù)延時(shí)處理裝置包括:
網(wǎng)絡(luò)狀況確定單元,用于確定表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù);
抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù)調(diào)整單元,用于根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù);
抖動(dòng)緩存中數(shù)據(jù)包延時(shí)處理單元,用于根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
【附圖說明】
[0008]圖1為本發(fā)明實(shí)施例提供的一種語音數(shù)據(jù)延時(shí)處理方法的流程示意圖。
[0009]圖2為本發(fā)明實(shí)施例提供的一種語音數(shù)據(jù)延時(shí)處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0010]本發(fā)明實(shí)施例實(shí)現(xiàn)的基本原理是:抖動(dòng)緩存越大,其糾正亂序、去除網(wǎng)絡(luò)抖動(dòng)、配合丟包重傳減少丟包的效果越好,但引起的延時(shí)卻越大;反之則相反。因此,需要盡可能地讓它維持在一個(gè)合理值;在實(shí)時(shí)語音傳輸過程中,抖動(dòng)緩存中的數(shù)據(jù)接收速率取決于發(fā)送端的語音數(shù)據(jù)采集線程,而數(shù)據(jù)取出速率取決于接收端的語音數(shù)據(jù)播放線程,因此,兩個(gè)速率很可能有細(xì)微的偏差,這種偏差隨著時(shí)間的累積將導(dǎo)致當(dāng)前語音數(shù)據(jù)延時(shí)慢慢變大或慢慢變小,此時(shí),需要良好的語音數(shù)據(jù)延時(shí)處理方法來消除這種偏差,且盡可能小地影響用戶聽覺體驗(yàn)。
[0011]參見圖1,本發(fā)明實(shí)例提供的一種語音數(shù)據(jù)延時(shí)處理方法,總體包括如下步驟: S101,確定用于表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù);
S102,根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù);
S103,根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
[0012]具體技術(shù)方案如下:
確定當(dāng)前網(wǎng)絡(luò)狀況網(wǎng)絡(luò)狀態(tài)的參數(shù),包括原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),即每隔一定周期統(tǒng)計(jì)一次該周期內(nèi)的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),例如,以1s為周期統(tǒng)計(jì)一次。
[0013]其中:
原始網(wǎng)絡(luò)丟包率:每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的網(wǎng)絡(luò)丟包率,原始網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100%,初始值為O ;
重傳后網(wǎng)絡(luò)丟包率:每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的網(wǎng)絡(luò)丟包率,重傳后網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100%,初始值為O ;
重傳數(shù)據(jù)包中遲到包所占比率:每個(gè)統(tǒng)計(jì)周期內(nèi)重傳到達(dá)的數(shù)據(jù)包中,晚于播放時(shí)刻到達(dá)的重傳包數(shù)量占所有重傳包數(shù)量的比率,重傳數(shù)據(jù)包中遲到包所占比率=(每個(gè)統(tǒng)計(jì)周期內(nèi)晚于播放時(shí)刻到達(dá)的重傳包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)總的重傳包數(shù)量)*100%,初始值為O ;
最大抖動(dòng)幅度參數(shù):每個(gè)統(tǒng)計(jì)周期內(nèi)相鄰數(shù)據(jù)包時(shí)間間隔的最大值,單位為ms,初始值為O。
[0014]根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),包括:
主要延時(shí)參數(shù)涉及:
Target_delay:期望延時(shí)參數(shù),單位為 ms,例如:Target_delay=150ms ;Min_Target_delay:期望延時(shí)調(diào)整下限參數(shù),單位為ms,例如:Min_Target_delay=100ms ;
Max—Target—delay:期望延時(shí)調(diào)整上限參數(shù),單位為ms,例如:Max—Target—delay=500ms ;
Current—delay:當(dāng)前延時(shí)參數(shù),即目前緩存中的數(shù)據(jù)量大小,單位為ms ;
Min—Current—delay:當(dāng)前延時(shí)調(diào)整下限參數(shù),單位為ms,Min—Current—delay根據(jù)Target—delay 確定:如果 Target—delay 小于 400ms,則 Min—Current—delay =Target_delay/2 ;如果 Target—delay 大于或等于 200ms,則 Min—Current—delay = Target—delay-200 ;
Max—Current—delay:當(dāng)前延時(shí)調(diào)整上限參數(shù),單位為ms,Max—Current—delay根據(jù)Target—delay 確定:如果 Target—delay 小于 200ms,則 Max—Current—delay =Target_delay*2 ;如果 Target—delay 大于或等于 200ms,則 Max—Current—delay = Target—delay+200 ;
Need—turn—up:調(diào)大延時(shí)標(biāo)記參數(shù),布爾類型,True表示調(diào)大,F(xiàn)alse表示不調(diào)大,默認(rèn)值為False ;
Need—turn—down:調(diào)小延時(shí)標(biāo)記參數(shù),布爾類型,True表示調(diào)小,F(xiàn)alse表示不調(diào)小,默認(rèn)值為False ;
本抖動(dòng)緩存包括兩種狀態(tài):Waiting—state和Working—state,默認(rèn)為Waiting—state ;
Waiting—state:此時(shí)處于等待數(shù)據(jù)接收狀態(tài),此時(shí)只接收數(shù)據(jù)包不取出數(shù)據(jù); Working—state:此時(shí)處于正常工作狀態(tài),此時(shí)既接收數(shù)據(jù)也取出數(shù)據(jù)
[0015]如果原始丟包率小于原始丟包率閾值(例如,原始丟包率閾值=4%),并且重傳數(shù)據(jù)包中遲到包所占比率小于重傳數(shù)據(jù)包中遲到包所占比率閾值I (例如,重傳數(shù)據(jù)包中遲到包所占比率閾值1=1%),則按固定步長(例如,步長=1ms)調(diào)小期望延時(shí)參數(shù)Target—delay,此時(shí)如果期望延時(shí)參數(shù)Target—delay小于期望延時(shí)調(diào)整下限參數(shù)Min—Target—delay,則將期望延時(shí)參數(shù)Target—delay調(diào)整為期望延時(shí)調(diào)整下限參數(shù)Min— Target—delayD
[0016]如果重傳后網(wǎng)絡(luò)丟包率小于原始網(wǎng)絡(luò)丟包率,并且重傳數(shù)據(jù)包中遲到包所占比率大于重傳數(shù)據(jù)包中遲到包所占比率閾值2 (例如,重傳數(shù)據(jù)包中遲到包所占比率閾值2=10%),則按固定步長(例如,步長=1ms)調(diào)大期望延時(shí)參數(shù)Target—delay,此時(shí)如果期望延時(shí)參數(shù)Target—delay大于期望延時(shí)調(diào)整上限參數(shù)Max— Target—delay,則將期望延時(shí)參數(shù)Target—delay調(diào)整為期望延時(shí)調(diào)整上限參數(shù)Max—Target—delay。
[0017]如果數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)大于Target—delay,則將期望延時(shí)參數(shù)Target—delay調(diào)整為最大抖動(dòng)幅度參數(shù)*1.20
[0018]根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理,主要包括:
周期性判斷抖動(dòng)緩存狀態(tài),當(dāng)抖動(dòng)緩存狀態(tài)為Waiting_state狀態(tài)時(shí),則比較當(dāng)前延時(shí)參數(shù)Current_delay與期望延時(shí)參數(shù)Target_delay的大小:如果當(dāng)前延時(shí)參數(shù)Current_delay小于期望延時(shí)參數(shù)Target_delay,則表明抖動(dòng)緩存中數(shù)據(jù)不夠,則抖動(dòng)緩存繼續(xù)接收語音數(shù)據(jù)包;如果當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay,則解碼并取出播放語音數(shù)據(jù)包,抖動(dòng)緩存狀態(tài)切換為Working_state狀態(tài);當(dāng)出現(xiàn)異常情況時(shí),抖動(dòng)緩存狀態(tài)切換為Waiting_state狀態(tài)。
[0019]所述抖動(dòng)緩存中的語音數(shù)據(jù)包為從遠(yuǎn)端接收到的按序列號(hào)升序排列、間隔為I的編碼后的語音數(shù)據(jù)包序列的組成部分,判斷數(shù)據(jù)包的序列號(hào)是否連續(xù),如不連續(xù),則發(fā)生丟包情形,其中導(dǎo)致不連續(xù)的序號(hào)的數(shù)據(jù)包即為丟失的數(shù)據(jù)包,此時(shí)重傳丟失的數(shù)據(jù)包;在接收語音數(shù)據(jù)包時(shí),判斷是否需要調(diào)大當(dāng)前延時(shí)參數(shù)Current_delay,即比較當(dāng)前延時(shí)參數(shù)Current_delay與當(dāng)前延時(shí)參數(shù)下限參數(shù)Min_Current_delay的大小:如Current_delay小于Min_Current_delay,則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為True,否則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為False。
[0020]在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up的值,如果為True,則在當(dāng)前緩存中插入固定步長的數(shù)據(jù)幀,直到Current_delay大于或等于Target_delay 為止。
[0021]在取出播放語音數(shù)據(jù)包時(shí),如果當(dāng)前延時(shí)參數(shù)Current_delay大于當(dāng)前延時(shí)調(diào)整上限參數(shù)Max_Current_delay,則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置Ture,否則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置False。
[0022]在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down的值,如果為True,則在當(dāng)前緩存中合并固定步長的數(shù)據(jù)幀,直到Current_delay小于或等于Target_delay為止,以達(dá)到對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行自適應(yīng)延時(shí)處理效果。
[0023]根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理過程中的判斷和調(diào)整的速率需要作限制,例如以周期80ms,步長1ms進(jìn)行判斷和調(diào)整。
[0024]參見圖2,本發(fā)明實(shí)施例提供一種語音數(shù)據(jù)延時(shí)處理裝置,包括:
網(wǎng)絡(luò)狀況確定單元201,用于確定表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù);
抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù)調(diào)整單元202,用于根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù);
抖動(dòng)緩存中數(shù)據(jù)包延時(shí)處理單元203,用于根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。
[0025]具體如下:
所述網(wǎng)絡(luò)狀況確定單元,用于每隔一定周期統(tǒng)計(jì)一次該周期內(nèi)的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),例如,以1s為周期統(tǒng)計(jì)一次。
[0026]其中: 原始網(wǎng)絡(luò)丟包率:每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的網(wǎng)絡(luò)丟包率,原始網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100%,初始值為O ;
重傳后網(wǎng)絡(luò)丟包率:每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的網(wǎng)絡(luò)丟包率,重傳后網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100%,初始值為O ;
重傳數(shù)據(jù)包中遲到包所占比率:每個(gè)統(tǒng)計(jì)周期內(nèi)重傳到達(dá)的數(shù)據(jù)包中,晚于播放時(shí)刻到達(dá)的重傳包數(shù)量占所有重傳包數(shù)量的比率,重傳數(shù)據(jù)包中遲到包所占比率=每個(gè)統(tǒng)計(jì)周期內(nèi)晚于播放時(shí)刻到達(dá)的重傳包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)總的重傳包數(shù)量,初始值為O ;
最大抖動(dòng)幅度參數(shù):每個(gè)統(tǒng)計(jì)周期內(nèi)相鄰數(shù)據(jù)包時(shí)間間隔的最大值,單位為ms,初始值為O。
[0027]所述抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù)調(diào)整單元,用于根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),包括:
主要延時(shí)參數(shù)涉及:
Target_delay:期望延時(shí)參數(shù),單位為 ms,例如:Target_delay=150ms ;
Min_Target_delay:期望延時(shí)調(diào)整下限參數(shù),單位為ms,例如:Min_Target_delay=100ms ;
Max—Target—delay:期望延時(shí)調(diào)整上限參數(shù),單位為ms,例如:Max—Target—delay=500ms ;
Current—delay:當(dāng)前延時(shí)參數(shù),即目前緩存中的數(shù)據(jù)量大小,單位為ms ;
Min—Current—delay:當(dāng)前延時(shí)調(diào)整下限參數(shù),單位為ms,Min—Current—delay根據(jù)Target—delay 確定:如果 Target—delay 小于 400ms,則 Min—Current—delay =Target_delay/2 ;如果 Target—delay 大于或等于 200ms,則 Min—Current—delay = Target—delay-200 ;
Max—Current—delay:當(dāng)前延時(shí)調(diào)整上限參數(shù),單位為ms,Max—Current—delay根據(jù)Target—delay 確定:如果 Target—delay 小于 200ms,則 Max—Current—delay =Target_delay*2 ;如果 Target—delay 大于或等于 200ms,則 Max—Current—delay = Target—delay+200 ;
Need—turn—up:調(diào)大延時(shí)標(biāo)記參數(shù),布爾類型,True表示調(diào)大,F(xiàn)alse表示不調(diào)大,默認(rèn)值為False ;
Need—turn—down:調(diào)小延時(shí)標(biāo)記參數(shù),布爾類型,True表示調(diào)小,F(xiàn)alse表示不調(diào)小,默認(rèn)值為False ;
本抖動(dòng)緩存包括兩種狀態(tài):Waiting—state和Working—state,默認(rèn)為Waiting—state ;
Waiting—state:此時(shí)處于等待數(shù)據(jù)接收狀態(tài),此時(shí)只接收數(shù)據(jù)包不取出數(shù)據(jù);
Working—state:此時(shí)處于正常工作狀態(tài),此時(shí)既接收數(shù)據(jù)也取出數(shù)據(jù)
[0028]如果原始丟包率小于原始丟包率閾值(例如,原始丟包率閾值=4%),并且重傳數(shù)據(jù)包中遲到包所占比率小于重傳數(shù)據(jù)包中遲到包所占比率閾值I (例如,重傳數(shù)據(jù)包中遲到包所占比率閾值1=1%),則按固定步長(例如,步長=1ms)調(diào)小期望延時(shí)參數(shù)Target_delay,此時(shí)如果期望延時(shí)參數(shù)Target_delay小于期望延時(shí)調(diào)整下限參數(shù)Min_Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整下限參數(shù)Min_ Target_delay。
[0029]如果重傳后網(wǎng)絡(luò)丟包率小于原始網(wǎng)絡(luò)丟包率,并且重傳數(shù)據(jù)包中遲到包所占比率大于重傳數(shù)據(jù)包中遲到包所占比率閾值2 (例如,重傳數(shù)據(jù)包中遲到包所占比率閾值2=10%),則按固定步長(例如,步長=1ms)調(diào)大期望延時(shí)參數(shù)Target_delay,此時(shí)如果期望延時(shí)參數(shù)Target_delay大于期望延時(shí)調(diào)整上限參數(shù)Max_ Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整上限參數(shù)Max_Target_delay。
[0030]如果數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)大于Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為最大抖動(dòng)幅度參數(shù)*1.2。
[0031]所述抖動(dòng)緩存中數(shù)據(jù)包延時(shí)處理單元,用于根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理,包括:
周期性判斷抖動(dòng)緩存狀態(tài),當(dāng)抖動(dòng)緩存狀態(tài)為Waiting_state狀態(tài)時(shí),則比較當(dāng)前延時(shí)參數(shù)Current_delay與期望延時(shí)參數(shù)Target_delay的大小:如果當(dāng)前延時(shí)參數(shù)Current_delay小于期望延時(shí)參數(shù)Target_delay,則表明抖動(dòng)緩存中數(shù)據(jù)不夠,則抖動(dòng)緩存繼續(xù)接收語音數(shù)據(jù)包;如果當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay,則解碼并取出播放語音數(shù)據(jù)包,抖動(dòng)緩存狀態(tài)切換為Working_state狀態(tài);當(dāng)出現(xiàn)異常情況時(shí),抖動(dòng)緩存狀態(tài)切換為Waiting_state狀態(tài)。
[0032]所述抖動(dòng)緩存中的語音數(shù)據(jù)包為從遠(yuǎn)端接收到的按序列號(hào)升序排列、間隔為I的編碼后的語音數(shù)據(jù)包序列的組成部分,判斷數(shù)據(jù)包的序列號(hào)是否連續(xù),如不連續(xù),則發(fā)生丟包情形,其中導(dǎo)致不連續(xù)的序號(hào)的數(shù)據(jù)包即為丟失的數(shù)據(jù)包,此時(shí)重傳丟失的數(shù)據(jù)包;在接收語音數(shù)據(jù)包時(shí),判斷是否需要調(diào)大當(dāng)前延時(shí)參數(shù)Current_delay,即比較當(dāng)前延時(shí)參數(shù)Current_delay與當(dāng)前延時(shí)參數(shù)下限參數(shù)Min_Current_delay的大小:如Current_delay小于Min_Current_delay,則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為True,否則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為False。
[0033]在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up的值,如果為True,則在當(dāng)前緩存中插入固定步長的數(shù)據(jù)幀,直到Current_delay大于或等于Target_delay 為止。
[0034]在取出播放語音數(shù)據(jù)包時(shí),如果當(dāng)前延時(shí)參數(shù)Current_delay大于當(dāng)前延時(shí)調(diào)整上限參數(shù)Max_Current_delay,則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置Ture,否則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置False。
[0035]在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down的值,如果為True,則在當(dāng)前緩存中合并固定步長的數(shù)據(jù)幀,直到Current_delay小于或等于Target_delay為止,以達(dá)到對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行自適應(yīng)延時(shí)處理效果。
[0036]根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理過程中的判斷和調(diào)整的速率需要作限制,例如以周期80ms,步長1ms進(jìn)行判斷和調(diào)整。
[0037]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。并且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0038]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
【主權(quán)項(xiàng)】
1.一種語音數(shù)據(jù)延時(shí)處理方法,其特征在于,該方法包括如下步驟: 確定用于表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù); 根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù); 根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。2.根據(jù)權(quán)利要求1所述的語音數(shù)據(jù)延時(shí)處理方法,其特征在于,所述表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)進(jìn)行周期性統(tǒng)計(jì),其中: 原始網(wǎng)絡(luò)丟包率為每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的網(wǎng)絡(luò)丟包率,原始網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100% ; 重傳后網(wǎng)絡(luò)丟包率為每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的網(wǎng)絡(luò)丟包率,重傳后網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100% ; 重傳數(shù)據(jù)包中遲到包所占比率為每個(gè)統(tǒng)計(jì)周期內(nèi)重傳到達(dá)的數(shù)據(jù)包中,晚于播放時(shí)刻到達(dá)的重傳包數(shù)量占所有重傳包數(shù)量的比率,重傳數(shù)據(jù)包中遲到包所占比率=(每個(gè)統(tǒng)計(jì)周期內(nèi)晚于播放時(shí)刻到達(dá)的重傳數(shù)據(jù)包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)總的重傳數(shù)據(jù)包數(shù)量)*100%; 最大抖動(dòng)幅度參數(shù)為每個(gè)統(tǒng)計(jì)周期內(nèi)相鄰數(shù)據(jù)包時(shí)間間隔的最大值,單位為ms。3.根據(jù)權(quán)利要求2所述的語音數(shù)據(jù)延時(shí)處理方法,其特征在于,所述根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),包括: 如果原始丟包率小于原始丟包率閾值,并且重傳數(shù)據(jù)包中遲到包所占比率小于重傳數(shù)據(jù)包中遲到包所占比率閾值I,則按固定步長調(diào)小期望延時(shí)參數(shù)Tar ge t_de I ay,此時(shí)如果期望延時(shí)參數(shù)Target_delay小于期望延時(shí)調(diào)整下限參數(shù)Min_Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整下限參數(shù)Min_Target_delay ; 如果重傳后網(wǎng)絡(luò)丟包率小于原始網(wǎng)絡(luò)丟包率,并且重傳數(shù)據(jù)包中遲到包所占比率大于重傳數(shù)據(jù)包中遲到包所占比率閾值2,則按固定步長調(diào)大期望延時(shí)參數(shù)Target_delay,此時(shí)如果期望延時(shí)參數(shù)Target_delay大于期望延時(shí)調(diào)整上限參數(shù)Max_Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整上限參數(shù)Max_Target_delay ; 如果數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)大于期望延時(shí)參數(shù)Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為最大抖動(dòng)幅度參數(shù)*1.2。4.根據(jù)權(quán)利要求3所述的語音數(shù)據(jù)延時(shí)處理方法,其特征在于,根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理,包括: 周期性判斷抖動(dòng)緩存狀態(tài),當(dāng)抖動(dòng)緩存狀態(tài)為Waiting_state狀態(tài)時(shí),則比較當(dāng)前延時(shí)參數(shù)Current_delay與期望延時(shí)參數(shù)Target_delay的大小:如果當(dāng)前延時(shí)參數(shù)Current_delay小于期望延時(shí)參數(shù)Target_delay,則表明抖動(dòng)緩存中數(shù)據(jù)不夠,則抖動(dòng)緩存繼續(xù)接收語音數(shù)據(jù)包;如果當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay,則解碼并取出播放語音數(shù)據(jù)包,抖動(dòng)緩存狀態(tài)切換為Working_state狀態(tài);當(dāng)出現(xiàn)異常情況時(shí),抖動(dòng)緩存狀態(tài)切換為Waiting_state狀態(tài); 所述抖動(dòng)緩存中的語音數(shù)據(jù)包為從遠(yuǎn)端接收到的按序列號(hào)升序排列、間隔為I的編碼后的語音數(shù)據(jù)包序列的組成部分,判斷數(shù)據(jù)包的序列號(hào)是否連續(xù),如不連續(xù),則發(fā)生丟包情形,其中導(dǎo)致不連續(xù)的序號(hào)的數(shù)據(jù)包即為丟失的數(shù)據(jù)包,此時(shí)重傳丟失的數(shù)據(jù)包;在接收語音數(shù)據(jù)包時(shí),判斷是否需要調(diào)大當(dāng)前延時(shí)參數(shù)Current_delay,即比較當(dāng)前延時(shí)參數(shù)Current_delay與當(dāng)前延時(shí)參數(shù)下限參數(shù)Min_Current_delay的大小:如Current_delay小于Min_Current_delay,則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為True,否則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為False ; 在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up的值,如果為True,則在當(dāng)前緩存中插入固定步長的數(shù)據(jù)幀,直到當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay為止; 在取出播放語音數(shù)據(jù)包時(shí),如果當(dāng)前延時(shí)參數(shù)Current_delay大于當(dāng)前延時(shí)調(diào)整上限參數(shù)Max_Current_delay,則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置Ture,否則將調(diào)小延時(shí)標(biāo)記參數(shù) Need_turn_down 置 False ; 在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down的值,如果為True,貝Ij在當(dāng)前緩存中合并固定步長的數(shù)據(jù)幀,直到當(dāng)前延時(shí)參數(shù)Current_delay小于或等于目標(biāo)延時(shí)參數(shù)Target_delay為止。5.根據(jù)權(quán)利要求4所述的語音數(shù)據(jù)延時(shí)處理方法,其特征在于,所述異常情況包括: 新接收的數(shù)據(jù)包序列號(hào)與緩存中的數(shù)據(jù)包序列號(hào)相差超過200 ; 抖動(dòng)緩存的當(dāng)前延時(shí)參數(shù)Curr ent_de I ay小于五分之一的目標(biāo)延時(shí)參數(shù)T arget_delay ; 抖動(dòng)緩存的當(dāng)前延時(shí)參數(shù)Current_delay大于二倍的目標(biāo)延時(shí)參數(shù)Target_delay。6.本發(fā)明實(shí)施例提供一種語音數(shù)據(jù)延時(shí)處理裝置,其特征在于,該裝置包括: 網(wǎng)絡(luò)狀況確定單元,用于確定表示當(dāng)前網(wǎng)絡(luò)狀況的原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù); 抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù)調(diào)整單元,用于根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù); 抖動(dòng)緩存中數(shù)據(jù)包延時(shí)處理單元,用于根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理。7.根據(jù)權(quán)利要求6所述的語音數(shù)據(jù)延時(shí)處理裝置,其特征在于,所述網(wǎng)絡(luò)狀況確定單元,用于對(duì)原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)進(jìn)行周期性統(tǒng)計(jì),其中: 原始網(wǎng)絡(luò)丟包率為每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的網(wǎng)絡(luò)丟包率,原始網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況前的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100% ; 重傳后網(wǎng)絡(luò)丟包率為每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的網(wǎng)絡(luò)丟包率,重傳后網(wǎng)絡(luò)丟包率=(每個(gè)統(tǒng)計(jì)周期內(nèi)發(fā)生丟包重傳情況后的丟包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)的總數(shù)據(jù)包數(shù)量)*100% ; 重傳數(shù)據(jù)包中遲到包所占比率為每個(gè)統(tǒng)計(jì)周期內(nèi)重傳到達(dá)的數(shù)據(jù)包中,晚于播放時(shí)刻到達(dá)的重傳包數(shù)量占所有重傳包數(shù)量的比率,重傳數(shù)據(jù)包中遲到包所占比率=(每個(gè)統(tǒng)計(jì)周期內(nèi)晚于播放時(shí)刻到達(dá)的重傳數(shù)據(jù)包數(shù)量/每個(gè)統(tǒng)計(jì)周期內(nèi)總的重傳數(shù)據(jù)包數(shù)量)*100%;最大抖動(dòng)幅度參數(shù)為每個(gè)統(tǒng)計(jì)周期內(nèi)相鄰數(shù)據(jù)包時(shí)間間隔的最大值,單位為ms。8.根據(jù)權(quán)利要求7所述的語音數(shù)據(jù)延時(shí)處理裝置,其特征在于,所述抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù)調(diào)整單元,用于根據(jù)當(dāng)前原始網(wǎng)絡(luò)丟包率參數(shù)、重傳后網(wǎng)絡(luò)丟包率參數(shù)、重傳數(shù)據(jù)包中遲到包所占比率參數(shù)、數(shù)據(jù)包最大抖動(dòng)幅度參數(shù),調(diào)整目標(biāo)延時(shí)參數(shù),包括: 如果原始丟包率小于原始丟包率閾值,并且重傳數(shù)據(jù)包中遲到包所占比率小于重傳數(shù)據(jù)包中遲到包所占比率閾值I,則按固定步長調(diào)小期望延時(shí)參數(shù)Tar ge t_de I ay,此時(shí)如果期望延時(shí)參數(shù)Target_delay小于期望延時(shí)調(diào)整下限參數(shù)Min_Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整下限參數(shù)Min_Target_delay ; 如果重傳后網(wǎng)絡(luò)丟包率小于原始網(wǎng)絡(luò)丟包率,并且重傳數(shù)據(jù)包中遲到包所占比率大于重傳數(shù)據(jù)包中遲到包所占比率閾值2,則按固定步長調(diào)大期望延時(shí)參數(shù)Target_delay,此時(shí)如果期望延時(shí)參數(shù)Target_delay大于期望延時(shí)調(diào)整上限參數(shù)Max_Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為期望延時(shí)調(diào)整上限參數(shù)Max_Target_delay ; 如果數(shù)據(jù)包最大抖動(dòng)幅度參數(shù)大于期望延時(shí)參數(shù)Target_delay,則將期望延時(shí)參數(shù)Target_delay調(diào)整為最大抖動(dòng)幅度參數(shù)*1.2。9.根據(jù)權(quán)利要求8所述的語音數(shù)據(jù)延時(shí)處理裝置,其特征在于,所述抖動(dòng)緩存中數(shù)據(jù)包延時(shí)處理單元,用于根據(jù)調(diào)整后的抖動(dòng)緩存的目標(biāo)延時(shí)參數(shù),對(duì)抖動(dòng)緩存中的數(shù)據(jù)包進(jìn)行延時(shí)處理,包括: 周期性判斷抖動(dòng)緩存狀態(tài),當(dāng)抖動(dòng)緩存狀態(tài)為Waiting_state狀態(tài)時(shí),則比較當(dāng)前延時(shí)參數(shù)Current_delay與期望延時(shí)參數(shù)Target_delay的大小:如果當(dāng)前延時(shí)參數(shù)Current_delay小于期望延時(shí)參數(shù)Target_delay,則表明抖動(dòng)緩存中數(shù)據(jù)不夠,則抖動(dòng)緩存繼續(xù)接收語音數(shù)據(jù)包;如果當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay,則解碼并取出播放語音數(shù)據(jù)包,抖動(dòng)緩存狀態(tài)切換為Working_state狀態(tài);當(dāng)出現(xiàn)異常情況時(shí),抖動(dòng)緩存狀態(tài)切換為Waiting_state狀態(tài); 所述抖動(dòng)緩存中的語音數(shù)據(jù)包為從遠(yuǎn)端接收到的按序列號(hào)升序排列、間隔為I的編碼后的語音數(shù)據(jù)包序列的組成部分,判斷數(shù)據(jù)包的序列號(hào)是否連續(xù),如不連續(xù),則發(fā)生丟包情形,其中導(dǎo)致不連續(xù)的序號(hào)的數(shù)據(jù)包即為丟失的數(shù)據(jù)包,此時(shí)重傳丟失的數(shù)據(jù)包;在接收語音數(shù)據(jù)包時(shí),判斷是否需要調(diào)大當(dāng)前延時(shí)參數(shù)Current_delay,即比較當(dāng)前延時(shí)參數(shù)Current_delay與當(dāng)前延時(shí)參數(shù)下限參數(shù)Min_Current_delay的大小:如Current_delay小于Min_Current_delay,則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為True,否則將調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up置為False ; 在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)大延時(shí)標(biāo)記參數(shù)Need_turn_up的值,如果為True,則在當(dāng)前緩存中插入固定步長的數(shù)據(jù)幀,直到當(dāng)前延時(shí)參數(shù)Current_delay大于或等于期望延時(shí)參數(shù)Target_delay為止; 在取出播放語音數(shù)據(jù)包時(shí),如果當(dāng)前延時(shí)參數(shù)Current_delay大于當(dāng)前延時(shí)調(diào)整上限參數(shù)Max_Current_delay,則將調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down置Ture,否則將調(diào)小延時(shí)標(biāo)記參數(shù) Need_turn_down 置 False ; 在取出播放語音數(shù)據(jù)包時(shí),周期性判斷調(diào)小延時(shí)標(biāo)記參數(shù)Need_turn_down的值,如果為True,貝Ij在當(dāng)前緩存中合并固定步長的數(shù)據(jù)幀,直到當(dāng)前延時(shí)參數(shù)Current_delay小于或等于目標(biāo)延時(shí)參數(shù)Target_delay為止。10.根據(jù)權(quán)利要求9所述的語音數(shù)據(jù)延時(shí)處理裝置,其特征在于,所述異常情況包括: 新接收的數(shù)據(jù)包序列號(hào)與緩存中的最大序列號(hào)數(shù)據(jù)包的序列號(hào)相差超過200 ; 抖動(dòng)緩存的當(dāng)前延時(shí)參數(shù)Curr ent_de I ay小于五分之一的目標(biāo)延時(shí)參數(shù)T arget_delay ; 抖動(dòng)緩存的當(dāng)前延時(shí)參數(shù)Current_delay大于二倍的目標(biāo)延時(shí)參數(shù)Target_delay。
【文檔編號(hào)】H04M7/00GK105991476SQ201510043932
【公開日】2016年10月5日
【申請(qǐng)日】2015年1月29日
【發(fā)明人】李煉, 楊福強(qiáng)
【申請(qǐng)人】滬江教育科技(上海)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
朝阳市| 成都市| 延长县| 子洲县| 高安市| 南华县| 昌宁县| 怀柔区| 吴堡县| 诸暨市| 太白县| 永昌县| 遂平县| 即墨市| 秀山| 偏关县| 外汇| 桐庐县| 崇信县| 巢湖市| 个旧市| 衢州市| 荥阳市| 闽清县| 讷河市| 营口市| 晋城| 湾仔区| 册亨县| 兰考县| 交城县| 四平市| 长治县| 汉源县| 云阳县| 长乐市| 辽阳县| 清河县| 萝北县| 灌南县| 井冈山市|