具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一个应用场景的示意图。如图1所示,一个会议室内前面有一排显示屏幕,用于显示远端参会者的图像,屏幕下方有三个扬声器a、b和c,用于播放远端参会者的声音。在会议桌的前面放置有三个麦克风A、B和C,用于拾取本端参会者的声音。麦克风A、B和C在拾取本端参会者声音的同时,也会拾取到扬声器a、b和c播放的远端声音,而这个远端声音会作为回声和参会者声音一起传到远端,因此,在将麦克风拾取的声音传送到远端之前,需要将拾取的从扬声器播放的远端回声消除。下面将对本发明实施例所采用的远端回声信号的消除方法进行描述。
图2为本发明实施例一提供的回声信号处理方法的流程图。如图2所示,本实施例具体包括如下步骤:
步骤101、根据第一参考信号各子带能量和估计出的包络自适应滤波系数,得到回声信号各子带能量。
第一参考信号与第一麦克风信号中的第一回声信号相对应,第一麦克风信号包括本端声音信号和第一回声信号。具体地,第一麦克风信号是本端麦克风拾取的声音信号,包括本端声音信号和第一回声信号。第一参考信号与第一回声信号相对应,其对应关系可解释为:第一参考信号是远端麦克风拾取的远端声音信号,第一参考信号传输至本端,先由被本端扬声器播放,然后被本端麦克风拾取,拾取后的信号即为第一回声信号。
在本实施例中,可以将所述第一麦克风信号和所述第一参考信号分别进行子带滤波处理,得到所述第一麦克风信号各子带能量和所述第一参考信号各子带能量。在本实施例中,该子滤波处理是在频域中处理。
步骤102、根据第一麦克风信号各子带能量和回声信号各子带能量,获取增益系数。
步骤103、根据增益系数对第一麦克风信号进行调整,得到消除第一回声信号后的麦克风信号。
本实施例利用估计出的包络自适应滤波系数,根据能量获取增益系数,然后根据增益系数消除第一麦克风信号中的第一回声信号,其中能量是信号幅度有关的信息,与信号相位无关,所以本实施例提供的回声信号处理方法对相位不敏感,当回声路径发生变化时,相位的变化不会影响估计结果的正确性,从而提高了消除回声信号的效果。
本发明实施例二提供的回声信号处理方法以处理麦克风拾取的第k帧声音信号为例,在该实施例中,各个表达式中的下标k均用于指明该表达式所表示的参数为第k帧信号的参数,下面不再另行说明。
在介绍本发明实施例二提供的回声信号处理方法之前,首先对本实施例所采用的各参数之间的关系进行分析。
麦克风信号包括本端麦克风拾取的声音信号,用yk来表示。在双讲状态(即本端参会者和远端参会者同时讲话的状态)下,麦克风信号具体包括本端声音信号和回声信号。用uk,m表示本端麦克风拾取的第m个扬声器播放的回声信号,用zk表示本端麦克风拾取的本端声音信号及本端噪声信号。则有:
其中,uk表示多个回声信号之和,M表示本端扬声器的总个数。
将麦克风信号yk进行子带滤波处理(也即时频变换处理)后,得到:
令uk和zk互不相关,则得到麦克风信号yk各子带能量|Yk(jω)|2与uk各子带能量|Uk(jω)|2和zk各子带能量|Zk(jω)|2的关系为:
|Yk(jω)|2≈|Uk(jω)|2+|Zk(jω)|2 (3)
上式中,ωi是频谱上的若干个频率点,0<i<I,I为频率点总个数,ωi,lo和ωi,hi是求包络时的上下频率范围。(ω)是加权系数,偏离ωi越多其值越小。
将公式(3)代入公式(4),得到:
其中,
本实施例所利用的参考信号是远端麦克风拾取的远端声音信号,用xm,k表示与第m个扬声器对应的远端麦克风拾取的远端声音信号,其中m≥1。将参考信号xm,k进行子带滤波处理,得到参考信号xm,k子带能量|Xm,k(jω)|2,进而得到参考信号各子带总能量|Xk(jω)|2为:
假设远端音源只有一个,则有:
上式中,Hm(jω)为本端房间的传输函数,Tm(jω)为远端房间的传输函数,Sk(jω)为经子带滤波处理后的远端声音信号。假设Hm(jω)和Tm(jω)互不相关,则有:
上式中,
将公式(10)代入公式(6),得到:
令假设|H(jω)|2在ωi,io和ωi,hi频率范围内保持不变,且值恒为Hi(k),则有:
实际上,当前帧的回声信号不仅和当前帧的参考信号相关,也和前面若干帧的参考信号相关,因此公式(12)只是一个简化的公式,参考上述推导过程可以得到更加准确的公式是:
公式(13)表明当前帧的回声信号与前面N帧的参考信号有关。其中,Hi,n(k)为待估计的包络自适应滤波系数。
根据以上分析得到的各个参数之间的关系式,本发明实施例二提供了一种回声信号处理方法,图3为本发明实施例二提供的回声信号处理方法的流程图。如图3所示,本实施例具体包括如下步骤:
步骤201、在单讲状态下,获取包括第二回声信号的第二麦克风信号,将该第二麦克风信号进行子带滤波处理,得到第二麦克风信号各子带能量包络。
在单讲状态(即远端参会者讲话而本端参会者不讲话的状态)下,本端麦克风拾取的第二麦克风信号仅包括第二回声信号,也即此时yk=uk,将该第二麦克风信号进行子带滤波处理,得到第二麦克风信号各子带能量包络,即得到
步骤202、获取与第二回声信号对应的第二参考信号,将该第二参考信号进行子带滤波处理,得到第二参考信号各子带能量包络
其中n∈[0,N-1]。
第二参考信号被本端扬声器播放,然后被本端麦克风拾取后即为第二回声信号。
步骤203、根据第二麦克风信号各子带能量包络
和第二参考信号各子带能量包络
估计包络自适应滤波系数
本实施例可以根据公式(13),采用最小方差原则估计出包络自适应滤波系数,具体地,首先给包络自适应滤波系数赋值为一预设的经验值,利用公式(13)得到回声误差信号为:
在误差最小化原则下,采用NLMS或RLS等自适应滤波算法,估计出包络自适应滤波系数。
步骤204、在双讲状态下,获取包括本端声音信号和第一回声信号的第一麦克风信号,将该第一麦克风信号进行子带滤波处理,得到第一麦克风信号各子带能量。
步骤205、获取与第一回声信号对应的第一参考信号,将该第一参考信号进行子带滤波处理,得到第一参考信号各子带能量。
第一参考信号被本端扬声器播放,然后被本端麦克风拾取后即为第一回声信号。
步骤206、根据估计出的包络自适应滤波系数和第一参考信号各子带能量,估计出双讲状态下的回声信号各子带能量。
具体地,可以根据下式估计出双讲状态下的回声信号各子带能量:
步骤207、根据第一麦克风各子带能量和回声信号各子带能量,得到增益系数。
具体地,可以根据下式得到增益系数Gk(jω):
其中,β作为系数用于控制消除回声信号的比例,值越大消除的回声信号越多,但是带来的负面影响是可能导致音质变差,因此β应根据实验情况取一个合适的值,通常的取值范围是0.5至5之间。
步骤208、根据增益系数,对第一麦克风信号各子带信号进行调整。
具体地,根据下式对第一麦克风信号各子带信号进行调整:
步骤209、对调整后的第一麦克风信号各子带进行逆子带滤波处理,得到消除第一回声信号后的麦克风信号。
本实施例中,根据预先分析出的公式(13),首先在单讲状态下,根据获取的第二麦克风信号和第二参考信号估计出包络自适应滤波函数,且该估计过程是在进行子带滤波处理之后(即在频域下)进行的;然后,在双讲状态下,根据获取的第一参考信号以及包络自适应滤波函数,对第一麦克风信号进行处理,得到消除第一回声信号的麦克风信号,该过程也是在进行子带滤波处理之后(即在频域下)进行的,本实施例与时域处理相比,涉及的参数大大减少,复杂度降低,且稳定性良好。本实施例利用估计出的包络自适应滤波系数,根据能量获取增益系数,然后根据增益系数消除第一麦克风信号中的第一回声信号,其中能量是信号幅度有关的信息,与信号相位无关,所以本实施例提供的回声信号处理方法对相位不敏感,当回声路径发生变化时,相位的变化不会影响估计结果的正确性,从而提高了消除回声信号的效果。
图4为本发明实施例三提供的回声信号处理装置的结构示意图。如图4所示,本实施例具体包括:回声估计模块11、增益获取模块12和处理模块13,其中:
回声估计模块11用于根据第一参考信号各子带能量和估计出的包络自适应滤波系数,得到回声信号各子带能量;第一参考信号与第一麦克风信号中的第一回声信号相对应,第一麦克风信号包括本端声音信号和第一回声信号;
增益获取模块12用于根据第一麦克风信号各子带能量和回声信号各子带能量,获取增益系数;
处理模块13用于根据增益系数对第一麦克风信号进行调整,得到消除第一回声信号后的麦克风信号。
第一麦克风信号是本端麦克风拾取的声音信号,包括本端声音信号和第一回声信号。第一参考信号与第一回声信号相对应,其对应关系可解释为:第一参考信号是远端麦克风拾取的远端声音信号,第一参考信号被本端扬声器播放,然后被本端麦克风拾取后即为第一麦克风信号中的第一回声信号。
本实施例利用估计出的包络自适应滤波系数,根据能量获取增益系数,然后根据增益系数消除第一麦克风信号中的第一回声信号,其中能量是信号幅度有关的信息,与信号相位无关,所以本实施例提供的回声信号处理装置对相位不敏感,当回声路径发生变化时,相位的变化不会影响估计结果的正确性,从而提高了消除回声信号的效果。
图5为本发明实施例四提供的回声信号处理装置的结构示意图。如图5所示,本实施例在上述实施例三的基础上,进一步包括:滤波系数估计模块21,其中:
滤波系数估计模块21用于根据第二麦克风信号各子带能量包络和第二参考信号各子带能量包络,估计出所述包络自适应滤波系数,第二麦克风信号包括第二回声信号,第二参考信号与第二回声信号相对应,具体地,第二参考信号被本端扬声器播放,然后被本端麦克风拾取后即为第二回声信号。
进一步的,本实施例还可以包括:第一子带滤波模块22,用于将第一麦克风信号和第一参考信号分别进行子带滤波处理,得到第一麦克风信号各子带能量和第一参考信号各子带能量。
第二子带滤波模块23,用于将第二麦克风信号与第二参考信号分别进行子带滤波处理,得到第二麦克风信号各子带能量包络和第二参考信号各子带能量包络。
在本实施例中,结合图5,回声估计模块11根据第一子带滤波模块22获得的第一参考信号各子带能量和滤波系数估计模块21获得的包络自适应滤波系数,得到回声信号各子带能量。
进一步的,图4中的处理模块13可以具体包括:调整单元24和逆子带滤波单元25,其中:
调整单元24用于根据增益系数,对第一麦克风信号各子带能量进行调整;
逆子带滤波单元25用于对调整后的第一麦克风信号各子带进行逆子带滤波处理,得到消除第一回声信号后的麦克风信号。
本实施例可基于上述方法实施例中对各参数之间的关系的分析结果,具体地说,首先在单讲状态下,第二子带滤波模块23对本端麦克风拾取的第二麦克风信号进行子带滤波处理,得到第二麦克风信号各子带能量包络,对第二回声信号对应的第二参考信号进行子带滤波处理,得到第二参考信号各子带能量包络;滤波系数估计模块21根据公式(13),及第二麦克风信号各子带能量包络和第二参考信号各子带能量包络,采用最小方差原则估计出包络自适应滤波系数;然后在双讲状态下,第一子带滤波模块22对本端麦克风拾取的第一麦克风信号进行子带滤波处理,得到第一麦克风信号各子带能量,对第一回声信号对应的第一参考信号进行子带滤波处理,得到第一参考信号各子带能量;回声估计模块11根据公式(15)估计出双讲状态下的回声信号各子带能量;增益获取模块12根据公式(16)得到增益系数;调整单元24根据增益系数,对第一麦克风信号各子带能量进行调整;逆子带滤波单元25对调整后的第一麦克风信号各子带进行逆子带滤波处理,得到消除第一回声信号后的麦克风信号。
本实施例中,基于预先分析出的公式(13),首先在单讲状态下,根据获取的第二麦克风信号和第二参考信号估计出包络自适应滤波函数,且该估计过程是在进行子带滤波处理之后(即在频域下)进行的;然后,在双讲状态下,根据获取的第一参考信号以及包络自适应滤波函数,对第一麦克风信号进行处理,得到消除第一回声信号的麦克风信号,该过程也是在进行子带滤波处理之后(即在频域下)进行的,本实施例与时域处理相比,涉及的参数大大减少,复杂度降低,且稳定性良好。该装置利用估计出的包络自适应滤波系数,根据能量获取增益系数,然后根据增益系数消除第一麦克风信号中的第一回声信号,其中能量是信号幅度有关的信息,与信号相位无关,所以本实施例提供的回声信号处理装置对相位不敏感,当回声路径发生变化时,相位的变化不会影响估计结果的正确性,从而提高了消除回声信号的效果。
本发明实施例提供的上述装置各模块具体功能的实现过程可以参考上述方法实施例中的相关描述。
本发明实施例提供的上述装置可以作为音频处理设备的一部分,音频处理设备外部连接有多个扬声器和多个麦克风,音频处理设备同时也和通信设备相连,音频处理设备从通信设备接收远端声音信号,将远端声音信号传送给扬声器进行播放,同时可接收麦克风拾取的信号,将消除回声信号后的麦克风信号传送给通信设备。其中音频处理设备从通信设备接收的远端声音信号可作为消除回声信号的参考信号。通信设备从网络接收远端通信设备传送来的远端声音信号,同时将本端麦克风信号打包之后通过网络传送给远端通信设备。当然音频处理设备和通信设备在物理上可以两个独立的设备,也可以是一个设备中的两个部分。进一步的音频处理设备还具备其他处理功能,如对麦克风信号进行噪声抑制和自动增益控制等处理功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。