CN104468470B - 一种用于分组声学回声消除的方法与设备 - Google Patents
一种用于分组声学回声消除的方法与设备 Download PDFInfo
- Publication number
- CN104468470B CN104468470B CN201310419118.3A CN201310419118A CN104468470B CN 104468470 B CN104468470 B CN 104468470B CN 201310419118 A CN201310419118 A CN 201310419118A CN 104468470 B CN104468470 B CN 104468470B
- Authority
- CN
- China
- Prior art keywords
- stream
- packets
- echo
- packet
- targeted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M9/00—Arrangements for interconnection not involving centralised switching
- H04M9/08—Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
- H04M9/082—Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
本发明的目的是提供一种用于分组声学回声消除的方法与设备。回声消除设备获取通话两端的源语音分组流;确定其每个分组数据包所对应的传送方向信息;根据源语音分组流更新独立缓冲区管理器中通话两端所对应的目标分组流;根据目标分组流中每个分组数据包及其对应的传送方向信息,对目标分组流进行PAEC,获取已消除回声分组流并将其发送至通话两端中的对应端。与现有技术相比,本发明实现了双向分组声学回声消除,成倍地提高PAEC信道的性能,减少了硬件数量以及相应维护成本,同时也减少了呼叫处理和相关信令开销,进而不需任何信令支持,提供透明的PAEC功能;而且本发明还可以利用软件实现所述独立缓冲区管理器,提高了系统处理的灵活性与系统效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种用于分组声学回声消除的技术。
背景技术
移动网络中的声学回声是由于手机或者其他免提设备的设计不佳,语音接收方扬声器发出的声音送到接收方麦克风(进而送回语音发送方)而引起的。声学回声消除(Acoustic Echo Cancellation,AEC)能够移除通信信号中的回声。声学回声消除是保证通信中声音质量的核心性能。
在电路交换网络中,传统的AEC技术在波形域对声学回声进行移除已经做得很好。然而,在分组网络中(例如IP网络上的语音,VoIP),还没有被认可的用于执行AEC的方式。一些供应商(如Broadcom(参考US7333447),Samsung,3Com等)发明了用于分组网络的AEC,但是这类AEC需要先把分组流解码成模拟或数字信号(即,转换到波形域),使用传统技术消除信号中的回声,然后将消除了回声的信号重新编码回分组中(即,转换回分组域)。由于多次的编码/解码,导致了声音质量(voice quality,VQ)的下降,从而抵消了编码转换免除操作(Transcoder Free Operation,TrFO)在排除多次编码和解码上取得的优势。此外,由于计算复杂度和巨大的缓冲需求,传统的AEC仅支持受限的尾长延迟,因此,传统的AEC用于VoIP网络时效率很低。
阿尔卡特-朗讯/贝尔实验室(Alcatel-Lucent/Bell Labs)发明了一种真正的分组域声学回声消除(Packet Acoustic Echo Cancellation,PAEC)技术,(例如)只需使用EVRC或EVRC-B分组中描述波形的参数,就能够探测抑制分组流中的声学回声。贝尔实验室在PAEC领域有3个相关的专利或专利申请:
-US7852792Packet Based Echo Cancellation and Suppression(grantedon12/14/2010)by Binshi Cao et al.
-US008144862method and Apparatus for the Detection and Suppression ofEcho in Packet based Communication Networks Using Frame Energy Estimation(granted on3/27/2012)by Binshi Cao et al.
-US2009/0168673Method and Apparatus for Detecting and SuppressingEcho in Packet Networks(published on7/2/2009)by Lampros Kalampoukas andSemyon Sosin.
在上述专利或专利申请中,通过利用分组的波形描述参数进行比较与预测,将参考流分组与目标流分组在PAEC信道里相对比,从而移除(目标流中的)相似分组(被认定为回声),实现了在分组网络中消除/抑制分组声学回声的基本方法。
然而,这些专利或专利申请中所提供的方法仅仅针对单向PAEC,而无法提供双向的PAEC。一个语音呼叫涉及两个或多个通话方,要消除每个通话方产生的回声,就要部署多个单向PAEC设备或者单个PAEC设备上的多个单向PAEC信道。从分组交换性能以及容量分析,尤其是在分组交换网内部交换场景中,单向PAEC的性能有限,并且可能达不到工业质量与性能标准。带有单向分组回声消除的PAEC产品可能不会很好地满足分组交换中的用户需求。因此,对于实际行业部署来说,这些单向PAEC方法都具有缺点与限制。
例如,图1展示了一种在US2009/0168673中有所描述的单向分组声学回声消除结构。一个单向PAEC信道只能分配给一个通话方,它需要区分语音流的方向是“去到”还是“来自”该通话方。如果是去到该通话方,该语音流是一个参考流。如果来自该通话方,该语音流是一个目标流。所述语音流要么作为参考分组处理运行,要么作为目标分组处理运行。关键是参考流处理部分和目标流处理部分不同时并行运行。
这种单向分组声学回声消除方法的明显的缺点是即使对于单向分组回声消除,信道也必须缓冲/管理参考流,也就是说,增加了不必要的缓冲和计算复杂度。要实现双向分组回声消除,则需提供两个PAEC信道,并且需要在每个PAEC信道中都考虑额外的参考流相关的缓冲/管理设计以及由此产生的正常/错误分组处理。在一个分组交换网内部交换场景中,这无疑是对资源的浪费。
发明内容
本发明的目的是提供一种用于分组声学回声消除的方法与设备。
根据本发明的一个方面,提供了一种用于分组声学回声消除的方法,其中,该方法包括以下步骤:
a获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;
b确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;
c根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;
d根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;
e根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
根据本发明的另一方面,还提供了一种用于分组声学回声消除的回声消除设备,其中,该设备包括:
获取装置,用于获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;
方向确定装置,用于确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;
目标更新装置,用于根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;
消除装置,用于根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;
发送装置,用于根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
与现有技术相比,本发明通过在分组回声消除设备中,获取待进行分组声学回声消除的通话两端的源语音分组流,确定所述源语音分组流中的每个分组数据包所对应的传送方向信息,根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流,最后根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端;从而实现了双向分组声学回声消除,成倍地提高PAEC信道的性能,减少了硬件数量以及相应维护成本,同时也减少了呼叫处理和相关信令开销,进而不需任何信令支持,提供透明的PAEC功能;而且本发明还可以利用软件实现所述独立的缓冲区管理器,进而很大地减少回声消除过程以及缓冲区存储空间,提高了系统处理的灵活性,提高了在分组交换中分组声学回声消除的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的一种在US2009/0168673中有所描述的单向分组声学回声消除结构示意图;
图2示出根据本发明一个方面的一种用于分组声学回声消除的回声消除设备示意图;
图3示出根据本发明一个优选实施例的一种用于分组声学回声消除的回声消除设备示意图;
图4示出根据本发明另一个方面的一种用于分组声学回声消除的方法流程图;
图5示出根据本发明一个优选实施例的一种用于分组声学回声消除的方法流程图;
图6示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的分组数据包都作为另一个方向分组数据包的参考;
图7示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的消除了回声的分组数据包都作为另一个方向的分组数据包的参考;
图8示出根据本发明的一个优选实施例的一种利用回声消除分组数据包作为参考的双向分组声学回声消除的缓冲与比较示意图;
图9示出了根据本发明的一个优选实施例的一种用于进行分组声学回声消除的循环滑动窗口示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图2示出根据本发明一个方面的一种用于分组声学回声消除的回声消除设备示意图;其中,所述回声消除设备包括获取装置1、方向确定装置2、目标更新装置3、消除装置4、发送装置5。具体地,获取装置1获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;方向确定装置2确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;目标更新装置3根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;消除装置4根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;发送装置5根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
在此,所述回声消除设备包括但不限于能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子硬件设备或软件设备;其中,所述硬件设备包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。本领域技术人员应能理解,其他的回声消除设备同样适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
所述回声消除设备可以被应用在任何的VOIP网络、实时通信网络RTC以及LTE/EPC网络中,上述网络在当前还没有有效并且公认的分组声学回声消除设备。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地,或者按照设定的或实时调整的工作模式要求,进行通话两端的源语音分组流的获取、传送方向信息的确定、目标分组流的更新、已消除回声分组流的获取、已消除回声分组流的发送等,直至所述回声消除设备停止获取待进行分组声学回声消除的通话两端的源语音分组流。
获取装置1获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包。
具体地,所述获取装置1从进行通话的通话两端(以通话端A与通话端B为例),获取待进行分组声学回声消除的通话两端的源语音分组流;其中,所述源语音分组流包括从通话端A至通话端B的源语音分组流,也包括从通话端B至通话端A的源语音分组流。其中,所述源语音分组流中包含一个或多个分组数据包(packet),且所述源语音分组流的分组数据包中可能包含回声包。
方向确定装置2确定所述源语音分组流中的每个分组数据包所对应的传送方向信息。
具体地,所述方向确定装置2可以根据所述分组数据包的包头信息,解析出所述分组数据包所对应的方向信息,其中,所述包头信息中的方向信息可以由例如流信息访问装置Flow Information Access等根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息进行识别,并在所述分组数据包的包头中为所述分组数据包加上方向标签,以供所述方向确定装置2进行解析。
或者,优选地,所述方向确定装置2可以直接根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息,确定所述分组数据包所对应的传送方向信息。
例如,以通话端A与通话端B为例来说明通话两端,则所述传送方向信息包括从A至B或者从B至A,若已知通话端A的地址和/或通话端B的地址,则根据所述数据包的包头信息中的源地址和目的地址,可以直接确定所述数据包所对应的传送方向信息;
或者,例如,通过利用预定的计算函数,将所述数据包的包头信息中的源地址与目的地址进行比较,若源地址大于目的地址,则确定所述数据包的传送方向为从A到B,反之,若源地址小于目的地址,则确定所述数据包的传送方向为从B到A,若存在其他情况,则出现错误,该数据包被丢弃。
目标更新装置3根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息。
具体地,所述目标更新装置3根据所述源语音分组流,通过将所述源语音分组流发送至独立缓冲区管理器,从而利用所述源语音分组流对独立缓冲区管理器中的目标分组流进行更新,其中,由于源语音分组流是待进行分组声学回声消除的通话两端的语音分组流,因此,所述目标分组流中也包括对应于所述通话两端的语音分组流。在此,由于所述方向确定装置2确定了所述源语音分组流中的每个分组数据包所对应的传送方向信息,因此所述目标分组流中的每个分组数据包也包含所对应的传送方向信息。
其中,本领域技术人员应能理解,所述独立缓冲区管理器可以由FPGA等硬件实现,也可以由软件实现。
消除装置4根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,所述消除装置4获取与所述独立缓冲区管理器中所述通话两端所对应的目标分组流,并获取与所述目标分组流相对应的进行分组声学回声消除后的不包含回声包的语音分组流,将所述不包含回声包的语音分组流作为参考分组流;所述消除装置4根据所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将不同方向的所述目标分组流与所述参考分组流进行对比,例如,将从A端至B端的目标分组流与从B端至A端的参考分组流进行对比,或者将从B端至A端的目标分组流与从A端至B端的参考分组流进行对比,基于分组声学回声消除算法(PAEC算法),将所述目标分组流与所述参考分组流进行对比,从而检测所述目标分组流中是否包含回声包,若包含回声包,则通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
在此,当利用替换包对所检测出的回声包进行替换,以获得与所述目标分组流相对应的已消除回声分组流时,其中,所述替换包包括但不限于噪声包(例如,包含一定类型的噪声的分组,例如白噪声、舒适噪声等)、无声包(例如,空分组)、在目标分组流中最后缓存的八分之一速率分组等,及其混合。
在此,所述参考分组流中的每个分组数据包所对应的传送方向信息的确定方法,与确定所述源语音分组流中的每个分组数据包所对应的传送方向信息的方法相同或相似,故在此不再赘述,并通过引用的方式包含于此。
或者,优选地,所述消除装置4可以根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述目标分组流中与所述传送方向信息相对应的分组数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,所述消除装置4获取与所述独立缓冲区管理器中所述通话两端所对应的目标分组流,根据所述目标分组流中每个分组数据包及其对应的传送方向信息,确定对应于不同的传送方向信息的两条目标分组流,在此,所述不同的传送方向信息以从A端到B端、从B端到A端为例;所述消除装置4将不同方向的目标分组流进行对比,对所述目标分组流进行回声消除,例如,当所述消除装置4消除从A端到B端的目标分组流时,则以从B端至A端的目标分组流作为从A端到B端的目标分组流的参考分组流,反之亦然;从而基于分组声学回声消除算法(PAEC算法),将所述目标分组流与所述参考分组流进行对比,从而检测所述目标分组流中是否包含回声包,若包含回声包,则通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
例如,图6示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的分组数据包都作为另一个方向分组数据包的参考。
具体地,RTP解析器将从A端和/或B端来的源语音分组流全部发送到数据包处理中,在独立缓冲区管理器中缓冲所述源语音分组流,并将所述源语音分组流作为目标分组流。在此,RTP解析器所发送的源语音分组流中包括所述源语音分组流的分组数据包的负载与包头,所述分组数据包的包头中包含所述源语音分组流中的每个分组数据包所对应的传送方向信息。其中,从A端发送来的源语音分组流中或者带有B端回声、或者不包含回声,从B端发送来的源语音分组流中或者带有A端回声、或者不包含回声。由于所述目标分组流是通过缓存所述源语音分组流所确定,因此,若所述源语音分组流中包含回声,则所述目标分组流中也包含相应的回声;若所述源语音分组中不包含回声,则所述目标分组流中也不包含相应的回声。
在所述PAEC算法模块中,所述独立缓冲区管理器中一个方向的目标分组流,以所述独立缓冲区管理器中预先存储的另一方向的目标分组流作为参考分组流,从而进行对比,以确定不同方向的所述目标分组流中是否具有回声包。
若所述目标分组流中存在回声包,则所述PAEC算法模块对其进行分组声学回声消除计算,将消除回声后的已消除回声分组流分别发送至A端与B端。
发送装置5根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
具体地,所述发送装置5根据所述已消除回声分组流所对应的传送方向信息,例如根据所述已消除回声分组流的目的地址信息,或者根据所述传送方向信息中相对应的通话端信息,将所述已消除回声分组流发送至与所述已消除回声分组流的源端所对应的对应端。
例如,若所述已消除回声分组流所对应的传送方向信息为A端至B端,则将所述已消除回声分组流发送至B端,在此,B端为A端的对应端。
从而,本发明实现了一种双向分组声学回声消除方法,该方法:
-减少硬件数量以及相应维护成本:与单向PAEC相比,双向PAEC硬件需求减半并节约了相关的维护,而且,由于可以利用软件方式实现独立缓冲区管理器,因此进一步减少了硬件数量,便于管理与控制;
-减少了呼叫处理与信令开销:对于基本通话来说只需要分配一个PAEC信道;
-实现没有任何信令支持的隐式/透明的PAEC:在分组语音(传送)路径中的网关能够整合双向PAEC,以为A端和B端提供隐式/透明的PAEC。
图3示出根据本发明一个优选实施例的一种用于分组声学回声消除的回声消除设备示意图;其中,所述回声消除设备包括获取装置1’、方向确定装置2’、目标更新装置3’、消除装置4’、发送装置5’、参考更新装置6’,所述消除装置4’包括回声确定单元41’、回声消除单元42’。具体地,获取装置1’获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;方向确定装置2’确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;目标更新装置3’根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;参考更新装置6’根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流;回声确定单元41’根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包;当所述目标分组流中包含回声包,回声消除单元42’对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;发送装置5’根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
其中,所述回声消除设备的获取装置1’、方向确定装置2’、目标更新装置3’、发送装置5’与图2所示对应装置相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地,或者按照设定的或实时调整的工作模式要求,进行通话两端的源语音分组流的获取、传送方向信息的确定、目标分组流的更新、参考分组流的建立或更新、是否包含回声包的确定、已消除回声分组流的获取、已消除回声分组流的发送等,直至所述回声消除设备停止获取待进行分组声学回声消除的通话两端的源语音分组流。
参考更新装置6’根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流。
具体地,所述参考更新装置6’可以与所述消除装置4’相交互,以获取所述已消除回声分组流;然后,所述参考更新装置6’根据所述已消除回声分组流,在所述独立缓冲区管理器中建立或更新与所述目标分组流相对应的参考分组流;即,若所述独立缓冲区管理器中尚未包含参考分组流,则根据所述已消除回声分组流,建立与所述目标分组流相对应的参考分组流,若所述独立缓冲区管理器中包含参考分组流,则根据所述已消除回声分组流,更新与所述目标分组流相对应的参考分组流。
回声确定单元41’根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包。
具体地,所述回声确定单元41’根据所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将不同方向的所述目标分组流与所述参考分组流进行对比,例如,将从A端至B端的带有回声的目标分组流与从B端至A端的消除了回声的参考分组流进行对比,或者将从B端至A端的带有回声的目标分组流与从A端至B端的消除了回声的参考分组流进行对比,基于分组声学回声消除算法(PAEC算法),检测所述目标分组流中是否包含回声包。
在此,所述参考分组流中的每个分组数据包所对应的传送方向信息的确定方法,与确定所述源语音分组流中的每个分组数据包所对应的传送方向信息的方法相同或相似,故在此不再赘述,并通过引用的方式包含于此。
优选地,所述回声确定单元41’可以根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,以及与所述目标分组流与所述参考分组流中相对应的多个相连续的分组数据包所对应的能量层级信息,确定所述目标分组流中是否包含回声包。
例如,所述回声确定单元41’根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将目标分组流与在另一方向上预先存储的参考分组流进行比较,检测所述目标分组流与参考分组流中相对应的多个相连续的分组数据包中,是否具有相似的数据包;然后,所述回声确定单元41’可进一步结合所述目标分组流与所述参考分组流中所对应的多个相连续的分组数据包相对应的能量层级信息(即各类增益(gain)信息),判断在所述目标分组流中的相似的数据包是否存在衰减,即能量层级信息低于对应的所述参考分组流的能量层级信息;若存在,则证明所述相似的数据包为回声包,则所述目标分组流中包含回声包。
这是由于在回声中,回声能量一般比原话音会有一定程度的衰减,从而将能量层级比较作为检测回声包的辅助条件。
当所述目标分组流中包含回声包,回声消除单元42’对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,若所述目标分组流中包含回声包,则回声消除单元42’通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
在此,优选地,当利用替换包对所检测出的回声包进行替换,以获得与所述目标分组流相对应的已消除回声分组流时,其中,所述替换包包括但不限于噪声包(例如,包含一定类型的噪声的分组,例如白噪声、舒适噪声等)、无声包(例如,空分组)、在目标分组流中最后缓存的八分之一速率分组等,及其混合。
在此,当利用带有给定负载的替换包时,需要相应地修改RTP头和其他长度相关字段和校验,例如,修改平台特定头、IP头、UDP头、RTP头。
例如,图7示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的消除了回声的分组数据包都作为另一个方向的分组数据包的参考。
具体地,RTP解析器将从A端和/或B端来的源语音分组流全部发送到数据包处理中,在独立缓冲区管理器中缓冲所述源语音分组流,并将所述源语音分组流作为目标分组流。在此,RTP解析器所发送的源语音分组流中包括所述源语音分组流的分组数据包的负载与包头,所述分组数据包的包头中包含所述源语音分组流中的每个分组数据包所对应的传送方向信息。其中,从A端发送来的源语音分组流中或者带有B端回声、或者不包含回声,从B端发送来的源语音分组流中或者带有A端回声、或者不包含回声。由于所述目标分组流是通过缓存所述源语音分组流所确定,因此,若所述源语音分组流中包含回声,则所述目标分组流中也包含相应的回声;若所述源语音分组中不包含回声,则所述目标分组流中也不包含相应的回声。
所述独立缓冲区管理器与所述PAEC算法模块相交互,以获取所述PAEC算法模块所确定的已消除回声分组流,并将所述已消除回声分组流缓冲至所述独立缓冲区管理器,以作为所述参考分组流。
在此,所述目标分组流与所述参考分组流中的每个分组数据包都包含其所对应的传送方向信息。
在所述PAEC算法模块中,所述独立缓冲区管理器中一个方向的目标分组流,与所述独立缓冲区管理器中预先存储的另一方向的参考分组流进行对比,如图8所示,目标分组流中数据包集合(数据包j至数据包j+M,即B端至A端方向的目标分组流)分别与参考分组流中对应的集合1、集合2、…、集合K(即A端至B端的语音分组流,以用于进行B端至A端方向的参考)进行对比,目标分组流中数据包集合(数据包i至数据包i+N,即A端至B端方向的目标分组流)分别与参考分组流中对应的集合1、集合2、…、集合Q(即B端至A端的语音分组流,以用于进行A端至B端方向的参考)进行对比,以确定不同方向的所述目标分组流中是否具有回声包。其中,所述参考分组流中不再包含对应的回声包,属于已消除回声分组流。
若所述目标分组流中存在回声包,则所述PAEC算法模块对其进行分组声学回声消除计算,将消除回声后的已消除回声分组流分别发送至A端与B端。
在此,用于对于A端与B端的回声帧的比较与移除算法如下所示:
具体地,在图8中,“N+1”是用于方向A到B的目标窗口大小,“N+Q”是对应的参考窗口大小。“Q”通过根据B端的回声路径延迟所决定。表示从A到B的目标缓冲区中的N+1(i,i+1,…,i+N)个分组、以及从A到B的参考缓冲区中的N+1(q,q+1,…,q+N)个分组的对比结果。在此,本领域技术人员应能理解,所述用于作为目标分组流A到B的参考分组流的传送方向信息应为从B到A。(q=q,q+1,…,q+Q-1)的最小值将会与最小阈值eTH相比较,以确定是否存在回声。
(公式1)
(公式2)
公式2中的结果最小值表示方向A到B目标流与对应的参考流的相似性;若公式2的结果满足下式:
(公式3)
则说明目标分组流与参考分组流中存在相似性,因此目标分组流中包含回声。
在图8中,“M+1”是用于方向B到A的目标窗口大小,“M+K”是对应的参考窗口大小。“K”通过根据A端的回声路径延迟所决定。表示从B到A的目标缓冲区中的M+1(j,j+1,…,j+M)个分组、以及从B到A的参考缓冲区中的M+1(k,k+1,…,k+M)个分组的对比结果。在此,本领域技术人员应能理解,所述用于作为目标分组流B到A的参考分组流的传送方向信息应为从A到B。(k=k,k+1,…,k+Q-1)的最小值将会与最小阈值eTH相比较,以确定是否存在回声。
(公式4)
(公式5)
公式5中的结果最小值表示方向B到A目标流与对应的参考流的相似性;若公式5的结果满足下式:
(公式6)
则说明目标分组流与参考分组流中存在相似性,因此目标分组流中包含回声。
在此,P为LSP的值(Line Spectral Pair,线谱对)。
优选地,所述回声确定单元41’可以根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,根据循环滑动窗口,确定所述目标分组流中是否包含回声包。
当每个分组数据包的头中带有传送方向信息时,对应于A端以及B端方向的分组数据包能被缓冲以用于PAEC处理。所述循环滑动窗口能够包含具有回声的目标分组数据包以及消除了回声的参考分组数据包。当分组数据包中的回声消除后,循环滑动窗口将分组数据包朝前移动。新的目标分组数据包和新的已消除回声的分组数据包将会被填入循环滑动窗口,从而实现PAEC的循环管理,以大幅减少PAEC信道资源和空间、提高分组声学回声消除的速度与效率。
具体地,例如,图9示出了根据本发明的一个优选实施例的一种用于进行分组声学回声消除的循环滑动窗口示意图。
图9示出了2条语音分组流,包括以p1至p7为代表的、逆时针进行缓冲的第一语音分组流,以及以p1’至p7’为代表的、顺时针进行缓冲的第二语音分组流;其中,第一语音分组流由B端发往A端,第二语音分组流由A端发往B端。
在图9中,设置目标窗口的大小为4,即利用4个一组的数据包进行语音分组流中是否包含回声的确定;设置参考窗口的大小为9,即保留9个消除了回声的数据包作为另一方向的语音分组流的参考分组流。
在由B端发往A端的第一语音分组流中,p1为目标窗口起点,p4为目标窗口终点,p1至p4为第一语音分组流的目标窗口;p5为参考窗口起点,p7为参考窗口终点,从p5所示的数据包至p7所示的9个数据包为从A端发往B端的参考窗口。
若有新的由B端发往A端的目标分组进入,则空闲的p8将被使用,目标窗口终点将移动到p8,目标窗口大小因此将超过4,从而触发回声检测和消除操作;在此,由于p1位于目标窗口起点位置,因此所述回声检测与消除操作是对于数据包p1进行的。
若p1被检测为回声,利用替换数据包替换p1,以执行回声消除;若p1为非回声的正常语音则无需替换。发送p1之后目标窗口起点移到p2(目标窗口大小恢复到4);参考窗口终点移动到p1,参考窗口大小变为10。因参考窗口扩大超过9触发参考缓冲区释放,参考窗口起点移动到p6,p5被释放。
在此,本领域技术人员应能理解,在实际应用中,参考窗口和目标窗口大小可以在线配置调校,可预留多个空闲缓冲区(即多个p8)。
在由A端发往B端的第二语音分组流中,p1’为目标窗口起点,p4’为目标窗口终点,p1’至p4’为第二语音分组流的目标窗口;p5’为参考窗口起点,p7’为参考窗口终点,从p5’所示的数据包至p7’所示的9个数据包为从B端发往A端的参考窗口。
若有新的由A端发往B端的目标分组进入,则空闲的p8’将被使用,目标窗口终点将移动到p8’,目标窗口大小因此将超过4,从而触发回声检测和消除操作;在此,由于p1’位于目标窗口起点位置,因此所述回声检测与消除操作是对于数据包p1’进行的。
若p1’被检测为回声,利用替换数据包替换p1’,以执行回声消除;若p1’为非回声的正常语音则无需替换。发送p1’之后目标窗口起点移到p2’(目标窗口大小恢复到4);参考窗口终点移动到p1’,参考窗口大小变为10。因参考窗口扩大超过9触发参考缓冲区释放,参考窗口起点移动到p6’,p5’被释放。
在此,本领域技术人员应能理解,在实际应用中,参考窗口和目标窗口大小可以在线配置调校,可预留多个空闲缓冲区(即多个p8’)。
图4示出根据本发明另一个方面的一种用于分组声学回声消除的方法流程图。具体地,在步骤s1中,回声消除设备获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;在步骤s2中,回声消除设备确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;在步骤s3中,回声消除设备根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;在步骤s4中,回声消除设备根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;在步骤s5中,回声消除设备根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
上述各步骤之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各步骤分别实时地,或者按照设定的或实时调整的工作模式要求,进行通话两端的源语音分组流的获取、传送方向信息的确定、目标分组流的更新、已消除回声分组流的获取、已消除回声分组流的发送等,直至所述回声消除设备停止获取待进行分组声学回声消除的通话两端的源语音分组流。
在步骤s1中,回声消除设备获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包。
具体地,在步骤s1中,回声消除设备从进行通话的通话两端(以通话端A与通话端B为例),获取待进行分组声学回声消除的通话两端的源语音分组流;其中,所述源语音分组流包括从通话端A至通话端B的源语音分组流,也包括从通话端B至通话端A的源语音分组流。其中,所述源语音分组流中包含一个或多个分组数据包(packet),且所述源语音分组流的分组数据包中可能包含回声包。
在步骤s2中,回声消除设备确定所述源语音分组流中的每个分组数据包所对应的传送方向信息。
具体地,在步骤s2中,回声消除设备可以根据所述分组数据包的包头信息,解析出所述分组数据包所对应的方向信息,其中,所述包头信息中的方向信息可以由例如流信息访问装置Flow Information Access等根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息进行识别,并在所述分组数据包的包头中为所述分组数据包加上方向标签,以供所述回声消除设备进行解析。
或者,优选地,在步骤s2中,回声消除设备可以直接根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息,确定所述分组数据包所对应的传送方向信息。
例如,以通话端A与通话端B为例来说明通话两端,则所述传送方向信息包括从A至B或者从B至A,若已知通话端A的地址和/或通话端B的地址,则根据所述数据包的包头信息中的源地址和目的地址,可以直接确定所述数据包所对应的传送方向信息;
或者,例如,通过利用预定的计算函数,将所述数据包的包头信息中的源地址与目的地址进行比较,若源地址大于目的地址,则确定所述数据包的传送方向为从A到B,反之,若源地址小于目的地址,则确定所述数据包的传送方向为从B到A,若存在其他情况,则出现错误,该数据包被丢弃。
在步骤s3中,回声消除设备根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息。
具体地,在步骤s3中,回声消除设备根据所述源语音分组流,通过将所述源语音分组流发送至独立缓冲区管理器,从而利用所述源语音分组流对独立缓冲区管理器中的目标分组流进行更新,其中,由于源语音分组流是待进行分组声学回声消除的通话两端的语音分组流,因此,所述目标分组流中也包括对应于所述通话两端的语音分组流。在此,由于所述步骤s2确定了所述源语音分组流中的每个分组数据包所对应的传送方向信息,因此所述目标分组流中的每个分组数据包也包含所对应的传送方向信息。
其中,本领域技术人员应能理解,所述独立缓冲区管理器可以由FPGA等硬件实现,也可以由软件实现。
在步骤s4中,回声消除设备根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,在步骤s4中,回声消除设备获取与所述独立缓冲区管理器中所述通话两端所对应的目标分组流,并获取与所述目标分组流相对应的进行分组声学回声消除后的不包含回声包的语音分组流,将所述不包含回声包的语音分组流作为参考分组流;在步骤s4中,回声消除设备根据所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将不同方向的所述目标分组流与所述参考分组流进行对比,例如,将从A端至B端的目标分组流与从B端至A端的参考分组流进行对比,或者将从B端至A端的目标分组流与从A端至B端的参考分组流进行对比,基于分组声学回声消除算法(PAEC算法),将所述目标分组流与所述参考分组流进行对比,从而检测所述目标分组流中是否包含回声包,若包含回声包,则通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
在此,当利用替换包对所检测出的回声包进行替换,以获得与所述目标分组流相对应的已消除回声分组流时,其中,所述替换包包括但不限于噪声包(例如,包含一定类型的噪声的分组,例如白噪声、舒适噪声等)、无声包(例如,空分组)、在目标分组流中最后缓存的八分之一速率分组等,及其混合。
在此,所述参考分组流中的每个分组数据包所对应的传送方向信息的确定方法,与确定所述源语音分组流中的每个分组数据包所对应的传送方向信息的方法相同或相似,故在此不再赘述,并通过引用的方式包含于此。
或者,优选地,在步骤s4中,回声消除设备可以根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述目标分组流中与所述传送方向信息相对应的分组数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,在步骤s4中,回声消除设备获取与所述独立缓冲区管理器中所述通话两端所对应的目标分组流,根据所述目标分组流中每个分组数据包及其对应的传送方向信息,确定对应于不同的传送方向信息的两条目标分组流,在此,所述不同的传送方向信息以从A端到B端、从B端到A端为例;在步骤s4中,回声消除设备将不同方向的目标分组流进行对比,对所述目标分组流进行回声消除,例如,当在步骤s4中,回声消除设备消除从A端到B端的目标分组流时,则以从B端至A端的目标分组流作为从A端到B端的目标分组流的参考分组流,反之亦然;从而基于分组声学回声消除算法(PAEC算法),将所述目标分组流与所述参考分组流进行对比,从而检测所述目标分组流中是否包含回声包,若包含回声包,则通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
例如,图6示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的分组数据包都作为另一个方向分组数据包的参考。
具体地,RTP解析器将从A端和/或B端来的源语音分组流全部发送到数据包处理中,在独立缓冲区管理器中缓冲所述源语音分组流,并将所述源语音分组流作为目标分组流。在此,RTP解析器所发送的源语音分组流中包括所述源语音分组流的分组数据包的负载与包头,所述分组数据包的包头中包含所述源语音分组流中的每个分组数据包所对应的传送方向信息。其中,从A端发送来的源语音分组流中带有B端回声,从B端发送来的源语音分组流中带有A端回声。由于所述目标分组流是通过缓存所述源语音分组流所确定,因此,所述目标分组流中也包含相应的回声。
在所述PAEC算法模块中,所述独立缓冲区管理器中一个方向的目标分组流,以所述独立缓冲区管理器中预先存储的另一方向的目标分组流作为参考分组流,从而进行对比,以确定不同方向的所述目标分组流中是否具有回声包。
若所述目标分组流中存在回声包,则所述PAEC算法模块对其进行分组声学回声消除计算,将消除回声后的已消除回声分组流分别发送至A端与B端。
在步骤s5中,回声消除设备根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
具体地,在步骤s5中,回声消除设备根据所述已消除回声分组流所对应的传送方向信息,例如根据所述已消除回声分组流的目的地址信息,或者根据所述传送方向信息中相对应的通话端信息,将所述已消除回声分组流发送至与所述已消除回声分组流的源端所对应的对应端。
例如,若所述已消除回声分组流所对应的传送方向信息为A端至B端,则将所述已消除回声分组流发送至B端,在此,B端为A端的对应端。
从而,本发明实现了一种双向分组声学回声消除方法,该方法:
-减少硬件数量以及相应维护成本:与单向PAEC相比,双向PAEC硬件需求减半并节约了相关的维护,而且,由于可以利用软件方式实现独立缓冲区管理器,因此进一步减少了硬件数量,便于管理与控制;
-减少了呼叫处理与信令开销:对于基本通话来说只需要分配一个PAEC信道;
-实现没有任何信令支持的隐式/透明的PAEC:在分组语音(传送)路径中的网关能够整合双向PAEC,以为A端和B端提供隐式/透明的PAEC。
图5示出根据本发明一个优选实施例的一种用于分组声学回声消除的方法流程图。具体地,在步骤s1’中,回声消除设备获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;在步骤s2’中,回声消除设备确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;在步骤s3’中,回声消除设备根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;在步骤s6’中,回声消除设备根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流;在步骤s41’中,回声消除设备根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包;当所述目标分组流中包含回声包,在步骤s42’中,回声消除设备对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;在步骤s5’中,回声消除设备根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
其中,所述方法的步骤s1’、步骤s2’、步骤s3’、步骤s5’与图4所示对应步骤相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
上述各步骤之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各步骤分别实时地,或者按照设定的或实时调整的工作模式要求,进行通话两端的源语音分组流的获取、传送方向信息的确定、目标分组流的更新、参考分组流的建立或更新、是否包含回声包的确定、已消除回声分组流的获取、已消除回声分组流的发送等,直至所述回声消除设备停止获取待进行分组声学回声消除的通话两端的源语音分组流。
在步骤s6’中,回声消除设备根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流。
具体地,在步骤s6’中,回声消除设备可以与所述步骤s4’相交互,以获取所述已消除回声分组流;然后,在步骤s6’中,回声消除设备根据所述已消除回声分组流,在所述独立缓冲区管理器中建立或更新与所述目标分组流相对应的参考分组流;即,若所述独立缓冲区管理器中尚未包含参考分组流,则根据所述已消除回声分组流,建立与所述目标分组流相对应的参考分组流,若所述独立缓冲区管理器中包含参考分组流,则根据所述已消除回声分组流,更新与所述目标分组流相对应的参考分组流。
在步骤s41’中,回声消除设备根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包。
具体地,在步骤s41’中,回声消除设备根据所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将不同方向的所述目标分组流与所述参考分组流进行对比,例如,将从A端至B端的带有回声的目标分组流与从B端至A端的消除了回声的参考分组流进行对比,或者将从B端至A端的带有回声的目标分组流与从A端至B端的消除了回声的参考分组流进行对比,基于分组声学回声消除算法(PAEC算法),检测所述目标分组流中是否包含回声包。
在此,所述参考分组流中的每个分组数据包所对应的传送方向信息的确定方法,与确定所述源语音分组流中的每个分组数据包所对应的传送方向信息的方法相同或相似,故在此不再赘述,并通过引用的方式包含于此。
优选地,在步骤s41’中,回声消除设备可以根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,以及与所述目标分组流与所述参考分组流中相对应的多个相连续的分组数据包所对应的能量层级信息,确定所述目标分组流中是否包含回声包。
例如,在步骤s41’中,回声消除设备根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,将目标分组流与在另一方向上预先存储的参考分组流进行比较,检测所述目标分组流与参考分组流中相对应的多个相连续的分组数据包中,是否具有相似的数据包;然后,在步骤s41’中,回声消除设备可进一步结合所述目标分组流与所述参考分组流中所对应的多个相连续的分组数据包相对应的能量层级信息(即各类增益(gain)信息),判断在所述目标分组流中的相似的数据包是否存在衰减,即能量层级信息低于对应的所述参考分组流的能量层级信息;若存在,则证明所述相似的数据包为回声包,则所述目标分组流中包含回声包。
这是由于在回声中,回声能量一般比原话音会有一定程度的衰减,从而将能量层级比较作为检测回声包的辅助条件。
当所述目标分组流中包含回声包,在步骤s42’中,回声消除设备对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
具体地,若所述目标分组流中包含回声包,则在步骤s42’中,回声消除设备通过删除所述回声包或者利用替换包对所检测出的回声包进行替换等方式对所述目标分组流进行回声消除。
在此,优选地,当利用替换包对所检测出的回声包进行替换,以获得与所述目标分组流相对应的已消除回声分组流时,其中,所述替换包包括但不限于噪声包(例如,包含一定类型的噪声的分组,例如白噪声、舒适噪声等)、无声包(例如,空分组)、在目标分组流中最后缓存的八分之一速率分组等,及其混合。
在此,当利用带有给定负载的替换包时,需要相应地修改RTP头和其他长度相关字段和校验,例如,修改平台特定头、IP头、UDP头、RTP头。
例如,图7示出根据本发明的一个优选实施例的一种双向分组声学回声消除参考示意图,其中,每个方向的消除了回声的分组数据包都作为另一个方向的分组数据包的参考。
具体地,RTP解析器将从A端和/或B端来的源语音分组流全部发送到数据包处理中,在独立缓冲区管理器中缓冲所述源语音分组流,并将所述源语音分组流作为目标分组流。在此,RTP解析器所发送的源语音分组流中包括所述源语音分组流的分组数据包的负载与包头,所述分组数据包的包头中包含所述源语音分组流中的每个分组数据包所对应的传送方向信息。其中,从A端发送来的源语音分组流中或者带有B端回声、或者不包含回声,从B端发送来的源语音分组流中或者带有A端回声、或者不包含回声。由于所述目标分组流是通过缓存所述源语音分组流所确定,因此,若所述源语音分组流中包含回声,则所述目标分组流中也包含相应的回声;若所述源语音分组中不包含回声,则所述目标分组流中也不包含相应的回声。
所述独立缓冲区管理器与所述PAEC算法模块相交互,以获取所述PAEC算法模块所确定的已消除回声分组流,并将所述已消除回声分组流缓冲至所述独立缓冲区管理器,以作为所述参考分组流。
在此,所述目标分组流与所述参考分组流中的每个分组数据包都包含其所对应的传送方向信息。
在所述PAEC算法模块中,所述独立缓冲区管理器中一个方向的目标分组流,与所述独立缓冲区管理器中预先存储的另一方向的参考分组流进行对比,如图8所示,目标分组流中数据包集合(数据包j至数据包j+M,即B端至A端方向的目标分组流)分别与参考分组流中对应的集合1、集合2、…、集合K(即A端至B端的语音分组流,以用于进行B端至A端方向的参考)进行对比,目标分组流中数据包集合(数据包i至数据包i+N,即A端至B端方向的目标分组流)分别与参考分组流中对应的集合1、集合2、…、集合Q(即B端至A端的语音分组流,以用于进行A端至B端方向的参考)进行对比,以确定不同方向的所述目标分组流中是否具有回声包。其中,所述参考分组流中不再包含对应的回声包,属于已消除回声分组流。
若所述目标分组流中存在回声包,则所述PAEC算法模块对其进行分组声学回声消除计算,将消除回声后的已消除回声分组流分别发送至A端与B端。
在此,用于对于A端与B端的回声帧的比较与移除算法如下所示:
具体地,在图8中,“N+1”是用于方向A到B的目标窗口大小,“N+Q”是对应的参考窗口大小。“Q”通过根据B端的回声路径延迟所决定。表示从A到B的目标缓冲区中的N+1(i,i+1,…,i+N)个分组、以及从A到B的参考缓冲区中的N+1(q,q+1,…,q+N)个分组的对比结果。在此,本领域技术人员应能理解,所述用于作为目标分组流A到B的参考分组流的传送方向信息应为从B到A。(q=q,q+1,…,q+Q-1)的最小值将会与最小阈值eTH相比较,以确定是否存在回声。
(公式7)
(公式8)
公式8中的结果最小值表示方向A到B目标流与对应的参考流的相似性;若公式8的结果满足下式:
(公式9)
则说明目标分组流与参考分组流中存在相似性,因此目标分组流中包含回声。
在图8中,“M+1”是用于方向B到A的目标窗口大小,“M+K”是对应的参考窗口大小。“K”通过根据A端的回声路径延迟所决定。表示从B到A的目标缓冲区中的M+1(j,j+1,…,j+M)个分组、以及从B到A的参考缓冲区中的M+1(k,k+1,…,k+M)个分组的对比结果。在此,本领域技术人员应能理解,所述用于作为目标分组流B到A的参考分组流的传送方向信息应为从A到B。(k=k,k+1,…,k+Q-1)的最小值将会与最小阈值eTH相比较,以确定是否存在回声。
(公式10)
(公式11)
公式11中的结果最小值表示方向B到A目标流与对应的参考流的相似性;若公式11的结果满足下式:
(公式12)
则说明目标分组流与参考分组流中存在相似性,因此目标分组流中包含回声。
在此,P为LSP的值(Line Spectral Pair,线谱对)。
优选地,在步骤s41’中,回声消除设备可以根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,根据循环滑动窗口,确定所述目标分组流中是否包含回声包。
当每个分组数据包的头中带有传送方向信息时,对应于A端以及B端方向的分组数据包能被缓冲以用于PAEC处理。所述循环滑动窗口能够包含具有回声的目标分组数据包以及消除了回声的参考分组数据包。当分组数据包中的回声消除后,循环滑动窗口将分组数据包朝前移动。新的目标分组数据包和新的已消除回声的分组数据包将会被填入循环滑动窗口,从而实现PAEC的循环管理,以大幅减少PAEC信道资源和空间、提高分组声学回声消除的速度与效率。
具体地,例如,图9示出了根据本发明的一个优选实施例的一种用于进行分组声学回声消除的循环滑动窗口示意图。
图9示出了2条语音分组流,包括以p1至p7为代表的、逆时针进行缓冲的第一语音分组流,以及以p1’至p7’为代表的、顺时针进行缓冲的第二语音分组流;其中,第一语音分组流由B端发往A端,第二语音分组流由A端发往B端。
在图9中,设置目标窗口的大小为4,即利用4个一组的数据包进行语音分组流中是否包含回声的确定;设置参考窗口的大小为9,即保留9个消除了回声的数据包作为另一方向的语音分组流的参考分组流。
在由B端发往A端的第一语音分组流中,p1为目标窗口起点,p4为目标窗口终点,p1至p4为第一语音分组流的目标窗口;p5为参考窗口起点,p7为参考窗口终点,从p5所示的数据包至p7所示的9个数据包为从A端发往B端的参考窗口。
若有新的由B端发往A端的目标分组进入,则空闲的p8将被使用,目标窗口终点将移动到p8,目标窗口大小因此将超过4,从而触发回声检测和消除操作;在此,由于p1位于目标窗口起点位置,因此所述回声检测与消除操作是对于数据包p1进行的。
若p1被检测为回声,利用替换数据包替换p1,以执行回声消除;若p1为非回声的正常语音则无需替换。发送p1之后目标窗口起点移到p2(目标窗口大小恢复到4);参考窗口终点移动到p1,参考窗口大小变为10。因参考窗口扩大超过9触发参考缓冲区释放,参考窗口起点移动到p6,p5被释放。
在此,本领域技术人员应能理解,在实际应用中,参考窗口和目标窗口大小可以在线配置调校,可预留多个空闲缓冲区(即多个p8)。
在由A端发往B端的第二语音分组流中,p1’为目标窗口起点,p4’为目标窗口终点,p1’至p4’为第二语音分组流的目标窗口;p5’为参考窗口起点,p7’为参考窗口终点,从p5’所示的数据包至p7’所示的9个数据包为从B端发往A端的参考窗口。
若有新的由A端发往B端的目标分组进入,则空闲的p8’将被使用,目标窗口终点将移动到p8’,目标窗口大小因此将超过4,从而触发回声检测和消除操作;在此,由于p1’位于目标窗口起点位置,因此所述回声检测与消除操作是对于数据包p1’进行的。
若p1’被检测为回声,利用替换数据包替换p1’,以执行回声消除;若p1’为非回声的正常语音则无需替换。发送p1’之后目标窗口起点移到p2’(目标窗口大小恢复到4);参考窗口终点移动到p1’,参考窗口大小变为10。因参考窗口扩大超过9触发参考缓冲区释放,参考窗口起点移动到p6’,p5’被释放。
在此,本领域技术人员应能理解,在实际应用中,参考窗口和目标窗口大小可以在线配置调校,可预留多个空闲缓冲区(即多个p8’)。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种用于分组声学回声消除的方法,其中,该方法包括以下步骤:
a获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;
b确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;
c根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;
d根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;
e根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
2.根据权利要求1所述的方法,其中,所述步骤b包括:
-根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息,确定所述分组数据包所对应的传送方向信息。
3.根据权利要求1或2所述的方法,其中,所述步骤d包括:
-根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述目标分组流中与所述传送方向信息相对应的分组数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
4.根据权利要求1或2所述的方法,其中,该方法还包括:
-根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流;
其中,所述步骤d包括:
d1根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包;
d2当所述目标分组流中包含回声包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
5.根据权利要求4所述的方法,其中,所述步骤d1包括:
-根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,根据循环滑动窗口,确定所述目标分组流中是否包含回声包。
6.根据权利要求4所述的方法,其中,所述步骤d1包括:
-根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,以及与所述目标分组流与所述参考分组流中相对应的多个相连续的分组数据包所对应的能量层级信息,确定所述目标分组流中是否包含回声包。
7.根据权利要求4所述的方法,其中,所述步骤d2包括:
-当所述目标分组流中包含回声包,利用替换数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
8.一种用于分组声学回声消除的回声消除设备,其中,该设备包括:
获取装置,用于获取待进行分组声学回声消除的通话两端的源语音分组流,其中,所述源语音分组流包含一个或多个分组数据包;
方向确定装置,用于确定所述源语音分组流中的每个分组数据包所对应的传送方向信息;
目标更新装置,用于根据所述源语音分组流,更新独立缓冲区管理器中所述通话两端所对应的目标分组流,其中,所述目标分组流的每个分组数据包中包含所述传送方向信息;
消除装置,用于根据所述目标分组流中每个分组数据包及其对应的传送方向信息,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流;
发送装置,用于根据所述已消除回声分组流所对应的传送方向信息,将所述已消除回声分组流发送至所述通话两端中的对应端。
9.根据权利要求8所述的回声消除设备,其中,所述方向确定装置用于:
-根据所述源语音分组流中的每个分组数据包所包含的源地址信息与目标地址信息,确定所述分组数据包所对应的传送方向信息。
10.根据权利要求8或9所述的回声消除设备,其中,所述消除装置用于:
-根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述目标分组流中与所述传送方向信息相对应的分组数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
11.根据权利要求8或9所述的回声消除设备,其中,该设备还包括:
参考更新装置,用于根据所述已消除回声分组流,建立或更新与所述目标分组流相对应的参考分组流;
其中,所述消除装置包括:
回声确定单元,用于根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,确定所述目标分组流中是否包含回声包;
回声消除单元,用于当所述目标分组流中包含回声包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
12.根据权利要求11所述的回声消除设备,其中,所述回声确定单元用于:
-根据所述目标分组流中每个分组数据包及其对应的传送方向信息,并结合所述参考分组流中的分组数据包,根据循环滑动窗口,确定所述目标分组流中是否包含回声包。
13.根据权利要求11所述的回声消除设备,其中,所述回声确定单元用于:
-根据所述参考分组流,结合与所述目标分组流与所述参考分组流中的每个分组数据包所对应的传送方向信息,以及与所述目标分组流与所述参考分组流中相对应的多个相连续的分组数据包所对应的能量层级信息,确定所述目标分组流中是否包含回声包。
14.根据权利要求11所述的回声消除设备,其中,所述回声消除单元用于:
-当所述目标分组流中包含回声包,利用替换数据包,对所述目标分组流进行回声消除,获取与所述目标分组流相对应的已消除回声分组流。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310419118.3A CN104468470B (zh) | 2013-09-13 | 2013-09-13 | 一种用于分组声学回声消除的方法与设备 |
PCT/IB2014/002005 WO2015036858A1 (en) | 2013-09-13 | 2014-09-08 | Method and device for packet acoustic echo cancellation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310419118.3A CN104468470B (zh) | 2013-09-13 | 2013-09-13 | 一种用于分组声学回声消除的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468470A CN104468470A (zh) | 2015-03-25 |
CN104468470B true CN104468470B (zh) | 2017-08-01 |
Family
ID=52292956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310419118.3A Expired - Fee Related CN104468470B (zh) | 2013-09-13 | 2013-09-13 | 一种用于分组声学回声消除的方法与设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104468470B (zh) |
WO (1) | WO2015036858A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105096960A (zh) * | 2014-05-12 | 2015-11-25 | 阿尔卡特朗讯 | 实现宽带分组语音的基于分组的声学回声消除方法与设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706344A (en) * | 1996-03-29 | 1998-01-06 | Digisonix, Inc. | Acoustic echo cancellation in an integrated audio and telecommunication system |
CN101933306A (zh) * | 2007-12-31 | 2010-12-29 | 阿尔卡特朗讯美国公司 | 用于在分组网络中检测和抑制回声的方法和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7333447B2 (en) | 2002-12-23 | 2008-02-19 | Broadcom Corporation | Packet voice system with far-end echo cancellation |
US7852792B2 (en) | 2006-09-19 | 2010-12-14 | Alcatel-Lucent Usa Inc. | Packet based echo cancellation and suppression |
US8144862B2 (en) | 2008-09-04 | 2012-03-27 | Alcatel Lucent | Method and apparatus for the detection and suppression of echo in packet based communication networks using frame energy estimation |
US20130155924A1 (en) * | 2011-12-15 | 2013-06-20 | Tellabs Operations, Inc. | Coded-domain echo control |
-
2013
- 2013-09-13 CN CN201310419118.3A patent/CN104468470B/zh not_active Expired - Fee Related
-
2014
- 2014-09-08 WO PCT/IB2014/002005 patent/WO2015036858A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706344A (en) * | 1996-03-29 | 1998-01-06 | Digisonix, Inc. | Acoustic echo cancellation in an integrated audio and telecommunication system |
CN101933306A (zh) * | 2007-12-31 | 2010-12-29 | 阿尔卡特朗讯美国公司 | 用于在分组网络中检测和抑制回声的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015036858A1 (en) | 2015-03-19 |
CN104468470A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FI108692B (fi) | Menetelmä ja laite datapakettien prosessoinnin ajoittamiseksi | |
CN1163030C (zh) | 实时信息接收装置 | |
KR100902456B1 (ko) | 단 대 단 VoIP 매체 지연을 관리하는 방법 및 장치 | |
US7457242B2 (en) | System for transmitting high quality speech signals on a voice over internet protocol network | |
US7903690B2 (en) | Method and system of sending an audio stream and a data stream | |
US7379466B2 (en) | In band signal detection and presentation for IP phone | |
EP1276281A2 (en) | Media stream delay monitoring for a network node | |
CN103763073B (zh) | 一种丢包重传的方法及终端 | |
JP5766882B2 (ja) | 終端間多重パスネットワークシステムのためのフィードバックプロトコル | |
WO2009088431A1 (en) | Method and apparatus for detecting and suppressing echo in packet networks | |
WO2008047560A1 (fr) | Appareil de transmission vocale | |
WO2009102553A1 (en) | Constrained dynamic path selection among multiple communication interfaces | |
US20080291902A1 (en) | Managing a buffer for media processing | |
Abualhaj et al. | Effective packet multiplexing method to improve bandwidth utilisation | |
CN104468470B (zh) | 一种用于分组声学回声消除的方法与设备 | |
US6650650B1 (en) | Method and apparatus for transmitting voice data over network structures | |
CN104468471B (zh) | 一种用于分组声学回声消除的方法与设备 | |
CN108234485A (zh) | 基于voip平台的诈骗声纹获取装置及利用该装置来拦截诈骗电话的方法、装置和系统 | |
US7633947B2 (en) | Method and apparatus for performing active packet bundling in a Voice over-IP communications system based on source location in talk spurts | |
US7299176B1 (en) | Voice quality analysis of speech packets by substituting coded reference speech for the coded speech in received packets | |
Altman et al. | On the utility of FEC mechanisms for audio applications | |
CN101764749A (zh) | 交换装置 | |
JP2005269134A (ja) | 構内交換機 | |
JP5664291B2 (ja) | 音声品質観測装置、方法及びプログラム | |
Singh et al. | Performance Progress in QoS Mechanism in Voice over Internet Protocol System. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170801 Termination date: 20190913 |
|
CF01 | Termination of patent right due to non-payment of annual fee |