基于冗余的包发射错误恢复的系统和方法转让专利

申请号 : CN201580038984.5

文献号 : CN106537831B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 文卡特什·克里希南维韦克·拉金德朗桑迪普·萨卡尔苏巴辛格哈·夏敏达·苏巴辛格哈芬卡特拉曼·S·阿提

申请人 : 高通股份有限公司

摘要 :

一种装置包含接收器、缓冲器、发射器和分析器。所述接收器经配置以接收对应于一序列的包的至少一个子集的多个包。所述多个包中的第一包的错误校正数据包含所述多个包中的第二包的部分副本。所述分析器经配置以确定所述序列的特定包是否从所述缓冲器缺失,且确定所述特定包的部分副本是否存储在所述缓冲器中。所述分析器还经配置以至少部分地基于确定所述缓冲器未存储所述特定包,且所述缓冲器未存储所述特定包的部分副本,而经由所述发射器将重传消息发送到第二装置。

权利要求 :

1.一种基于冗余的包发射错误恢复的装置,其包括:接收器,其经配置以接收多个包,所述多个包对应于一序列的包的至少一个子集,其中所述多个包包含错误校正数据,且其中所述多个包中的第一包的所述错误校正数据包含所述多个包中的第二包的部分副本;

缓冲器,其经配置以存储所述多个包;

发射器;以及

分析器,其经配置以:

确定所述序列的包中的所述第一包是否从所述缓冲器缺失;

确定所述第一包的部分副本是否作为所述序列的包中的第二包中的错误校正数据存储在所述缓冲器中,所述第一包和所述第二包分别对应于音频信号的第一帧和第二帧;以及基于确定所述缓冲器并不存储所述第一包,且所述缓冲器并不存储所述第一包的所述部分副本,经由所述发射器,将重传消息发送到第二装置。

2.根据权利要求1所述的装置,其中所述重传消息请求所述第一包的重传。

3.根据权利要求1所述的装置,其中所述接收器和所述发射器包含于收发器中。

4.根据权利要求1所述的装置,其中响应于确定所述缓冲器并不存储所述第一包,所述缓冲器并不存储所述第一包的所述部分副本,且重传计数满足重传阈值,将所述重传消息发送到所述第二装置,且其中所述分析器进一步经配置以在将所述重传消息发送到所述第二装置之后,更新所述重传计数。

5.根据权利要求4所述的装置,其中所述分析器进一步经配置以基于确定所述第一包是否从所述缓冲器缺失,以及所述第一包的所述部分副本是否存储在所述缓冲器中,更新所述重传阈值。

6.根据权利要求4所述的装置,其中所述分析器进一步经配置以:响应于确定所述第一包从所述缓冲器缺失,且所述第一包的所述部分副本存储在所述缓冲器中,更新检索到的部分副本的计数;以及基于检索到的部分副本的所述计数来更新所述重传阈值。

7.根据权利要求6所述的装置,其中所述分析器进一步经配置以响应于确定所述缓冲器并不存储所述第一包,且并不存储所述第一包的所述部分副本,而更新丢失包的计数,且其中基于丢失包的所述计数来更新所述重传阈值。

8.根据权利要求7所述的装置,其中所述分析器进一步经配置以基于检索到的部分副本的所述计数和丢失包的所述计数来确定结果值,且其中响应于确定所述结果值满足递增阈值,使所述重传阈值增加递增量。

9.根据权利要求7所述的装置,其中所述分析器进一步经配置以基于检索到的部分副本的所述计数和丢失包的所述计数来确定结果值,且其中响应于确定所述结果值满足递减阈值,使所述重传阈值减小递减量。

10.根据权利要求7所述的装置,其中所述分析器进一步经配置以:通过使检索到的部分副本的所述计数乘以质量度量来产生经加权值;以及基于丢失包的所述计数与所述经加权值的总和来确定结果值,其中基于确定所述结果值是否满足阈值来更新所述重传阈值。

11.一种基于冗余的包发射错误恢复的方法,其包括:在装置处接收多个包,所述多个包对应于一序列的包的至少一个子集,其中所述多个包包含错误校正数据,且

其中所述多个包中的第一包的所述错误校正数据包含所述多个包中的第二包的部分副本;

在所述装置处确定所述序列的包中的所述第一包是否从缓冲器缺失;

在所述装置处确定所述第一包的部分副本是否作为所述序列的包中的第二包中的错误校正数据存储在所述缓冲器中,所述第一包和所述第二包分别对应于音频信号的第一帧和第二帧;以及基于确定所述缓冲器并不存储所述第一包,且所述缓冲器并不存储所述第一包的所述部分副本,将重传消息从所述装置发送到第二装置。

12.根据权利要求11所述的方法,其中响应于确定所述缓冲器并不存储所述第一包,所述缓冲器并不存储所述第一包的所述部分副本,且重传计数满足重传阈值,将所述重传消息从所述装置发送到所述第二装置。

13.根据权利要求12所述的方法,其进一步包括:在将所述重传消息发送到所述第二装置之后,在所述装置处更新所述重传计数;以及基于确定所述第一包是否从所述缓冲器缺失,且所述第一包的所述部分副本是否存储在所述缓冲器中,在所述装置处更新所述重传阈值。

14.根据权利要求12所述的方法,其进一步包括:响应于确定所述第一包从所述缓冲器缺失,且所述第一包的所述部分副本存储在所述缓冲器中,在所述装置处更新检索到的部分副本的计数;

响应于确定所述缓冲器并不存储所述第一包,且并不存储所述第一包的所述部分副本,在所述装置处更新丢失包的计数;以及基于检索到的部分副本的所述计数和丢失包的所述计数来更新所述重传阈值。

15.根据权利要求14所述的方法,其进一步包括:通过使检索到的部分副本的所述计数乘以质量度量来确定经加权值;以及基于丢失包的所述计数与所述经加权值的总和来确定结果值,其中响应于确定所述结果值满足递增阈值,使所述重传阈值增加递增量。

16.根据权利要求15所述的方法,其进一步包括基于所述结果值与所述递增阈值之间的差来确定所述递增量。

17.根据权利要求14所述的方法,其进一步包括:通过使检索到的部分副本的所述计数乘以质量度量来确定经加权值;以及基于丢失包的所述计数与所述经加权值的总和来确定结果值,其中响应于确定所述结果值满足递减阈值,使所述重传阈值减小递减量。

18.根据权利要求17所述的方法,其进一步包括基于所述结果值与所述递减阈值之间的差来确定所述递减量。

19.一种存储指令的计算机可读存储介质,所述指令在由处理器执行时,致使所述处理器执行包括以下各项的操作:接收多个包,所述多个包对应于一序列的包的至少一个子集,其中所述多个包包含错误校正数据,且

其中所述多个包中的第一包的所述错误校正数据包含所述多个包中的第二包的部分副本;

确定所述序列的包中的所述第一包是否从缓冲器缺失;

确定所述第一包的部分副本是否作为所述序列的包中的第二包中的错误校正数据存储在所述缓冲器中,所述第一包和所述第二包分别对应于音频信号的第一帧和第二帧;以及基于确定所述缓冲器并不存储所述第一包,且所述缓冲器并不存储所述第一包的所述部分副本,将重传消息发送到装置。

20.根据权利要求19所述的计算机可读存储介质,其中所述操作进一步包括响应于确定所述缓冲器存储所述第一包,所述缓冲器存储所述第一包的所述部分副本,重传计数未能满足重传阈值或其组合,制止将所述重传消息发送到所述装置。

21.根据权利要求19所述的计算机可读存储介质,其中响应于确定所述缓冲器并不存储所述第一包,所述缓冲器并不存储所述第一包的所述部分副本,且重传计数满足重传阈值,将所述重传消息发送到所述装置。

22.根据权利要求21所述的计算机可读存储介质,其中所述操作进一步包括基于确定所述第一包是否从所述缓冲器缺失,且所述第一包的所述部分副本是否存储在所述缓冲器中,来更新所述重传阈值,且其中所述第一包包含语音数据。

23.根据权利要求21所述的计算机可读存储介质,其中所述操作进一步包括:响应于确定所述第一包从所述缓冲器缺失,且所述第一包的所述部分副本存储在所述缓冲器中,更新检索到的部分副本的计数;

响应于确定所述缓冲器并不存储所述第一包,且并不存储所述第一包的所述部分副本,更新丢失包的计数;以及基于检索到的部分副本的所述计数和丢失包的所述计数来更新所述重传阈值。

24.根据权利要求23所述的计算机可读存储介质,其中所述操作进一步包括:通过使检索到的部分副本的所述计数乘以质量度量来确定经加权值;以及基于丢失包的所述计数与所述经加权值的总和来确定结果值,其中基于所述结果值来更新所述重传阈值。

25.根据权利要求21所述的计算机可读存储介质,其中所述操作进一步包括:基于所述第一包是否从所述缓冲器缺失,且所述第一包的所述部分副本是否存储在所述缓冲器中,来确定结果值;以及响应于确定所述结果值满足递增阈值:

基于所述结果值与所述递增阈值之间的差来确定递增量;以及基于所述递增量来增加所述重传阈值。

26.根据权利要求21所述的计算机可读存储介质,其中所述操作进一步包括:基于所述第一包是否从所述缓冲器缺失,且所述第一包的所述部分副本是否存储在所述缓冲器中,来确定结果值;以及响应于确定所述结果值满足递减阈值,基于递减量来减小所述重传阈值。

27.根据权利要求26所述的计算机可读存储介质,其中所述操作进一步包括基于所述结果值与所述递减阈值之间的差来确定所述递减量。

28.根据权利要求19所述的计算机可读存储介质,其中所述第二包在所述序列的包中比所述第一包早。

29.一种基于冗余的包发射错误恢复的设备,包括:用于接收多个包的装置,所述多个包对应于一序列的包的至少一个子集,其中所述多个包包含错误校正数据,且其中所述多个包中的第一包的所述错误校正数据包含所述多个包中的第二包的部分副本;以及用于错误恢复的装置,所述用于错误恢复的装置经配置以:确定所述序列的包中的所述第一包是否从缓冲器缺失;

确定所述第一包的部分副本是否作为所述序列的包中的第二包中的错误校正数据存储在所述缓冲器中,所述第一包和所述第二包分别对应于音频信号的第一帧和第二帧;以及基于确定所述缓冲器并不存储所述第一包,且所述缓冲器并不存储所述第一包的所述部分副本,将重传消息发送到第二装置。

30.根据权利要求29所述的设备,其中所述用于接收的装置和所述用于错误恢复的装置集成到解码器、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA或计算机中。

说明书 :

基于冗余的包发射错误恢复的系统和方法

[0001] 相关申请案的交叉参考
[0002] 本申请案主张2014年7月31日申请的标题为“基于冗余的包发射错误恢复的系统和方法(SYSTEM AND METHOD OF REDUNDANCY BASED PACKET TRANSMISSION ERROR RECOVERY)”的第62/031,675号美国临时专利申请案的优先权,所述申请案的内容以全文引用的方式并入本文中。

技术领域

[0003] 本发明大体上涉及基于冗余的包发射错误恢复。

背景技术

