本发明涉及声音处理技术领域,尤其涉及一种基于对讲系统的回音消除方法和装置。
背景技术:
在楼宇对讲系统中,语音通话设备通常为嵌入式设备,并选择扬声器模式。此模式的扬声器音量通常都比较大,导致通话时产生的回音比较大,即对讲的一方说话时,可以清楚听到自己刚刚说的话。如果不对回音进行消除,不仅会对大大降低通话质量和用户体验,而且会形成震荡环路,产生刺耳的啸叫。
目前采用现有的软件回音消除技术,通常可以达到比较好的回音消除效果,但是却引入了全双工的问题,即对讲双方同时进行说话或者交替说话时,对方会听不到或者听不清自己的说话内容。因此,现有技术中存在以下技术缺陷:
(1)回音消除的效果调试稳定后,通话的双工效果比较差,存在对方听不见或听不清的问题。
(2)调试双工效果稳定后,会出现回音收敛过慢的问题,通话建立时存在较大回音,需要较长的时间才会慢慢消失,影响用户体验。
(3)通话过程,双方同时或者交替讲话时,会出现听到对方的声音忽大忽小的问题。
技术实现要素:
有鉴于此,本发明的目的在于提出一种基于对讲系统的回音消除方法和装置,能够实现在对讲系统的语音通话过程中,确保回音的有效消除,并大大提升全双工的体验效果。
为实现上述目的,本发明提供一种基于对讲系统的回音消除方法,所述方法包括:
获取扬声器播放的远端音频信号,并存入第一缓存中;
采集麦克风输入的近端音频信号,并存入第二缓存中;
分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号;
对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号;
对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数;
根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。
优选的,所述对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数,进一步包括:
分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
优选的,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
优选的,在所述根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器之后,进一步包括:
根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。
优选的,所述根据所述非线性滤波器的抑制比系数设置非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
为实现上述目的,本发明提供一种基于对讲系统的回音消除装置,所述装置包括:
获取单元,用于获取扬声器播放的远端音频信号,并存入第一缓存中;
采集单元,用于采集麦克风输入的近端音频信号,并存入第二缓存中;
读取单元,用于分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号;
处理单元,用于对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号;
检测单元,用于对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数;
控制单元,用于根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。
优选的,所述检测单元,还包括:
分析单元,用于分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
调整单元,用于根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
优选的,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
优选的,所述装置还包括:
输出单元,用于根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。
优选的,所述输出单元,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
有益效果:
(1)本发明提出对nlms自适应滤波器输出的音频数据进行语音信号检测,判断残留回音的大小,根据残留回音来动态调整nlms滤波器的步长系数和nlp滤波器的抑制比系数,其步长系数用于控制nlms滤波器的收敛速度和滤波效果,抑制比系数用于控制nlp滤波器的滤波强度。
(2)本发明通过音量补偿可以根据输入的音频数据大小估算放大增益,对近端音量进行补偿提升双工效果,减小声音忽大忽小的出现几率,同时,nlp滤波器会根据抑制比来决定是否进行音量补偿处理,可以防止残留回音被放大,保证回音消除的效果。
(3)本发明基于语音信号检测,通过语音活动检测和语音信号相关性来检测残余回音,可以大大提高残余回音的检测精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种基于对讲系统的回音消除方法的流程示意图。
图2为本发明一实施例提供的回音消除系统的原理示意图。
图3为本发明一实施例提供的一种基于对讲系统的回音消除装置的结构示意图。
发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以下结合实施例详细阐述本发明的内容。
由于目前的回音消除方案中大多数采用固定步长的nlms滤波器和固定抑制比的nlp滤波,通过调整预设的步长和抑制比来调试回音消除和双工的效果。调试回音消除的效果时,往往需要较大的步长和抑制比来获取较好效果,但是由于步长和抑制比是固定的,通话进入双工状态时,近端的声音也会出现较大抑制,导致对方听不清甚至听不见。相反,通过较小的步长和抑制比来获取更好的双工效果,较小步长会导致nlms滤波器需要更久的时间才能收敛,nlms滤波器未收敛时通常会有较大的回音。在现有的回音消除方法,通常采用信号抵消的方式来去除采集信号中的回音信号,回音大小受对方讲话声音大小的影响,就会导致去除回音后的近端信号出现忽大忽小的问题。
因此,本发明提供一种基于对讲系统的回音消除方法,能够实现在对讲系统的语音通话过程中,确保回音的有效消除,并大大提升全双工的体验效果。
参照图1所示为本发明一实施例提供的一种基于对讲系统的回音消除方法的流程示意图。
本实施例中,该方法包括:
s11,获取扬声器播放的远端音频信号,并存入第一缓存中。
在本实施例中,通过在实时对讲系统中,通话设备在播放对方传输过来的音频信号时,先通过软件程序将获取的远端音频信号写入第一缓存中,再输出到硬件模块进行播放;其中,该远端音频信号为pcm格式。
s12,采集麦克风输入的近端音频信号,并存入第二缓存中。
在本实施例中,通话设备的麦克风对近端音频信号进行实时采集,通过硬件模块的处理转化成pcm格式的音频信号,并存入第二缓存中,其中,该第二缓存中所存储的近端音频信号包含了近端声音和远端回音。
s13,分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号。
在本实施例中,通过循环地从第二缓存中读取一帧时间长度为10ms的音频数据,并记为第一音频信号;以及通过循环地从第一缓存中读取一帧时间长度为10ms的音频数据,并记为第二音频信号。根据对第一音频信号、第二音频信号进行线性滤波和非线性滤波处理,就可得到不含远端回音的近端声音了。
s14,对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号。
在本实施例中,对第一音频信号和第二音频信号进行nlms线性滤波处理,得到残余信号。其中,该线性滤波为一个动态步长的nlms自适应滤波器。通过nlms线性滤波处理可以增加回音延时估算操作,提升回音消除的稳定性。
s15,对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数。
其中,所述对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数,进一步包括:
分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
其中,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
在本实施例中,残余信号经过语音信号检测处理,输出nlms滤波器的步长系数和nlp滤波器的抑制比系数,其中,步长系数用于控制nlms滤波器的收敛速度和滤波效果,抑制比用于控制nlp滤波器的滤波强度。语音信号检测处理主要包含语音活动检测处理和语音信号相关性计算,语音信号相关性可以识别是否为回音,语音活动检测可以检测回音能量的大小,通过两者结合检测回音大小,可以大大提高检测精度。通过语音活动检测可以获取残余信号的语音能量似然比,再结合信号相关性计算、也就是计算残余信号和远端音频信号的相关性,就可以精确判断残余信号中残余回音的大小,从而自动调整滤波器的系数,能够大大提高双工的效果。
s16,根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。其中,在所述根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器之后,进一步包括:
根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。
其中,所述根据所述非线性滤波器的抑制比系数设置非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
在本实施例中,nlp非线性滤波为动态抑制比滤波器。当nlp的抑制比系数小于1时,nlp输出的音频数据需要进行音量补偿,对近端音频信号进行音量补偿,保证双工音量;当nlp抑制比的系数等于1,nlp输出的音频数据不含回音,不再需要音量补偿。音量补偿处理可以根据输入的音频数据大小估算放大增益,对近端音频信号进行补偿提升双工效果,减小声音忽大忽小的出现几率;同时,nlp根据抑制比决定是否进行音量补偿处理,可以防止残余回音被放大,保证回音消除的效果。
参照图2所示为本发明一实施例提供的回音消除系统的原理示意图。
在本实施例中,该回音消除系统设置于对讲系统中。该回音消除系统包括麦克风端输入模块m1、喇叭端输入模块m2、nlms滤波器模块m3、语音信号检测模块m4、非线性滤波器模块m5、音量补偿模块m6以及近端信号输出模块m7。其中,
麦克风端输入模块m1:用于缓存麦克风硬件电路采集到的pcm音频信号,通常包含远端回音信号和近端音频信号,为nlms滤波器模块m3输入采集音频数据。
喇叭端输入模块m2:用于缓存喇叭端播放的pcm音频信号,为nlms滤波器模块m3输入远端音频数据。
nlms滤波器模块m3:根据喇叭端输入模块m2提供的数据和语音信号检测模块m4提供的滤波器步长系数来估算回音信号,然后从麦克风端输入模块m1提供的数据减去预估的回音信号得到残余信号,作为语音信号检测模块m4的输入音频数据。
语音信号检测模块m4:用于处理m3输出的残余信号,分析该信号能量似然比和远端信号的相关性,估算回音大小,向nlms滤波器模块m3输出滤波器的步长系数,向非线性滤波器模块m5输出滤波器的抑制比和残余信号。
非线性滤波器模块m5:根据语音信号检测模块m4提供的滤波器抑制比设置滤波器的参数,去除语音信号检测模块m4输出的残余信号内的回音信号得到近端音频信号,当抑制比系数为1时,将滤波后的音频信号数据输出给近端信号输出模块m7,否则,将滤波后的音频数据输出给音量补偿模块m6。
音量补偿模块m6:根据麦克风端输入模块m1输出的采集信号和非线性滤波器模块m5输出近端音频信号估算放大增益,对近端音频信号进行放大,输出给近端信号输出模块m7。
近端信号输出模块m7:用于缓存不含回声的近端音频信号,为其他软件处理提供音频数据。
通过本发明所采用动态步长的nlsm滤波器和动态抑制比的nlp滤波方案,可以根据实际残余回音大小自动调整系数,取得更好的回音效果和双工效果。当回音比较大时,采用较大nlms滤波器的步长系数和nlp滤波器的抑制比,可以优化nlms的收敛速度和增大回音的抑制量,当回音较小时,采用较小的nlms滤波器的步长系数和nlp滤波器的抑制比,可以大大提高双工效果。
本发明增加对线性滤波后的信号进行语音信号检测模块,先对残余信号经过语音活动检测,获取语言信号的能量似然比,再计算残余信号和远端音频信号的相关性,可以准确获取残余回音的大小,从而精准控制滤波器的步长和抑制比。
本发明增加的音量补偿模块,可根据输入的音频数据大小估算放大增益,来补偿近端信号,解决通话时忽大忽小的问题。
本发明还提供一种基于对讲系统的回音消除装置,能够实现在对讲系统的语音通话过程中,确保回音的有效消除,并大大提升全双工的体验效果。
参照图3所示为本发明一实施例提供的一种基于对讲系统的回音消除装置的结构示意图。
本实施例中,该装置10包括:
获取单元11,用于获取扬声器播放的远端音频信号,并存入第一缓存中。
采集单元12,用于采集麦克风输入的近端音频信号,并存入第二缓存中。
读取单元13,用于分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号。
处理单元14,用于对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号。
检测单元15,用于对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数。
其中,所述检测单元15,还包括:
分析单元,用于分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
调整单元,用于根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
其中,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
控制单元16,用于根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。
其中,该装置10还包括::
输出单元,用于根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。所述输出单元,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
该装置10的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例中的实施方案可以进一步组合或者替换,且实施例仅仅是对本发明的优选实施例进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中专业技术人员对本发明的技术方案作出的各种变化和改进,均属于本发明的保护范围。
1.一种基于对讲系统的回音消除方法,其特征在于,所述方法包括:
获取扬声器播放的远端音频信号,并存入第一缓存中;
采集麦克风输入的近端音频信号,并存入第二缓存中;
分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号;
对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号;
对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数;
根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。
2.根据权利要求1所述的一种基于对讲系统的回音消除方法,其特征在于,所述对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数,进一步包括:
分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
3.根据权利要求1或2任一所述的一种基于对讲系统的回音消除方法,其特征在于,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
4.根据权利要求1所述的一种基于对讲系统的回音消除方法,其特征在于,在所述根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器之后,进一步包括:
根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。
5.根据权利要求4所述的一种基于对讲系统的回音消除方法,其特征在于,所述根据所述非线性滤波器的抑制比系数设置非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
6.一种基于对讲系统的回音消除装置,其特征在于,所述装置包括:
获取单元,用于获取扬声器播放的远端音频信号,并存入第一缓存中;
采集单元,用于采集麦克风输入的近端音频信号,并存入第二缓存中;
读取单元,用于分别从第一缓存和第二缓存中循环读取时间长度为l的第一音频信号和第二音频信号;
处理单元,用于对所述第一音频信号和所述第二音频信号进行线性滤波处理,得到残余信号;
检测单元,用于对所述残余信号进行语音信号检测,得到线性滤波器的步长系数和非线性滤波器的抑制比系数;
控制单元,用于根据所述步长系数动态控制所述线性滤波器,根据所述抑制比系数动态控制所述非线性滤波器。
7.根据权利要求6所述的一种基于对讲系统的回音消除装置,其特征在于,所述检测单元,还包括:
分析单元,用于分析所述残余信号的能量似然比和远端音频信号的相关性,计算残余回音的大小;
调整单元,用于根据所述残余回音的大小,动态调整所述线性滤波器的步长系数和所述非线性滤波器的抑制比系数。
8.根据权利要求6或7任一所述的一种基于对讲系统的回音消除装置,其特征在于,所述残余信号为所述第二音频信号与预估算回音信号的差值,所述预估算回音信号为通过所述线性滤波器的步长系数进行估算的。
9.根据权利要求6所述的一种基于对讲系统的回音消除装置,其特征在于,所述装置还包括:
输出单元,用于根据所述非线性滤波器的抑制比系数设置所述非线性滤波器的参数,消除残余信号中的残余回音,输出不含回音的近端音频信号。
10.根据权利要求6所述的一种基于对讲系统的回音消除装置,其特征在于,所述输出单元,进一步包括:
当所述nlp的抑制比系数为1时,输出不含回音的近端音频信号;
否则,当所述nlp的抑制比系数小于1时,通过音量补偿后输出不含回音的近端音频信号。
技术总结