[0004] 技术的进步已经产生了更小且更强大的计算装置。举例来说,当前存在各种便携式个人计算装置,包括无线计算装置,例如较小、轻重量且易于由用户携带的便携式无线电话、个人数字助理(PDA)和寻呼装置。更具体地说,便携式无线电话,例如蜂窝电话和因特网协议(IP)电话,可经由无线网络传送话音和数据包。另外,许多此类无线电话包括并入其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字摄像机、数字记录器和音频文件播放器。并且,此类无线电话可处理可执行指令,包含软件应用程序,例如可用以接入因特网的网络浏览器应用程序。由此,这些无线电话可包含大量计算能力。
[0005] 通过数字技术发射话音是普遍的,尤其在长距离和数字无线电电话应用中。可存在确定对可经由信道发送的最少量的信息同时维持经重构语音的感知质量的关注。如果通过取样和数字化来发射语音,那么可使用约六十四千位每秒(kbps)的数据速率来实现模拟电话的语音品质。通过在接收器处使用语音分析,接着译码、发射和重新合成,可实现数据速率的显著减小。
[0006] 用于压缩语音的裝置可用于许多电信领域中。示范性领域为无线通信。无线通信的领域具有许多应用,包括(例如)无绳电话、寻呼、无线本地回路、例如蜂窝式和个人通信服务(PCS)电话系统的无线电话、移动因特网协议(IP)电话和卫星通信系统。特定应用是用于移动订户的无线电话。
[0007] 已开发用于无线通信系统的各种空中接口,包括(例如)频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)以及时分同步CDMA(TD-SCDMA)。在与其的连接中,已经建立各种国内和国际标准,包含例如高级移动电话服务(AMPS)、全球移动通信系统(GSM)和过渡标准95(IS-95)。示范性无线电话通信系统为码分多址(CDMA)系统。IS-95标准及其衍生标准、IS-95A、ANSI J-STD-008和IS-95B(本文中共同称作IS-95)由电信行业协会(TIA)和其它公认标准机构颁布以指定CDMA空中接口针对蜂窝式或PCS电话通信系统的使用。
[0008] IS-95标准随后演进成例如cdma2000和WCDMA的“3G”系统,所述“3G”系统提供更大容量和高速包数据服务。cdma2000的两个变体由TIA发布的文献IS-2000(cdma2000 1xRTT)和IS-856(cdma2000 1xEV-DO)呈现。cdma2000 1xRTT通信系统提供153kbps的峰值数据速率,而cdma2000 1xEV-DO通信系统定义范围介于38.4kbps到2.4Mbps的一组数据速率。WCDMA标准实施于第三代合作伙伴计划“3GPP”文献第3G TS 25.211号、第3G TS 25.212号、第3G TS 25.213号以及第3G TS 25.214号中。国际移动电信高级(IMT-高级)规范陈述“4G”标准。对于高移动性通信(例如,来自火车和汽车),高级IMT规范设定100兆位/秒(Mbit/s)的峰值数据速率用于4G服务,且对于低移动性通信(例如,来自行人和静止用户),高级IMT规范设定1千兆位/秒(Gbit/s)的峰值数据速率用于4G服务。
[0009] 使用通过提取关于人类语音生成模型的参数来压缩语音的技术的裝置被称为语音译码器。语音译码器可包括编码器和解码器。编码器将传入语音信号划分成时间块或分析帧。可将每一时间区段(或“帧”)的持续时间选择为足够短,使得可预期信号的频谱包络保持相对固定。举例来说,一个帧长度为二十毫秒,其对应于八千赫兹(kHz)取样速率下的160个样本,不过可使用认为适用于特定应用的任何帧长度或取样速率。
[0010] 编码器分析传入语音帧以提取某些相关参数,且随后将所述参数量化成二进制表示(例如,一组位或二进制数据包)。数据包通过通信信道(即,有线和/或无线网络连接)发射到接收器和解码器。解码器处理所述数据包、去量化经处理的数据包以产生参数,并使用经去量化参数来重新合成语音帧。
[0011] 语音译码器的功能是通过去除语音中固有的自然冗余来将经数字化的语音信号压缩成低位速率信号。可通过用一组参数表示输入语音帧且使用量化来用一组位表示所述参数来实现数字压缩。如果输入语音帧具有位数目Ni,且语音译码器产生的数据包具有位数目No,那么语音译码器所实现的压缩因子是Cr=Ni/No。挑战是在实现目标压缩因子时保留经解码语音的高话音质量。语音译码器的性能取决于:(1)语音模型或上文所描述的分析和合成过程的组合执行得多好,以及(2)在No位每帧的目标位速率下参数量化过程执行得多好。因此,语音模型的目标是在每一帧具有较小一组参数的情况下,捕获语音信号的本质或目标语音质量。
[0012] 语音译码器通常利用一组参数(包含向量)来描述语音信号。良好的一组参数为感知上准确的语音信号的重构理想地提供低系统带宽。音调、信号功率、谱包络(或共振峰)、振幅和相谱是语音译码参数的实例。
[0013] 语音译码器可实施为时域译码器,其试图通过利用高时间分辨率处理一次编码较小语音片段(例如,5毫秒(ms)的子帧)来捕获时域语音波形。对于每一子帧,借助于搜索算法来找出来自码簿空间的高精度代表。或者,语音译码器可实施为频域译码器,其试图用一组参数(分析)来捕获输入语音帧的短期语音谱,并利用对应的合成过程来从谱参数再造语音波形。参数量化器通过根据已知量化技术用代码向量的所存储表示来表示参数而保留所述参数。
[0014] 一种时域语音译码器是代码激发线性预测性(CELP)译码器。在CELP译码器中,通过找出短期共振峰滤波器的系数的线性预测(LP)分析来去除语音信号中的短期相关性或冗余。将短期预测滤波器应用于传入语音帧产生LP残差信号,用长期预测滤波器参数和后续随机码簿对所述LP残差信号进行进一步模型化和量化。因此,CELP译码将编码时域语音波形的任务划分成编码LP短期滤波器系数和编码LP残差的单独任务。可以固定速率(即,针对每一帧使用相同位数No)或以可变速率(其中针对不同类型的帧内容使用不同的位速率)执行时域译码。可变速率译码器尝试使用将编解码器参数编码到足以获得目标质量的层级所需要的位的量。
[0015] 例如CELP译码器等时域译码器可依靠每帧的高位数N0来保留时域语音波形的准确性。假如每帧的位数No相对较大(例如,8kbps或更高),那么此类译码器可传递极好的话音质量。在低位速率(例如,4kbps和更低)时,归因于受限的可用位数,时域译码器可能无法保持高质量和稳健性能。在低位速率下,受限码簿空间削减在较高速率商业应用中所部署的时域译码器的波形匹配能力。因此,尽管随着时间推移在改进,但以低位速率操作的许多CELP译码系统经受表征为噪声的感知上显著的失真。
[0016] 低位速率下的CELP译码器的替代方案是“噪声激发线性预测性”(NELP)译码器,其在与CELP译码器类似的原理下操作。NELP译码器使用经滤波伪随机噪声信号而非码簿来模型化语音。由于NELP针对经译码语音使用较简单的模型,因此NELP实现比CELP低的位速率。NELP可用于压缩或表示无声语音或静默。
[0017] 以约2.4kbps的速率操作的译码系统在本质上大体上是参数性的。就是说,此类译码系统通过以规则间隔发射描述语音信号的音调周期和谱包络(或共振峰)的参数来操作。LP声码器系统对于这些所谓的参数性译码器具说明性。
[0018] LP声码器以每音调周期单个脉冲来模型化有声语音信号。此基本技术可经扩增以包含发射关于谱包络的信息等等。尽管LP声码器一般来说提供合理的性能,但它们可能引入表征为蜂音的感知上相当大的失真。
[0019] 近年来,已出现了作为波形译码器和参数译码器两者的混合的译码器。这些混合译码器中的说明性混合译码器是原型波形内插(PWI)语音译码系统。PWI语音译码系统还可被称为原型音调周期(PPP)语音译码器。PWI语音译码系统提供用于译码有声语音的高效方法。PWI的基本概念是以固定间隔提取代表性音调循环(原型波形),发射其描述,以及通过原型波形之间的内插来重构语音信号。PWI方法可对LP残差信号或所述语音信号操作。
[0020] 例如无线电话等电子装置可经由网络发送和接收数据。举例来说,可经由电路交换网络(例如,公共交换电话网络(PSTN)、全球移动通信系统(GSM)网络等)或包交换网络(例如,因特网协议话音(VoIP)网络、长期演进话音(VoLTE)网络等)发送和接收音频数据。在包交换网络中,音频包可个别地从源装置投送到目的地装置。由于网络条件,音频包可能无序地到达。目的地装置可在去抖动缓冲器中存储接收到的包,并且如果接收到的包是无次序的,那么可重新布置接收到的包。
[0021] 目的地装置可基于接收到的包来重构数据。由源装置发送的特定包可能不会被目的地装置接收到,或可能被目的地装置错误地接收到。目的地装置可能不能够恢复与特定包相关联的数据的全部或一部分。目的地装置可基于不完整的包来重构数据。基于不完整的包重构的数据可能具有不利地影响用户体验的降级的质量。替代地,目的地装置可请求源装置重传特定包并且在等待接收重传的包的同时可延迟重构所述数据。与请求重传和基于重传的包来重构数据相关联的延迟可能是用户可察觉的并且可能引起负面的用户体验。

发明内容

[0022] 在特定方面,一种装置包含接收器、缓冲器、发射器和分析器。所述接收器经配置以接收多个包。所述多个包对应于一连串包的至少一个子集。所述多个包包含错误校正数据。所述多个包中的第一包的错误校正数据包含所述多个包中的第二包的部分副本。所述缓冲器经配置以存储所述多个包。所述分析器经配置以确定所述序列的包中的特定包是否从所述缓冲器缺失,且确定所述特定包的部分副本是否作为另一包中的错误校正数据存储在所述缓冲器中。所述分析器还经配置以至少部分地基于确定所述缓冲器未存储所述特定包,且所述缓冲器未存储所述特定包的部分副本,而经由所述发射器将重传消息发送到第二装置。
[0023] 在另一特定的方面中,一种通信方法包含在装置处接收多个包,所述多个包对应于一连串包的至少一个子集。所述多个包包含错误校正数据。所述多个包中的第一包的错误校正数据包含所述多个包中的第二包的部分副本。所述方法还包含在所述装置处确定所述序列的包中的特定包是否从缓冲器缺失。所述方法进一步包含在所述装置处确定所述特定包的部分副本是否作为另一包中的错误校正数据存储在所述缓冲器中。所述方法还包含:至少部分地基于确定所述缓冲器未存储所述特定包,且所述缓冲器未存储所述特定包的部分副本,而将重传消息从所述装置发送到第二装置。
[0024] 在另一特定的方面中,一种计算机可读存储装置存储指令,所述指令在由处理器执行时,致使所述处理器执行操作,包含接收多个包。所述多个包对应于一连串包的至少一个子集。所述多个包包含错误校正数据。所述多个包中的第一包的错误校正数据包含所述多个包中的第二包的部分副本。所述操作还包含确定所述序列的包中的特定包是否从缓冲器缺失。所述操作进一步包含确定所述特定包的部分副本是否作为另一包中的错误校正数据存储在所述缓冲器中。所述操作还包含至少部分地基于确定所述缓冲器未存储所述特定包,且所述缓冲器未存储所述特定包的部分副本,而将重传消息发送到装置。
[0025] 本发明的其它方面、优点和特征将在审阅全部申请案之后变得显而易见,所述全部申请案包含以下章节:附图说明、具体实施方式和权利要求书。

附图说明

[0026] 图1是可操作以执行基于冗余的包发射错误恢复的系统的特定说明性方面的框图;
[0027] 图2是基于冗余的包发射错误恢复的方法的特定的方面的图;
[0028] 图3是基于冗余的包发射错误恢复的方法的另一特定方面的图;
[0029] 图4是基于冗余的包发射错误恢复的方法的另一特定的方面的图,且可对应于图3的302;
[0030] 图5是可操作以执行基于冗余的包发射错误恢复的系统的另一特定方面的图;
[0031] 图6是说明基于冗余的包发射错误恢复的特定方法的流程图;
[0032] 图7是说明基于冗余的包发射错误恢复的另一特定方法的流程图;
[0033] 图8是说明基于冗余的包发射错误恢复的另一特定方法的流程图;以及
[0034] 图9是可操作以执行基于冗余的包发射错误恢复的装置的特定说明性方面的框图。

具体实施方式

[0035] 本文中描述的原理可例如应用于头戴式耳机、手机、其它音频装置或经配置以执行基于冗余的包传输错误恢复的装置的组件。除非通过其上下文明确限制,否则在本文中使用术语“信号”来指示其一般含义中的任一者,包含如在导线、总线或其它传输媒体上表达的存储器位置的状态(或存储器位置的集合)。除非通过其上下文明确地限制,否则在本文中使用术语“产生”来指示其一般含义中的任一者,例如计算或以其它方式产生。除非通过其上下文明确限制,否则在本文中使用术语“计算”来指示其一般含义中的任一者,例如计算、评估、估计,和/或从多个值中选择。除非通过其上下文明确限制,否则在本文中使用术语“获得”来指示其一般含义中的任一者,例如计算、导出、接收(例如从另一组件,块或装置),和/或检索(例如从存储器寄存器或存储元件阵列)。
[0036] 除非通过其上下文明确地限制,否则使用术语“产生”来指示其一般含义中的任一者,例如计算、产生和/或提供。除非通过其上下文明确地限制,否则使用术语“提供”来指示其一般含义中的任一者,例如计算、产生和/或生成。除非通过其上下文明确地限制,否则使用术语“耦合”来指示直接或间接电或物理连接。如果连接是间接的,那么所属领域的技术人员将充分理解,正“耦合”的结构之间可存在其它块或组件。
[0037] 术语“配置”可参考如通过其特定上下文指示的方法、设备/装置和/或系统来使用。在本发明描述和所附权利要求书中使用术语“包括”的情况下,并不排除其它元件或操作。使用术语“基于”(如在“A基于B”中)来指示其一般含义中的任一者,包含情况(i)“至少基于”(例如“A至少基于B”),以及(如果在特定上下文中合适)(ii)“等于”(例如“A等于B”)。在其中A基于B包含至少基于的情况(i)下,此可包含其中A耦合到B的配置。类似地,使用术语“响应于”来指示其普通含义中的任一者,包含“至少响应于”。使用术语“至少一个”来指示其普通含义中的任一者,包含“一或多个”。使用术语“至少两个”来指示其普通含义中的任一者,包含“两个或更多个”。
[0038] 除非特定上下文另有指示,否则术语“设备”与“装置”也通用地且可互换地使用。除非另有指示,否则对具有特定特征的设备的操作的任何揭示内容还明确地希望揭示具有类似特征的方法(且反之亦然),且对根据特定配置的设备的操作的任何揭示内容还明确地希望揭示根据类似配置的方法(且反之亦然)。除非特定上下文另有指示,否则术语“方法”、“过程”、“程序”及“技术”通用地且可互换地使用。术语“元件”和“模块”可用于指示较大配置的一部分。术语“包”可对应于一个或多个帧。通过参考文献的一部分的任何并入也应理解为并入了在所述部分内参考的术语或变量的定义,其中此些定义出现在文献中的其它地方,以及并入了在所并入部分中参考的任何图。
[0039] 如本文所使用,术语“通信装置”是指可用于经由无线通信网路进行话音和/或数据通信的电子装置。通信装置的实例包含蜂窝式电话、个人数字助理(PDA)、手持式裝置、耳机、无线调制解调器、膝上型计算机、个人计算机等。
[0040] 参看图1,揭示了可操作以执行基于冗余的错误恢复的系统的特定说明性方面,且所述系统通常标示为100。系统100可包括目的地装置102,所述目的地装置经由网络190与一个或多个其它装置(例如,源装置104)通信。源装置104可包含麦克风146或可耦合到麦克风146。目的地装置102可包含扬声器142或可耦合到扬声器142。目的地装置102可包含分析器122,其耦合到存储器176或与存储器176通信。目的地装置102可包含接收器124、发射器192、缓冲器126、语音解码器156或其一组合。存储器176可经配置以存储分析数据120。分析数据120可包含检索到的部分副本计数106、损失包的计数114、重传计数154、质量度量128、递增阈值136、递减阈值138、递增量140、递减量150、结果值118、错误恢复参数108或其组合。错误恢复参数108可包含缓冲深度110、重传阈值112或这两者。
[0041] 目的地装置102可包含与在图1中所说明的相比更少或更多的组件。举例来说,目的地装置102可包含一个或多个处理器、一个或多个存储器单元或这两者。目的地装置102可包含连网或分布式计算系统。举例来说,存储器176可为连网或分布式存储器。在特定说明性方面中,目的地装置102可包含通信装置、解码器、智能电话、蜂窝式电话、移动通信装置、膝上型计算机、计算机、平板计算机、个人数字助理(PDA)、机顶盒、视频播放器、娱乐单元、显示装置、电视机、游戏控制台、音乐播放器、收音机、数字视频播放器、数字视频光盘(DVD)播放器、调谐器、相机、导航装置或其一组合。此类装置可包含用户接口(例如,触摸屏、话音辨识能力或其它用户接口能力)。
[0042] 在操作期间,第一用户152可参与与第二用户194的话音呼叫。第一用户152可使用目的地装置102且第二用户194可使用源装置104来进行话音呼叫。在话音呼叫期间,第二用户194可向与源装置104相关联的麦克风146中说话。输入语音信号130可对应于第二用户194说出的词语的一部分、一个词语或多个词语。举例来说,输入语音信号130可包含第一数据164和第二数据166。源装置104可经由麦克风146从第二用户194接收输入语音信号130。
在特定方面,麦克风146可捕获音频信号,并且模/数转换器(ADC)可将所捕获的音频信号从模拟波形转换成由数字音频样本组成的数字波形。数字音频样本可由数字信号处理器处理。增益调整器可通过增加或减小音频信号的振幅电平(例如,模拟波形或数字波形)来调整(例如模拟波形或数字波形的)增益。增益调整器可在模拟或数字域中操作。举例来说,增益调整器可在数字域中操作,且可调整模/数转换器所产生的数字音频样本。在增益调整之后,回声消除器可减少可能已因扬声器的输出进入麦克风146而产生的回声。数字音频样本可由声码器(话音编码器-解码器)“压缩”。回声消除器的输出可耦合到声码器预处理块,例如滤波器、噪声处理器、速率转换器等。声码器的编码器可压缩数字音频样本,并且形成包的序列(例如,第一包132和第二包134)。所述序列的包中的每一者可包含数字音频样本的压缩位的表示。举例来说,第一包132与第二包134相比可在所述序列的包中较早。为了说明,第一包132可包含对应于特定音频帧(例如,音频帧N)的第一数据164,且第二包134可包含对应于后续音频帧(例如,音频帧N+2)的第二数据166。
[0043] 在特定方面中,随后的包(例如,第二包134)还可包含可用于重构前一音频帧(例如,音频帧N)的冗余数据(例如,第一包132的部分副本)。举例来说,第二包134可包含对应于第一数据164的至少一部分的第一部分副本174。在特定方面,冗余数据(例如第一部分副本174)可对应于“关键”语音帧。举例来说,关键语音帧的损失可造成在目的地装置102处产生的处理过的语音信号的音频质量的用户可察觉的降级。
[0044] 在特定方面中,源装置104和目的地装置102可在恒定位速率(例如,每秒13.2千位(kbps))信道上操作。在此方面中,对应于主要数据(例如第二数据166)的主要帧位速率可降低(例如降低到9.6kbps),以适应冗余数据(例如第一部分副本174)。举例来说,恒定位速率的剩余位速率(例如,3.6kbps)可对应于冗余数据。在特定方面中,取决于输入语音信号130的特性,主要帧位速率的降低可在源装置104处执行,以减小对总体语音品质的影响。
[0045] 所述序列的包(例如包132和134)可存储在可与源装置104的处理器共享的存储器中。处理器可为与数字信号处理器通信的控制处理器。
[0046] 源装置104可经由网络190将所述序列的包(例如第一包132、第二包134或这两者)发射到目的地装置102。举例来说,源装置104可包含收发器。收发器可调制某一形式的包序列(例如,其它信息可附加到包132和134)。收发器可在空中经由天线发送经调制的信息。
[0047] 目的地装置102的分析器122可接收所述序列的包中的一或多个包(例如第一包132、第二包134或这两者)。举例来说,目的地装置102的天线可接收包括第一包132、第二包
134或这两者的某一形式的传入包。第一包132、第二包134或这两者可以是在目的地装置
102处“未经”声码器的解码器“压缩的”。未经压缩的波形可被称作经重构的音频样本。经重构的音频样本可通过声码器后处理块来后处理,并且回音消除器可基于经重构的音频样本来去除回声。为清楚起见,声码器的解码器和声码器后处理块可被称为声码器解码器模块。
在一些配置中,可通过分析器122来处理回音消除器的输出。替代地,在其它配置中,可通过分析器122来处理声码器解码器模块的输出。
[0048] 分析器122可将目的地装置102接收到包(例如第一包132、第二包134或这两者)存储在缓冲器126(例如去抖动缓冲器)中。在特定方面中,包可在目的地装置102处无序地接收。如果包是无序的,那么分析器122可以重新排序缓冲器126中的一个或多个包。通过源装置104发送的包的序列中的一个或多个包可能未被目的地装置102接收到或者可能被目的地装置102错误地接收。举例来说,包(例如,第一包132)可能由于丢包而未被接收器124接收到或者可能由于网络条件而被接收器124部分地接收到。
[0049] 分析器122可确定所述序列的包中的特定包是否从缓冲器126缺失。举例来说,缓冲器126中的每个包可包含序号。分析器122可维持分析数据120中的计数(例如,下一个序号)。举例来说,下一序号可具有开始值(例如,0)。分析器122可在处理对应于特定输入信号(例如,输入语音信号130)的每个包之后更新(例如,递增1)下一个序号。在处理对应于特定输入信号(例如,输入语音信号130)的最后一个包之后,分析器122可使下一个序号复位到开始值。
[0050] 分析器122可确定缓冲器126包括具有下一个序号的下一个包(例如,第一包132)。分析器122可至少基于下一个包(例如,第一包132)产生处理过的语音信号。在特定方面中,分析器122可将第一包132提供到语音解码器156,并且语音解码器156可产生处理过的语音信号。分析器122(或语音解码器156)可基于第一包132和第二包134产生处理过的语音信号。处理过的语音信号可对应于第一包132的第一数据164和第二包134的第二数据166。分析器122(或语音解码器156)可经由扬声器142将处理过的语音信号输出到第一用户152。分析器122可更新(例如,递增或复位)下一个序号。
[0051] 分析器122可确定源装置104所发送的所述序列的包中的特定包(例如第一包132)是否从缓冲器126缺失。举例来说,分析器122可基于确定缓冲器126并不存储具有下一个序号的下一个包(例如,第一包132)来确定第一包132缺失。为了说明,分析器122可响应于确定对应于下一个序号的包(例如,第一包132)未在缓冲器126中被发现来确定第一包132缺失。分析器122可确定第一包132的部分副本是否存储在缓冲器126中作为存储在缓冲器126中的另一包(例如,第二包134)中的错误校正数据。举例来说,每个包的标头中的一或多个字段可指示包是否包括错误校正数据并且可指示对应的包。分析器122可检查存储在缓冲器126中的一或多个包(例如,第二包134)的特定字段。举例来说,缓冲器126可存储第二包134。第二包134的标头中的特定字段可指示第二包134包括对应于第一包132的错误校正数据。举例来说,特定字段可指示第一包132的序号。分析器122可基于确定第二包134的特定字段指示第一包132的序号来确定第一包132的部分副本存储在缓冲器126中。分析器122可响应于确定第一包132从缓冲器126缺失并且缓冲器126存储第一包132的部分副本,来更新检索到的部分副本计数106。
[0052] 分析器122可至少基于下一个包(例如,第二包134)产生处理过的语音信号116。举例来说,分析器122可基于第一部分副本174和第二数据166产生处理过的语音信号116。第一部分副本174可包含第一包132的第一数据164的至少一部分。在特定方面中,第一数据164可对应于第一语音帧的第一语音参数。第一部分副本174可包括第一语音参数。在特定方面中,第二数据166可对应于第二语音帧的第二语音参数,并且第一部分副本174可对应于第一语音参数与第二语音参数之间的差值。在此方面中,分析器122可基于第二语音参数和第一部分副本174的总和产生第一语音参数。
[0053] 分析器122可基于第一语音参数产生处理过的语音信号116。将了解,使第一部分副本174作为第二包134中的错误校正数据可使得能够基于特定语音帧的第一语音参数产生处理过的语音信号116,即使当对应于特定语音帧的第一包132从缓冲器126缺失时也是如此。
[0054] 在特定方面中,分析器122可将第一部分副本174、第二包134或第一语音参数提供到语音解码器156,并且语音解码器156可产生处理过的语音信号116。分析器122(或语音解码器156)可经由扬声器142将处理过的语音信号116输出到第一用户152。分析器122可更新(例如,递增或复位)下一个序号。处理过的语音信号116可具有与仅基于第二数据166产生的处理过的语音信号相比更好的音频质量。举例来说,基于第一部分副本174和第二数据166产生的处理过的语音信号116可具有与基于第二数据166且未基于第一数据164(或第一部分副本174)产生的处理过的语音信号相比较少的用户可察觉的伪声。
[0055] 在特定方面中,分析器122可确定第一包132和第二包134从缓冲器126中缺失。举例来说,分析器122可确定第一包132从缓冲器126中缺失,并且缓冲器126并不存储第一包132的部分副本作为另一包中的错误校正数据。为了说明,分析器122可确定第一包132的序号并不通过对应于存储在缓冲器126中的输入语音信号130的任何包的特定字段来指示。分析器122可基于确定第一包132和第二包134从缓冲器126中缺失来更新丢失包的计数114。
在特定方面中,分析器122可更新(例如,递增1)丢失包的计数114以反映第一包132从缓冲器126中缺失,并且缓冲器126并不存储包含第一包132的部分副本的包(例如,第二包134)。
分析器122可更新(例如,递增或复位)下一个序号。
[0056] 如参看图2-3所描述,分析器122可基于丢失包的计数114、检索到的部分副本计数106或这两者来调整错误恢复参数108。举例来说,分析器122可基于丢失包的计数114、检索到的部分副本计数106或这两者确定结果值118。在特定方面中,结果值118可为丢失包的计数114和检索到的部分副本计数106的加权和。在特定方面中,分析器122可基于丢失包的计数114(例如,具有权重1)与经加权值的总和来确定结果值118。分析器122可通过使检索到的部分副本计数106乘以质量度量128来确定经加权值。质量度量128可为默认值、用户提供的值或这两者。质量度量128可对应于指派给检索到的部分副本计数106的权重(例如,大于或等于0且小于或等于1)。
[0057] 在特定方面中,质量度量128可为检索到的部分副本的质量的量度。为了说明,当检索到的部分副本的质量的量度较高时,质量度量128可对应于较低权重。分析器122可基于对应于检索到的部分副本(例如第一部分副本174)的数据(例如语音参数)与从对应于先前音频帧的先前包检索到的先前数据(例如先前语音参数)之间的差异来确定质量的量度。举例来说,分析器122可基于语音参数与满足特定阈值的先前语音参数之间的差异来确定品质的量度。如果检索到的部分副本(例如第一部分副本174)对应于充分不同参数,那么基于检索到的部分副本(例如第一部分副本174)产生处理过的语音信号116可在对应的主要包(例如第一包132)不存储在缓冲器126中时,显著改进处理过的语音信号116的音频质量。
当检索到的部分副本(例如,第一部分副本174)对应于与先前包相比足够不同的参数时,分析器122可确定质量的较高量度。
[0058] 在特定方面中,检索到的部分副本计数106可被指派与丢失包的计数114相比较低的权重。将较低权重指派给检索到的部分副本的计数可使得局部冗余能够降低对应的缺失包对错误恢复参数的调整的影响。将了解,与不具有冗余相比,具有局部冗余可实现较小缓冲器的使用,较少重传请求或这两者。
[0059] 分析器122可基于结果值118调整错误恢复参数108(例如,缓冲深度110、重传阈值112或这两者)。举例来说,分析器122可基于递增量140响应于确定结果值118满足递增阈值
136来递增错误恢复参数108,如参看图2-3所描述。在特定方面中,结果值118可在可导致处理过的语音信号的音频质量的可察觉降级的高丢包的条件期间满足递增阈值136。分析器
122可递增缓冲深度110以增大丢包的部分副本在缓冲器中作为另一包的错误校正数据的概率。分析器122可递增重传阈值112,以使目的地装置102能够将较多重传消息(例如重传消息144)发送到源装置104,以请求丢失包的重传。目的地装置102可基于重传的包产生处理过的语音信号,并且处理过的语音信号的音频品质可以得到改进。
[0060] 作为另一实例,分析器122可基于递减量150响应于确定结果值118满足递减阈值138来递减错误恢复参数108,如参看图2-3所描述。在特定方面中,在低丢包的条件期间,结果值118可满足递减阈值138。分析器122可递减缓冲深度110以减小缓冲器126的存储器使用率。分析器122可递减重传阈值112,以减少由目的地装置102发送以请求丢失包的重传的重传消息(例如重传消息144)的数目。较少的重传消息可导致与发送重传消息和重传包相关联的减小的带宽使用率。
[0061] 在特定方面中,错误恢复参数108可具有最大值、最小值或这两者。在此方面中,分析器122可调整错误恢复参数108处于由最小值和最大值界定的范围内。
[0062] 递增阈值136、递减阈值138、递增量140和递减量150中的一或多个可针对每一错误恢复参数具有不同值或相同值。举例来说,对应于缓冲深度110的递增阈值136、递减阈值138、递增量140和递减量150中的一或多者可为不同于对应于重传阈值112的递增阈值136、递减阈值138、递增量140和递减量150中的一或多者。
[0063] 递增阈值136、递减阈值138、递增量140、递减量150或其组合可为默认值。在特定方面中,分析器122可动态地确定递增量140、递减量150或这两者。举例来说,分析器122可基于结果值118与递增阈值136之间的差值来确定递增量140。作为另一实例,分析器122可基于结果值118与递减阈值138之间的差值来确定递减量150。
[0064] 在特定方面中,分析器122可基于结果值118来确定错误恢复参数108的调整量,并且可基于调整量使调整错误恢复参数108延迟到稍后的时间。举例来说,分析器122可基于包的第一数目(例如,10)反复地确定调整量,并且可在处理第一数目的包之后调整错误恢复参数108。作为另一实例,目的地装置102可接收来自源装置104的突发中的包。举例来说,第二用户194可在谈话之间暂停,并且包的每一突发可对应于暂停之间的第二用户194的语音。分析器122可在暂停期间基于调整量来调整错误恢复参数108,使得包的下一个突发可基于经调整的错误恢复参数108得到处理,并且因此错误恢复参数108的调整可能不被用户察觉。
[0065] 在特定方面中,分析器122可请求基于重传计数154、重传阈值112或这两者的特定包(例如,第一包132)的重传。举例来说,分析器122可基于确定重传计数154满足重传阈值112且第一包132从缓冲器126缺失而经由发射器192将重传消息144发送到源装置104。重传消息144可请求第一包132的重传。
[0066] 重传计数154可具有默认初始值。分析器122可基于发送重传消息144来更新重传计数154(例如,递增)。在特定方面中,重传计数154可与特定时间周期相关联。举例来说,重传计数154可指示在特定时间周期(例如,前一个5分钟)期间由分析器122发送的重传消息的数目。
[0067] 源装置104可响应于接收到重传消息144来重传第一包132。在此方面中,分析器122可接收重传的第一包132,并且可至少基于来自重传的第一包132的第一数据164产生处理过的语音信号。举例来说,分析器122可基于来自重传的第一包132的第一数据164和来自第二包134的第二数据166,响应于确定缓冲器126存储第二包134而产生处理过的语音信号。在特定方面中,可能存在与发送重传消息144和接收重传的第一包132相关联的往返延迟(例如,8毫秒(ms)到16ms)。举例来说,源装置104与目的地装置102之间可存在最大数量(例如8)的混合自动重复请求(HARQ)实例。在第一HARQ实例期间,源装置104可发送第一包
132。在第二HARQ实例期间,目的地装置102可发送重传消息144。在第三HARQ实例期间,源装置104可发送重传的第一包132。往返延迟(例如,8ms到16ms)可对应于第一HARQ实例与第三HARQ实例之间的时间差。
[0068] 在特定实施方案中,发射时间线可分割成子帧的单元。每一子帧可涵盖预定持续时间,例如,1毫秒(ms)。源装置104可具有数据以发送到目的地装置102,并且可根据选定的发射格式处理第一包132以获得数据符号。发射格式可对应于速率、包格式、调制编码方案(MCS)等。源装置104可在子帧t中将第一包132的第一发射以及控制信息发送到目的地装置102。控制信息可指示选定的发射格式、用于数据发射的无线电资源等。目的地装置102可根据选定的发射格式来接收和处理第一发射。如果目的地装置102无法成功地解码第一包132(例如,遇到错误或者在预期的时间第一包132未被接收),那么目的地装置102可在子帧t+Δ中发送否定确认(NAK)。
[0069] NAK充当重传请求。因此,在子帧t+M中,源装置104可接收NAK,并且发送第一包132的第二发射。目的地装置102可再次尝试解码第一包132。如果出现错误,那么目的地装置102可发送另一NAK(例如,在子帧t+M+Δ中)。在子帧t处的初始发射之后第一包132的每一发射可被称为HARQ发射,并且可包含用于第一包132的不同冗余信息(例如,数据符号的不同集合)。
[0070] 系统100可支持同步HARQ和/或异步HARQ。对于同步HARQ,包(例如,第一包132)的发射可在已知为先验的子帧中通过发射器(例如,源装置104)和接收器(例如,目的地装置102)发送。对于异步HARQ,包的发射(例如,第一包132)可被调度并且在一或多个子帧中发送。在特定实施方案中,系统100可支持HARQ、自动重复请求(ARQ)、另一重传协议或其组合。
[0071] 在特定方面中,分析器122可基于确定重传计数154未能满足重传阈值112,特定包(例如第一包132)存储在缓冲器126重,特定包(例如第一包132)的部分副本(例如第一部分副本174)存储在缓冲器126中或其组合,而制止请求特定包(例如第一包132)的重传。将了解,基于重传的第一包132产生处理过的语音信号116可导致处理过的语音信号116具有更好的音频质量,而基于第一部分副本174产生处理过的语音信号116可导致产生处理过的语音信号116而不存在与请求和接收重传的第一包132相关联的往返延迟(例如,8ms到16ms)。
[0072] 在特定方面中,分析器122可基于缓冲深度110而丢弃包。举例来说,分析器122可确定存储在缓冲器126中的包的数目(或总大小)满足缓冲深度110。响应于接收到后续包,分析器122可制止在缓冲器126中存储所述后续包,或者可从缓冲器126中去除一或多个其它包。举例来说,分析器122可去除已经在缓冲器126中达最长持续时间的包,可去除并不包括对应于另一包的错误校正数据的包或这两者。
[0073] 因此,系统100可实现丢失包的数据的局部恢复,而不会重传所述丢失包。举例来说,分析器122可响应于确定第一包132并不存储在缓冲器126中,而从第二包134中恢复第一部分副本174。另一特定优点是基于检索到的部分副本的计数、丢失包的计数或这两者来动态地调整错误恢复参数。举例来说,分析器122可基于检索到的部分副本计数106、丢失包的计数114或这两者来动态地调整错误恢复参数108。因此,错误恢复参数108可响应网络条件、接收到的包中的冗余程度或这两者。
[0074] 参看图2,揭示基于冗余的包发射错误恢复的方法的特定说明性方面,且通常表示为200。在特定方面中,可通过图1的分析器122来执行方法200。图2说明基于丢失包的计数114、检索到的部分副本计数106或这两者来调整图1的缓冲深度110。举例来说,缓冲深度
110的调整可为丢失包的计数114(p)的函数、检索到的部分副本计数106(q)的函数或丢失包的计数114(p)和检索到的部分副本计数106(q)的函数。
[0075] 方法200包括在202处通过接收器接收在时间N处的经编码语音帧R(N)。举例来说,图1的接收器124可接收对应于输入语音信号130的特定音频帧的特定包,如参看图1所描述。
[0076] 方法200还包括在204处确定下一个语音帧R(N-D)是否在去抖动缓冲器中可用。举例来说,分析器122可确定下一个包是否存储在缓冲器126中,如参看图1所描述。下一个包可具有下一个序号。在特定方面中,分析器122可通过递增先前处理过的包的序号来确定下一个序号。在替代方面中,分析器122可基于最近接收到的包的序号(例如,N)与缓冲深度110(例如,D)之间的差值来确定下一个序号。在此方面中,缓冲深度110可指示待存储在缓冲器126中的最大数目的包。分析器122可确定对应于下一个序号的下一个包(例如,第一包
132)是否存储在缓冲器126中。
[0077] 方法200进一步包含响应于在204处确定下一语音帧R(N-D)在去抖动缓冲器中可用,在206处将下一语音帧R(N-D)提供到语音解码器。举例来说,分析器122可响应于确定下一个包(例如,第一包132)存储在缓冲器126中,而将第一包132提供到语音解码器156,如参看图1所描述。
[0078] 方法200还包括响应于在204处确定下一个语音帧R(N-D)在去抖动缓冲器中不可用,在208处确定下一个语音帧R(N-D)的部分副本是否在去抖动缓冲器中可用。举例来说,响应于确定第一包132并不存储在缓冲器126中,图1的分析器122可确定第一包132的部分副本是否存储在缓冲器126中,如参看图1所描述。为了说明,分析器122可确定具有第一部分副本174的第二包134是否存储在缓冲器126中。
[0079] 方法200进一步包含响应于在208处确定下一个语音帧R(N-D)的部分副本在去抖动缓冲器中可用,在206处将下一个语音帧R(N-D)的部分副本提供到语音解码器,并且在210处确定在M个先前帧期间检索到的部分副本的数目(q)。举例来说,响应于确定第二包
134包含于缓冲器126中并且第二包134包含第一包132的第一部分副本174,图1的分析器
122可将第二包134提供到语音解码器156。在特定方面中,分析器122可将第一部分副本174提供到语音解码器156。分析器122还可更新检索到的部分副本计数106,如参看图1所描述。
举例来说,检索到的部分副本计数106可对应于特定数目的帧、特定时间周期或这两者。特定数目(M)的帧可对应于默认值。在特定方面中,特定数目(M)的帧可由分析器122选择或由用户(例如,第一用户152)选择。在特定方面中,特定数目(M)的帧可以是自适应的。举例来说,分析器122可随时间推移而更新特定数目(M)的帧。在特定方面中,分析器122可基于缓冲深度110已经在特定时间周期(例如,5分钟)期间调整的次数来更新特定数目(M)的帧。举例来说,分析器122可响应于确定缓冲深度110已经在特定时间周期期间调整的次数满足调整阈值来更新(例如,增大或减小)特定数目(M)的帧。
[0080] 在特定方面中,检索到的部分副本计数106可指示从特定数目(M)的最近处理过的包中检索到的部分副本的数目。举例来说,从由分析器122最近处理过的特定数目(例如,十个)包中,分析器122可能已成功地接收到第一数目(例如,7)个包,分析器122可能已检索到分析器122未成功地接收到的第二数目(例如,2)个包的部分副本,并且部分副本可能已不可用于分析器122未成功地接收到的其余数目(例如,1)个包。在此实例中,检索到的部分副本计数106可指示部分副本是从特定数目(例如,10)的最近处理过的包中针对第二数目(例如,2)个包检索到的。
[0081] 在替代方面中,检索到的部分副本计数106可指示在特定时间周期(例如前5分钟)检索到的部分副本的数目。举例来说,分析器122可在特定时间周期(例如前5分钟)期间接收特定数目(例如20)个包。从特定数目(例如,20)个包中,分析器122已成功地接收第一数目(例如,12)个包,分析器122可能已检索到分析器122未成功地接收到的第二数目(例如,6)个包的部分副本,并且部分副本可能已不可用于分析器122未成功地接收到的其余的数目(例如,2)个包。在此实例中,检索到的部分副本计数106可指示在特定时间周期(例如前5分钟)期间,检索到分析器122接收到的第二数目(例如6)个包的部分副本。方法200可继续进行到214。
[0082] 方法200还包括响应于在208处确定下一个语音帧R(N-D)的部分副本在去抖动缓冲器中不可用,在212处确定在M个先前帧期间丢失的包的数目(p)。举例来说,图1的分析器122可响应于确定第二包134并不存储在缓冲器126中而更新丢失包的计数114,如参看图1所描述。为了说明,分析器122可确定缓冲器126并不存储指示第一包132的部分副本(例如,第一部分副本174)包括于包中的包(例如,第二包134)。
[0083] 方法200进一步包含在214处基于在M个先前帧期间丢失的包的数目(p)以及在M个先前帧期间检索到的部分副本的数目(q)来确定结果值(r)。举例来说,图1的分析器122可基于丢失包的计数114(p)、检索到的部分副本计数106(q)或这两者来确定结果值118(r),如参看图1所描述。在图2中说明的实例中,r=f(p,q)。结果值118(r)可为丢失包的计数114(p)的函数、检索到的部分副本计数106(q)的函数或丢失包的计数114(p)和检索到的部分副本计数106(q)的函数。举例来说,结果值118可为丢失包的计数114和检索到的部分副本计数106的加权和。
[0084] 方法200还包含在216处确定结果值(r)是否大于递增阈值(T1)。举例来说,图1的分析器122可确定结果值118是否满足(例如,大于)递增阈值136,如参看图1所描述。
[0085] 方法200进一步包括响应于在216处确定结果值(r)大于递增阈值(T1),在222处基于用于下一个话音突峰的去抖动缓冲器的递增量(Δn1)和深度(D旧)的总和来确定深度值(D新)。举例来说,图1的分析器122可响应于确定结果值118满足(例如,大于)递增阈值136而基于递增数量140和缓冲深度110(例如,D旧)的总和来确定调整量(例如,D新),如参看图1所描述。方法200可继续进行到224。
[0086] 方法200还包括响应于在216处确定结果值(r)小于或等于递增阈值(T1),在220处确定结果值(r)是否小于递减阈值(T2)。举例来说,图1的分析器122可响应于确定结果值118未能满足(例如,小于或等于)递增阈值136,确定结果值118是否满足(例如,小于)递减阈值138,如参看图1所描述。
[0087] 方法200进一步包括响应于在220处确定结果值(r)小于递减阈值(T2),在222处基于用于下一个话音突峰的去抖动缓冲器的递减量(Δn2)和深度(D旧)的总和来确定深度值(D新)。举例来说,图1的分析器122可响应于确定结果值118满足(例如,小于)递减阈值138,基于递减数量150与缓冲深度110(例如,D旧)之间的差值来确定调整量(例如,D新),如参看图1所描述。
[0088] 方法200还包括在224处将去抖动缓冲器的深度调整到深度值(D新)。举例来说,图1的分析器122可基于调整量(例如,D新)来调整缓冲深度110,如参看图1所描述。方法200可继续进行到202。
[0089] 方法200还包含响应于在220处确定结果值(r)大于或等于递减阈值(T2),在202处接收后续包。举例来说,图1的分析器122可响应于确定结果值118无法满足递增阈值136和递减阈值138而制止调整缓冲深度110。
[0090] 缓冲深度110(例如D)可具有第一深度值(例如D旧)。举例来说,D=D旧。分析器122可至少部分地基于第一深度值(例如,D旧)来确定第二深度值(例如,D新)。分析器122可基于第二深度值(例如,D新)来调整缓冲深度110(例如,D)。举例来说,在缓冲深度110的调整之后,D=D新。
[0091] 方法200可基于丢失包的计数、检索到的部分副本计数或这两者来实现去抖动缓冲器的深度的动态调整。缓冲深度可响应于网络条件。在高丢包、数据冗余的缺乏或这两者的条件期间,缓冲深度可增大以减少在目的地装置处丢弃的包、以增大在去抖动缓冲器中找到丢失包的部分副本的概率,或这两者。替代地,在低丢包、较高程度的数据冗或这两者余的条件期间,缓冲深度可减小以减少去抖动缓冲器的存储器使用率。
[0092] 参看图3,揭示基于冗余的包发射错误恢复的方法的特定说明性方面,且通常表示为300。在特定方面中,可通过图1的分析器122来执行方法300。
[0093] 图3说明基于丢失包的计数114、检索到的部分副本计数106或这两者来调整图1的重传阈值112。方法300包括图2的方法200的202、204、206、208、210、212、214、216和220。
[0094] 方法300还包括响应于在208处确定下一个语音帧R(N-D)的部分副本在去抖动缓冲器中不可用,在302处执行重传分析。举例来说,图1的分析器122可响应于确定缓冲器126既不存储第一包132也不存储指示第一包132的部分副本包括于其它包中的另一包而执行重传分析,如参看图4所描述。
[0095] 方法300进一步包括响应于在216处确定结果值(r)大于递增阈值(T1),在304处基于递增数量(Δn1)和重传阈值(RT旧)的总和来确定重传值(RT新)。举例来说,图1的分析器122可响应于确定结果值118满足(例如,大于)递增阈值136,基于递增数量140和重传阈值
112(例如,RT旧)的总和而确定调整量(例如,RT新),如参看图1所描述。方法300可继续进行到
308。
[0096] 方法300还包含响应于在220处确定结果值(r)小于递减阈值(T2),在306处基于递减数量(Δn2)和重传阈值(RT旧)之间的差来确定重传值(RT新)。举例来说,图1的分析器122可响应于确定结果值118满足(例如,小于)递减阈值138,基于递减量150与重传阈值112(例如,RT旧)之间的差而确定调整量(例如,RT新),如参看图1所描述。
[0097] 方法300还包含在308处将重传值调整为重传值(RT新)。举例来说,图1的分析器122可基于调整量(例如RT新)来调整重传阈值112,如参看图1所描述。方法300可继续进行到202。
[0098] 重传阈值112(例如,RT)可具有第一重传阈值(例如,RT旧)。举例来说,RT=RT旧。分析器122可至少部分地基于第一重传值(例如,RT旧)来确定第二重传阈值(例如,RT新)。分析器122可基于第二重传阈值(例如,RT新)来调整重传阈值112(例如,RT)。举例来说,在重传阈值112的调整之后,RT=RT新。在特定方面中,图3的递增阈值(T1)可与图2的递增阈值(T1)不同。在替代方面中,图3的递增阈值(T1)可与图2的递增阈值(T1)相同。在特定方面中,图3的递减阈值(T2)可与图2的递减阈值(T2)不同。在替代方面中,图3的递减阈值(T2)可与图2的递减阈值(T2)相同。
[0099] 方法300可基于丢失包的计数、检索到的部分副本计数或这两者来实现重传阈值的动态调整。重传阈值可响应于网络条件。在高丢包、数据冗余的缺乏或这两者的条件期间,重传阈值可增大以使目的地装置能够发送更多的重传请求。或者,在低丢包、较高程度数据冗余或这两者的条件期间,重传阈值可减小以减少重传网络业务、以减少在产生处理过的语音信号中的延迟或这两者。
[0100] 参看图4,揭示基于冗余的包发射错误恢复的方法的特定说明性方面,且通常表示为400。在特定方面中,可通过图1的分析器122来执行方法400。在特定方面中,方法400可对应于图3的302。
[0101] 方法400包含在402处确定重传计数是否小于重传阈值(RT)。举例来说,图1的分析器122可确定重传计数154是否满足(例如小于)重传阈值112,如参看图1所描述。
[0102] 方法400还包括响应于在402处确定重传计数小于重传阈值(RT),在404处发送重传消息,并且在406处递增重传计数。举例来说,图1的分析器122可响应于确定重传计数154满足(例如,小于)重传阈值112而发送重传消息144,并且可更新(例如,递增)重传计数154,如参看图1所描述。
[0103] 方法400进一步包括响应于在402处确定重传计数大于或等于重传阈值(RT),在408处制止发送重传消息。举例来说,响应于确定重传计数154未能满足(例如,大于或等于)重传阈值112,可制止分析器122发送重传消息(例如,重传消息144),如参看图1所描述。
[0104] 方法400可因此使目的地装置能够基于动态调整的重传阈值而发送重传请求。目的地装置所发送的重传请求的数目以及源装置所重传的包的数目可响应于网络条件。在高丢包、数据冗余的缺乏的条件或这两者期间,重传阈值可增大以使目的地装置能够发送更多的重传请求,以增大重传包的数目来减少处理过的语音信号中的错误。替代地,在低丢包、较高程度的数据冗余的条件或这两者期间,重传阈值可减小以减少重传包的数目,从而导致重传网络业务的减少、与产生处理过的语音信号相关联的延迟的减少或这两者。
[0105] 参看图5,揭示了可操作以执行基于冗余的错误恢复的系统的特定说明性方面,且所述系统通常表示为500。系统500不同于图1的系统100之处可在于错误恢复参数108可包含缓冲延迟512,如本文所述。
[0106] 包的序列可对应于输入语音信号130。包的序列中的每一个包可包含序号,如参看图1所描述。举例来说,第一包132可包括第一序号(例如,第一产生时戳),且第二包134可包括第二序号(例如,第二产生时戳)。第一产生时戳可指示源装置104产生第一包132的第一时间,且第二产生时戳可指示源装置104产生第二包134的第二时间。第一部分副本174可包括第一序号(例如,第一产生时戳)。
[0107] 目的地装置102接收到的每个包可由接收器124、分析器122或由目的地装置102的另一组件指派接收时戳。举例来说,第二包134可被指派第二接收时戳。分析器122可基于第二接收时戳来确定第一接收时戳,且可将第一接收时戳指派给第一部分副本174。第一接收时戳可与第二接收时戳相同或不同。举例来说,第一接收时戳可指示比由第二接收时戳指示的第二接收时间早的第一接收时间。在此实例中,第一接收时间可对应于第一包132将以及时方式被接收的所估计时间。为了说明,如果第一包132尚未延迟或丢失,那么第一接收时间可对应于第一包132的所估计接收时间。
[0108] 分析器122可基于与包、缓冲延迟512、缓冲时间线504和最后播放的包506相关联的接收时戳来处理包,如本文所述。缓冲延迟512可对应于包将存储在缓冲器126中的阈值时间。举例来说,缓冲延迟512可指示第一阈值时间(例如,5毫秒)。包可在第一接收时间(例如,下午1:00:00.000)接收。指示第一接收时间的接收时戳可与包相关联。第二时间(例如,下午1:00:00.005)可对应于接收时戳所指示的第一接收时间与缓冲延迟512的总和。可在第二时间处或在第二时间之后处理所述包。
[0109] 缓冲时间线504可指示待处理的下一包。举例来说,缓冲时间线504可指示从缓冲器126中最近处理的或最近进行擦除的特定包的序号。为了说明,分析器122可响应于处理来自缓冲器126的包,处理来自缓冲器126的包的部分副本,或进行对应于所述包的擦除,而更新缓冲器时间线504,以指示所述包的第一序号。在此实例中,分析器122可基于缓冲时间线504所指示的序号(例如第一序号)来确定将处理的下一包的下一序号。
[0110] 最后播放的包506可指示最近从缓冲器126中处理的特定包。处理来自缓冲器126的特定包可包括处理来自缓冲器126的特定包或处理来自缓冲器126的特定包的部分副本。分析器122可更新最后播放的包506,以响应于处理来自缓冲器126的包或处理来自缓冲器
126的包的部分副本,而指示包的第一序号。
[0111] 分析器122可确定最后播放的包506指示先前包是从缓冲器126中通过分析器122最近处理的。分析器122可确定特定包(例如第一包132)在所述序列的包中的先前包之后。分析器122可确定缓冲时间线504所指示的待处理的下一个包是否与所述序列的包中的第一包132相同或在所述第一包之后。在大约第一重放时间502,分析器122可响应于确定如由缓冲时间线504指示的待处理的下一个包在所述序列的包中在第一包132之前而进行擦除。
[0112] 分析器122可在进行擦除之后更新缓冲时间线504。举例来说,缓冲时间线504可在进行擦除之前,指示第一特定包是待处理的下一个包。在进行擦除之后,分析器122可更新缓冲时间线504以指示第二特定包是待处理的下一个包。第二特定包可为在所述序列的包中的第一特定包之后的下一个包。
[0113] 或者,分析器122可响应于确定缓冲时间线504所指示的待处理的下一个包与所述序列的包中的第一包132相同或在所述第一包之后,确定缓冲器126是否存储第一包132(或第一部分副本174)。分析器122可响应于确定缓冲器126存储第一部分副本174而确定第一部分副本174与指示第一接收时间的第一接收时戳相关联。分析器122可在大约第一重放时间502,响应于确定第一时间大于或等于第一接收时间与缓冲延迟512的总和而处理来自缓冲器126的第一部分副本174。缓冲延迟512可对应于包将存储在缓冲器126中的阈值时间。在特定实施方案中,分析器122可处理第一部分副本174,无论第一部分副本174是否已存储在缓冲器126中达阈值时间。在此实施方案中,第一接收时间可比第二接收时间早。举例来说,如果已经以及时方式接收到第一包132,那么第一接收时间可对应于第一包132的预期接收时间。如果已经以及时方式接收到第一包132,那么分析器122可响应于确定第一包132将已经存储在缓冲器126中达至少阈值时间,在大约第一重放时间处理第一部分副本174。
缓冲延迟512可包含默认值、可基于来自第一用户152的用户输入或这两者。如本文所述,分析器122可调整缓冲延迟512。在处理来自缓冲器126的第一部分副本174之后,分析器122可更新最后播放的包508以指示第一包132,且可更新缓冲时间线504以指示第二特定包(例如,第二包134)作为下一个待处理的包。第二特定包(例如,第二包134)可为所述序列的包中的第一包132之后的下一个包。
[0114] 在特定实施方案中,响应于确定第一包132和第一部分副本174从缓冲器126缺失,分析器122可对第二特定包(例如,第二包134)执行与对第一包132执行的分析类似的分析。举例来说,分析器122可响应于确定缓冲时间线504所指示的待处理的下一个包在所述序列的包中在第二特定包之前而进行擦除,且可在进行擦除之后更新缓冲时间线504。或者,在大约第一重放时间502,分析器122可响应于确定缓冲时间线504所指示的待处理的下一个包与第二特定包相同或在第二特定包之后、第二特定包或第二特定包的部分副本存储在缓冲器126中,且第一播放时间502大于或等于缓冲延迟512和与第二特定包相关联的特定接收时间的总和而处理来自缓冲器126的第二特定包。
[0115] 目的地装置102可在电话呼叫期间接收所述序列的包(例如第一包132、第二包134或这两者)。第一包132、第二包134或这两者可包含语音数据。如本文所述,在电话呼叫期间在话音突峰的开始处或在话音突峰的结束处,分析器122可确定或更新缓冲延迟512。话音突峰可对应于静默间隔之间的连续语音段,在此期间可听到背景噪声。举例来说,第一话音突峰可对应于第一用户152的语音,且第二话音突峰可对应于第二用户154的语音。第一话音突峰和第二话音突峰可通过静默或背景噪声的周期分隔开。
[0116] 分析器122可确定先前延迟损失速率552。先前延迟损失速率552可对应于在第一更新时间在缓冲延迟512的先前调整期间确定的延迟损失速率。分析器122可维持延迟损失包510的计数。延迟损失包510的计数可指示在对应的重放时间处理来自缓冲器126的包的部分副本之后接收到的包的数目。对应的重放时间可在第一更新时间之后。举例来说,在第一更新时间之后,分析器122可在与第一包132相关联的第一重放时间处理来自缓冲器126的第一部分副本174。分析器122可基于确定满足一或多个条件而确定第一时间对应于第一重放时间。举例来说,如果在第一时间,最后播放的包506在第一包132之前,且第一包132在如由缓冲时间线504指示的待处理的下一个包之前或与所述下一个包相同,那么第一时间可对应于第一重放时间。如果第一时间大于或等于与第一包132相关联的接收时间(例如,第一部分副本174的第一接收时间)与缓冲延迟512的总和,那么第一时间可对应于第一重放时间。如果第一包132是在第一时间满足先前条件的所述序列的包中的最早的包,那么第一时间可对应于第一重放时间。响应于在处理第一部分副本174之后接收到第一包132,分析器122可更新(例如,递增)延迟损失包的计数510。
[0117] 分析器122可维持接收到的包计数514。举例来说,分析器122可在第一更新时间之后使接收到的包计数514复位。分析器122可响应于接收到包(例如,第二包134)而更新(例如,递增1)接收到的包计数514。分析器122可基于延迟损失包的计数510和接收到的包计数514来确定第二延迟损失速率554。举例来说,第二延迟损失速率554可对应于延迟损失包的计数510和接收到的包计数514的量度(例如比率)。为了说明,第二延迟损失速率554可在特定时间间隔期间指示延迟损失包(例如,在处理包的部分副本之后接收到的包)的平均数目。第二延迟损失速率554可指示在特定时间间隔期间的网络抖动。先前延迟损失速率552与第二延迟损失速率554之间的差值可指示接收到的包的延迟的变化。先前延迟损失速率
552与第二延迟损失速率554之间的差值可指示延迟损失包的平均数目是增大还是减小。
[0118] 分析器122可基于先前延迟损失速率552和第二延迟损失速率554来确定延迟损失速率556。举例来说,延迟损失速率556可对应于先前延迟损失速率552和第二延迟损失速率554的加权和。分析器122可将第一权重(例如,0.75)指派给先前延迟损失速率552,且将第二权重(例如,0.25)指派给第二延迟损失速率554。第一权重可与第二权重相同或不同。在特定实施方案中,第一权重可高于第二权重。基于先前延迟损失速率552和第二延迟损失速率554的加权和来确定延迟损失速率556可减少基于临时网络条件的延迟损失速率556的振荡。举例来说,包的捆绑可造成大量包(例如,3个)在相同时间到达之后在后续间隔期间没有包到达。第二延迟损失速率554可从第一时间波动到第二时间,因为在第一时间确定的第二延迟损失速率554可对应于接收到大量的包的间隔,且在第二时间确定的第二延迟损失速率554可对应于没有包到达的间隔。基于先前延迟损失速率552和第二延迟损失速率554的加权和来确定延迟损失速率556可减少包捆绑对延迟损失速率556的影响。
[0119] 分析器122可响应于确定延迟损失速率556无法满足(例如,小于)目标延迟损失速率528(例如,0.01),而使缓冲延迟512减小递减量516(例如,20毫秒)。举例来说,目标延迟损失速率528可对应于相对于接收到的包的延迟损失包的第一百分比(例如1%)。分析器122可响应于确定延迟损失速率556满足(例如,大于)目标延迟损失速率528、延迟损失速率
556大于或等于先前延迟损失速率552或这两者,而使缓冲延迟512增大递增量518(例如,20毫秒)。递减量516、递增量518、目标延迟损失速率528或其组合可包括默认值、可基于来自第一用户152的用户输入或这两者。递减量516可与递增量518相同或不同。
[0120] 分析器122可将缓冲延迟512设置成缓冲延迟512和延迟下限538(例如,20毫秒)的最大值。举例来说,响应于确定缓冲延迟512低于延迟下限538,分析器122可将缓冲延迟512设置成延迟下限538。分析器122可将缓冲延迟512设置成缓冲延迟512和延迟上限536(例如,80毫秒)的最小值。举例来说,响应于确定缓冲延迟512超过延迟上限536,分析器122可将缓冲延迟512设置成延迟上限536。延迟下限538、延迟上限536或这两者可为默认值、可基于来自第一用户152的用户输入,或这两者。
[0121] 因此,系统500可提供具有使得延迟的包可能在对应的重放时间之前接收到的长缓冲延迟与减小与包的序列相关联的端到端延迟的短缓冲延迟之间的平衡。
[0122] 参看图6,示出了基于冗余的包发射错误恢复的方法的特定说明性方面的流程图,且所述方法通常表示为600。在特定方面中,可通过图1的分析器122来执行方法600。
[0123] 方法600包含在602处确定一序列的包中的特定包是否从缓冲器缺失。举例来说,图1的分析器122可确定一序列的包中的特定包(例如,第一包132)是否从缓冲器126中缺失,如参看图1所描述。
[0124] 方法600还包括响应于在602处确定特定包并未从缓冲器中缺失而在604处将特定包发送到语音解码器。举例来说,响应于确定第一包132并未从缓冲器126中缺失,图1的分析器122可将第一包132发送到语音解码器156,如参看图1所描述。
[0125] 方法600进一步包含响应于在602处确定所述特定包从所述缓冲器缺失,在606处确定所述特定包的部分副本是否作为另一包中的错误校正数据而存储在所述缓冲器中。举例来说,图1的分析器122可响应于确定第一包132从缓冲器126中缺失来确定第一包132的部分副本(例如,第一部分副本174)是否作为另一包(例如,第二包134)中的错误校正数据存储在所述缓冲器中,如参看图1所描述。
[0126] 方法600还包括响应于在606处确定部分副本存储在缓冲器中而在608处更新检索到的部分副本的计数。方法600可继续进行到610。举例来说,图1的分析器122可响应于确定包含第一部分副本174的第二包134存储在缓冲器126中而更新检索到的部分副本计数106的计数,如参看图1所描述。
[0127] 方法600进一步包括响应于在606处确定部分副本并不存储在缓冲器中而在612处更新丢失包的计数。举例来说,图1的分析器122可响应于确定包含第一部分副本174的第二包134并不存储在缓冲器126中而更新丢失包的计数114,如参看图1所描述。
[0128] 方法600还包含在610处,基于检索到的部分副本的计数、丢包的计数或这两者来动态地调整错误恢复参数。举例来说,图1的分析器122可基于检索到的部分副本计数106、丢失包的计数114或这两者来动态地调整错误恢复参数108。
[0129] 方法600进一步包含在614处确定重传计数是否小于重传阈值。举例来说,图1的分析器122可确定重传计数154是否满足(例如,小于)重传阈值112,如参看图1和4所描述。
[0130] 方法600还包括响应于在614处确定重传计数小于重传阈值,在616处将重传消息发送到源装置,并且在618处更新重传计数。举例来说,图1的分析器122可响应于确定重传计数154满足(例如小于)重传阈值112,将重传消息144发送到源装置104并更新重传计数154,如参看图1所描述。重传请求可请求特定包的重传。
[0131] 方法600进一步包含响应于在614处确定重传计数大于或等于重传阈值,在620处制止将重传消息发送到源装置。举例来说,图1的分析器122可响应于确定重传计数154未能满足(例如大于或等于)重传阈值112,制止将重传消息144发送到源装置104,如参看图1所描述。
[0132] 方法600可因此基于丢失包的计数、检索到的部分副本的计数或这两者来实现错误恢复参数的动态调整。
[0133] 图6的方法600可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、处理单元(例如,中央处理单元(CPU))、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合实施。举例来说,图6的方法600可由执行指令的处理器执行,如相对于图9所描述。
[0134] 参看图7,示出了基于冗余的包发射错误恢复的方法的特定说明性方面的流程图,且所述方法通常表示为700。在特定方面中,可通过图1的分析器122来执行方法700。在特定方面中,方法700可对应于图6的610。
[0135] 方法700包括在702处通过使检索到的部分副本的计数乘以质量度量来产生经加权值。举例来说,图1的分析器122可通过使检索到的部分副本计数106乘以质量度量128来产生经加权值,如参看图1所描述。
[0136] 方法700还包括在704处通过对丢失包的计数和经加权值进行求和来产生结果值。举例来说,图1的分析器122可通过对丢失包的计数114和经加权值进行求和来产生结果值
118,如参看图1所描述。
[0137] 方法700进一步包含在706处确定结果值是否大于递增阈值。举例来说,图1的分析器122可确定结果值118是否满足(例如,大于)递增阈值136。
[0138] 方法700还包括响应于在706处确定结果值大于递增阈值,而在708处基于结果值与递增阈值之间的差来确定递增量。举例来说,图1的分析器122可响应于确定结果值118满足(例如,大于)递增阈值136,而基于结果值118与递增阈值136之间的差来确定递增量140。
[0139] 方法700进一步包含在710处基于递增量来调整错误恢复参数。举例来说,图1的分析器122可基于递增量140来调整错误恢复参数108,如参看图1所描述。
[0140] 方法700还包含响应于在706处确定结果值小于或等于递增阈值,而在712处确定结果值是否小于递减阈值。举例来说,图1的分析器122可响应于确定结果值118未能满足(例如,小于或等于)递增阈值136,确定结果值118是否满足(例如,小于)递减阈值138,如参看图1所描述。
[0141] 方法700进一步包含响应于在712处确定结果值大于或等于递减阈值,而在714处制止调整错误恢复参数。举例来说,图1的分析器122可响应于确定结果值118未能满足(例如,大于或等于)递减阈值138,而制止调整错误恢复参数108,如参看图1所描述。
[0142] 方法700还包括响应于在712处确定结果值小于递减阈值,而在716处基于结果值与递减阈值之间的差来确定递减量。举例来说,图1的分析器122可响应于确定结果值118满足(例如,小于)递减阈值138,而基于结果值118与递减阈值138之间的差来确定递减量150。
[0143] 方法700进一步包含在718处基于递减量来调整错误恢复参数。举例来说,图1的分析器122可基于递减量150来调整错误恢复参数108,如参看图1所描述。
[0144] 方法700可因此基于丢失包的计数、检索到的部分副本的计数或这两者来实现错误恢复参数的动态调整。
[0145] 图7的方法700可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、处理单元(例如,中央处理单元(CPU))、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合实施。举例来说,图7的方法700可由执行指令的处理器执行,如相对于图9所描述。
[0146] 参看图8,示出了基于冗余的包发射错误恢复的方法的特定说明性方面的流程图,且所述方法通常表示为800。在特定方面中,可通过图1和5的分析器122来执行方法800。
[0147] 方法800包括在802处,在第一更新时间确定对应于错误恢复参数的先前调整的第一延迟损失速率。举例来说,如参看图5所描述,分析器122可确定先前延迟损失速率552。先前延迟损失速率552可对应于在第一更新时间对错误恢复参数108(例如缓冲延迟512)的先前调整。
[0148] 方法800还包括在804处确定对应于多个包中的特定包的第二延迟损失速率。举例来说,如参看图5所描述,分析器122可确定第二延迟损失速率554。第二延迟损失速率554可对应于与输入语音信号130相关联的多个包中的特定包。特定包可具有在第一更新时间之后的重放时间。
[0149] 方法800进一步包括在806处基于第一延迟损失速率和第二延迟损失速率的加权和来确定延迟损失速率。举例来说,分析器122可基于先前延迟损失速率552和第二延迟损失速率554的加权和来确定延迟损失速率556,如参看图5所描述。
[0150] 方法800还包括在810处确定延迟损失速率是否低于目标延迟损失速率。举例来说,分析器122可确定延迟损失速率556是否低于目标延迟损失速率528,如参看图5所描述。
[0151] 方法800进一步包括响应于在810处确定延迟损失速率低于目标延迟损失速率,而在812处以递减量递减缓冲延迟。举例来说,分析器122可响应于确定延迟损失速率556低于目标延迟损失速率528,使缓冲延迟512减小递减量516,如参看图5所描述。方法800可继续进行到818。
[0152] 方法800还包含响应于在810处确定延迟损失速率大于或等于目标延迟损失速率,在814处确定延迟损失速率是否大于目标延迟损失速率,且延迟损失速率是否大于第一延迟损失速率。举例来说,分析器122可响应于确定延迟损失速率556大于或等于目标延迟损失速率528,而确定延迟损失速率556是否大于目标延迟损失速率528,且延迟损失速率556是否大于先前延迟损失速率552,如参看图5所描述。方法800可响应于在814处确定延迟损失速率等于目标延迟损失速率或延迟损失速率小于或等于第一延迟损失速率而继续进行到818。
[0153] 方法800进一步包含响应于在814处确定延迟损失速率大于目标延迟损失速率,且延迟损失速率大于第一延迟损失速率,在816处使缓冲延迟递增一递增量。举例来说,分析器122可响应于确定延迟损失速率556大于目标延迟损失速率528,且延迟损失速率556大于先前延迟损失速率552,而使缓冲延迟512增大递增量518,如参看图5所描述。在特定实施方案中,分析器122可响应于确定延迟损失速率556低于目标延迟损失速率528,使缓冲延迟512增加递增量518。
[0154] 方法800还包括在818处将缓冲延迟设置成延迟下限和缓冲延迟的最大值。举例来说,分析器122可将缓冲延迟512设置成延迟下限538和缓冲延迟512的最大值,如参看图5所描述。
[0155] 方法800进一步包含在820处将缓冲延迟设置成延迟上限和缓冲延迟的最小值。举例来说,分析器122可将缓冲延迟512设置成延迟上限536和缓冲延迟512的最小值,如参看图5所描述。
[0156] 方法800可因此基于延迟损失速率和目标延迟损失速率来实现错误恢复参数(例如,缓冲延迟)的动态调整。延迟损失速率可对应于相对于接收到的包的数目的延迟损失包的数目。延迟损失包可包含在对应的重放时间在包的部分副本的处理之后接收到的包。基于延迟损失速率和目标延迟损失速率对缓冲延迟的动态调整可在具有使得延迟包可能在对应的重放时间之前接收到的长缓冲延迟与减小与包的序列相关联的端到端延迟的短缓冲延迟之间提供平衡。
[0157] 图8的方法800可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、处理单元(例如,中央处理单元(CPU))、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合实施。举例来说,图8的方法800可由执行指令的处理器执行,如相对于图9所描述。
[0158] 参考图9,描绘了装置(例如,无线通信装置)的特定说明性方面的框图,且所述装置通常表示为900。在各种方面中,装置900可具有与图9中说明的组件相比更多或更少的组件。在说明性方面中,装置900可对应于图1的目的地装置102、源装置104或这两者。在说明性方面中,装置900可执行参考图1到8描述的一或多个操作。
[0159] 在特定方面中,装置900包括处理器906(例如,中央处理单元(CPU))。装置900可包含一或多个额外处理器910(例如,一或多个数字信号处理器(DSP))。处理器910可包含语音和音乐编解码器(CODEC)908以及回声消除器912。语音和音乐编解码器908可包括声码器编码器936、声码器解码器938,或这两者。
[0160] 装置900可包含存储器176和编解码器934。存储器176可包含分析数据120。装置900可包含经由收发器950耦合到天线942的无线控制器940。在特定方面中,收发器950可包含图1的接收器124、发射器192或这两者。
[0161] 装置900可包含耦合到显示器控制器926的显示器928。图1的扬声器142、麦克风946或这两者可耦合到编解码器934。编解码器934可包含数/模转换器902和模/数转换器
904。在说明性方面中,麦克风946可对应于图1的麦克风146。在特定方面中,编解码器934可从麦克风946接收模拟信号,使用模/数转换器904将模拟信号转换为数字信号,并将数字信号提供到语音和音乐编解码器908。语音和音乐编解码器908可处理数字信号。在特定方面中,语音和音乐编解码器908可将数字信号提供到编解码器934。编解码器934可使用数/模转换器902来将数字信号转换为模拟信号,且可将模拟信号提供到扬声器142。
[0162] 装置900可包含分析器122、缓冲器126、语音解码器156或其组合。在特定方面中,分析器122、语音解码器156或这两者包含于处理器906、处理器910、编解码器934、语音和音乐编解码器908或其组合中。在特定方面中,分析器122、语音解码器156或这两者可包含于声码器编码器936、声码器解码器938或这两者中。在特定实施方案中,语音解码器156可在功能上与声码器解码器938相同。语音解码器156可对应于处理器910外部的专用硬件电路(例如,DSP)。
[0163] 分析器122、缓冲器126、语音解码器156或其组合可用于实施本文中描述的基于冗余的错误恢复技术的硬件方面。或者或另外,可实施软件方面(或组合的软件/硬件方面)。举例来说,存储器176可包含可由处理器910或装置900的其它处理单元(例如,处理器906、编解码器934或这两者)执行的指令956。指令956可对应于分析器122、语音解码器156或这两者。
[0164] 在特定方面中,装置900可包含于封装内系统或芯片上系统装置922中。在特定方面中,分析器122、缓冲器126、语音解码器156、存储器176、处理器906、处理器910、显示器控制器926、编解码器934和无线控制器940包含于封装内系统或芯片上系统装置922中。在特定方面中,输入装置930和电源944耦合到芯片上系统装置922。此外,在特定方面中,如图9中所说明,显示器928、输入装置930、扬声器142、麦克风946、天线942和电源944位于芯片上系统装置922的外部。在特定方面中,显示器928、输入装置930、扬声器142、麦克风946、天线942和电源944中的每一者可耦合到芯片上系统装置922的组件,例如接口或控制器。
[0165] 装置900可包含移动通信装置、智能电话、蜂窝式电话、膝上型计算机、计算机、平板计算机、个人数字助理、显示装置、电视机、游戏控制台、音乐播放器、无线电、数字视频播放器、数字视频光盘(DVD)播放器、调谐器、相机、导航装置或其任何组合。
[0166] 在说明性方面中,处理器910可为可操作的以执行参考图1到8所描述的方法或操作的全部或一部分。举例来说,麦克风946可捕获对应于用户语音信号的音频信号。ADC904可将所捕获的音频信号从模拟波形转换为由数字音频样本组成的数字波形。处理器910可处理数字音频样本。增益调整器可调整数字音频样本。回声消除器912可减少可能已由进入麦克风946的扬声器142的输出产生的任何回声。
[0167] 声码器编码器936可压缩对应于经处理语音信号的数字音频样本,且可形成包的序列(例如,数字音频样本的经压缩位的表示)。包的序列可存储于存储器176中。所述序列的一或多个包可包含对应于所述序列的其它包的部分副本。收发器950可调制所述序列的某一形式的每一包(例如,其它信息可附加到所述包),且可经由天线942发射经调制的数据。
[0168] 作为另一个实例,天线942可接收对应于经由网络由另一装置发送的一序列的包的传入包。接收到的包可对应于用户语音信号。分析器122可将传入包存储在缓冲器126(例如,去抖动缓冲器)中。分析器122可确定待处理的下一个包是否存储在缓冲器126中。
[0169] 响应于确定下一个包存储在缓冲器126中,分析器122可将所述下一个包提供到声码器解码器938。举例来说,声码器解码器938可解压缩所述下一个包。响应于确定所述下一个包并不存储在缓冲器126中,分析器122可确定所述下一个包的部分副本是否存储在缓冲器126中作为另一包中的错误校正数据。响应于确定部分副本在另一包中存储在缓冲器126中,分析器122可将部分副本或所述另一包提供到声码器解码器938,且可更新图1的检索到的部分副本计数106。声码器解码器938可解压缩部分副本。
[0170] 未经压缩的波形可被称作经重构的音频样本。回声消除器912可将回声从经重构音频样本中去除。语音解码器156可基于经重构音频样本产生处理过的语音信号。增益调整器可放大或抑制处理过的语音信号。DAC 902可将处理过的语音信号从数字波形转换为模拟波形,且可将经转换的信号提供到扬声器142。
[0171] 响应于确定下一个包或下一个包的部分副本都不存储在缓冲器126中,分析器122可更新图1的丢失包的计数114。分析器122可基于检索到的部分副本计数106、丢失包的计数114或这两者来调整错误恢复参数。
[0172] 结合所描述的方面,一种设备可包含用于接收多个包的装置。所述多个包可对应于一序列的包的至少一个子集。所述多个包可包含错误校正数据。所述多个包中的第一包的错误校正数据可包含所述多个包中的第二包的部分副本。举例来说,用于接收所述多个包的所述装置可包括图1的接收器124、收发器950或这两者。
[0173] 所述设备还可包含用于错误恢复的装置。所述用于错误恢复的装置可经配置以:确定所述序列的包中的特定包是否从缓冲器缺失;确定所述特定包的部分副本是否作为另一包中的错误校正数据存储在所述缓冲器中;至少部分地基于确定所述缓冲器并不存储所述特定包,且所述缓冲器并不存储所述特定包的部分副本,将重传消息发送到第二装置。举例来说,所述用于错误恢复的装置可包含分析器122、处理器906、处理器910、编解码器934或其组合。
[0174] 所属领域的技术人员将进一步了解结合本文所揭示的方面描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。上文已大体在其功能性方面描述了各种说明性组件、块、配置、模块、电路和步骤。将此功能性实施为硬件还是处理器可执行指令取决于特定应用和强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,此些实施决策不应被解释为会导致脱离本发明的范围。
[0175] 结合本文中所揭示的方面描述的方法或算法的步骤可直接用硬件、用由处理器执行的软件模块、或用这两者的组合实施。软件模块可驻存在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸磁盘、压缩光盘只读存储器(CD-ROM)或此项技术中已知的任何其它形式的非暂时性储存媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存在专用集成电路(ASIC)中。ASIC可驻存在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻存在计算装置或用户终端中。
[0176] 提供对所揭示方面的先前描述以使得所属领域的技术人员能够制作或使用所揭示的方面。所属领域的技术人员将容易明白对这些方面的各种修改,且在不脱离本发明的范围的情况下,本文中所界定的原理可应用于其它方面。因此,本发明无意限于本文所示出的方面,而应被赋予与如所附权利要求书所定义的原理和新颖特征一致的可能的最广范围。