CN105794189A - 检测非线性振幅处理 - Google Patents

检测非线性振幅处理 Download PDF

Info

Publication number
CN105794189A
CN105794189A CN201480064939.2A CN201480064939A CN105794189A CN 105794189 A CN105794189 A CN 105794189A CN 201480064939 A CN201480064939 A CN 201480064939A CN 105794189 A CN105794189 A CN 105794189A
Authority
CN
China
Prior art keywords
signal
audio
echo
amplitude
audio signal
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.)
Granted
Application number
CN201480064939.2A
Other languages
English (en)
Other versions
CN105794189B (zh
Inventor
L·A·埃克曼
J·德维琴特佩纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105794189A publication Critical patent/CN105794189A/zh
Application granted granted Critical
Publication of CN105794189B publication Critical patent/CN105794189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K11/00Methods or devices for transmitting, conducting or directing sound in general; Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
    • G10K11/16Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
    • G10K11/175Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L2021/02082Noise filtering the noise being echo, reverberation of the speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

公开了一种包括音频处理模块、回声消除模块和控制模块的计算机系统。音频处理模块被配置为处理音频信号并且向例如该系统的扬声器(或类似单元)输出经处理的音频信号。回声消除模块被配置为从经由例如该系统的麦克风(或类似单元)接收的音频信号中消除回声。控制模块被配置为检测指示由音频处理模块进行的非线性振幅处理的状况,并且基于所检测到的状况来控制由回声消除模块进行的所述回声消除。

Description

检测非线性振幅处理
背景技术
通信系统允许用户通过网络相互通信。例如,网络可以是互联网或公共交换电话网络(PSTN)。可以在网络的节点之间发送音频信号,从而允许用户通过通信系统在通信会话中相互发送和接收音频数据(诸如语音数据)。
用户设备可以具有能够用于接收诸如来自用户的语音的音频信号的音频输入单元(例如,麦克风)。用户可以进入与另一个用户的通信会话,例如,私人呼叫(在该呼叫中仅有两个用户)或会议呼叫(呼叫中有多于两个的用户)。在麦克风处接收用户的语音,对其进行处理并且然后通过网络将其发送给呼叫中的其它用户。用户设备还可以具有用于在呼叫期间向近端用户输出通过网络从远端用户接收的音频信号的音频输出单元(例如,扬声器)。这样的扬声器还可以用于输出来自在用户设备处执行的其它应用的音频信号,并且该音频信号可能作为将会干扰来自近端用户的语音信号的不需要的音频信号而被麦克风捕获。
连同来自用户的音频信号一起,麦克风还可能接收到不需要的且可能干扰从用户接收的音频信号的其它音频信号(例如,背景噪声)。背景噪声会是对在麦克风处从近端用户接收的用于在呼叫中向远端用户发送的音频信号的干扰的部分原因。
发明内容
提供该发明内容,以用简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。该发明内容既不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在被用来限制所要求保护的主题的范围。
公开了一种计算机系统,其包括音频处理模块、回声消除模块和控制模块。音频处理模块被配置为处理音频信号并且向例如系统中的扬声器(或类似单元)输出经处理的音频信号。回声消除模块被配置为从经由例如系统中的麦克风(或类似单元)接收的音频信号中消除回声。控制模块被配置为检测指示由音频处理模块进行的非线性振幅处理的状况,并且基于所检测到的状况来控制由回声消除模块进行的所述回声消除。
计算机系统可以是单个计算机设备(例如,容纳或连接到音频输入和音频输出单元二者的计算机设备),或者包括多个计算机设备(例如,一个计算机设备可以向扬声器或类似单元输出信号,另一个则可以经由麦克风或类似单元接收信号)。
还公开了一种包括一个或多个处理器的计算机设备。一个或多个处理器被配置为针对第一和第二音频信号(第二音频信号是第一音频信号的经处理版本)中的每一个音频信号,来确定针对该音频信号的振幅分布的参数。一个或多个处理器还被配置为检测指示对第一信号的所述处理的状况,所述处理包括非线性振幅处理。该检测包括将针对第一信号和第二信号的所确定的参数进行比较。
附图说明
为了理解本主题并且为了示出可以如何实施本主题,现在将通过举例的方式来对下面的附图进行参考,其中:
图1示出了通信系统的示意性示图;
图2是用户设备的示意性框图;
图3是回声消除技术的示意性功能图;
图4是对干净音频信号和经处理的音频信号的比较的示意性示图;
图4A是对干净音频信号和经处理的音频信号的比较的另一个示意性示图;
图4B是干净数字音频信号和经处理的数字音频信号的示意性示图;
图4C是分别针对干净音频信号和压缩音频信号的振幅分布的示意性示图;
图5是非线性振幅处理检测技术的示意性功能图;
图6是用于回声消除处理的流程图;
具体实施方式
现在将仅通过举例的方式来描述实施例。
本公开内容涉及检测过程,该检测过程用于通过在音频信号的音频(例如,语音)样本值上使用直方图(这些直方图是针对音频信号的振幅分布类型)来检测动态(动态范围)压缩(非线性振幅处理的一种形式)。干净语音信号的直方图可辨别地不同于经动态压缩的语音信号的直方图,并且利用这种差异来检测动态范围压缩。
在被建模用于消除的回声路径内采用的动态压缩可以使得回声消除失败和产生回声泄露。在多个实施例中,可以在声学回声消除环境下如下地采用本公开内容的检测过程。当检测到动态压缩时,实现对回声消除器的较积极的调谐,其阻止大部分的回声泄露。然而,如果没有检测到动态压缩,则不需要积极的调谐;因此,当没有检测到动态压缩时,实现对回声消除器的较不积极的调谐,其避免在该情况下引入不必要的降级。
图1示出了包括与第一用户设备104相关联的第一用户102(“用户A”)和与第二用户设备110相关联的第二用户108(“用户B”)的通信系统100。在其它实施例中,通信系统100可以包括任何数量的用户和相关联的用户设备。用户设备104和110可以在通信系统100中通过网络106进行通信,由此允许用户102和108通过网络106相互通信。虽然图1中示出的通信系统100是基于分组的通信系统,但是可以使用其它类型的通信系统。例如,网络106可以是互联网。用户设备104和110中的每个用户设备例如可以是移动电话、平板设备、膝上型计算机、个人计算机(“PC”)(例如,包括,WindowTMPC、MacOSTMPC和LinuxTMPC)、游戏设备、电视机、个人数字助理(“PDA”)或者能够连接至网络106的其它嵌入式设备。用户设备104被布置为从用户设备110的用户108接收信息,以及向用户设备110的用户108输出信息。用户设备104包括诸如显示器和扬声器之类的输出单元。用户设备104还包括诸如小键盘、触摸屏、用于接收音频信号的麦克风和/或用于捕获视频信号图像的照相机之类的输入单元。用户设备104连接至网络106。
用户设备104执行由与通信系统100相关联的软件提供商提供的通信客户端的实例。该通信客户端是在用户设备104中的本地处理器上执行的软件程序。该客户端执行用户设备104处需要的处理,以便用户设备104通过通信系统100发送和接收数据。
用户设备110与用户设备104相对应,并且在本地处理器上执行通信客户端,该通信客户端与在用户设备104处执行的通信客户端相对应。用户设备110处的客户端以这样的方式执行允许用户108通过网络106进行通信所需要的处理:该方式与用户设备104处的客户端执行允许用户102通过网络106进行通信所需要的处理的方式相同。用户设备104和110是通信系统100中的端点。虽然为了清楚起见,图1仅示出了两个用户(102和108)以及两个用户设备(104和110),但是更多的用户和用户设备可以被包括在通信系统100中,并且可以使用在各自的用户设备上执行的相应的通信客户端,通过通信系统100来进行通信。
第一用户设备104和第二用户设备110都可以执行声学回声消除。存在两种主要的方式来实现声学回声消除,一种是回声减法,而另一种是回声抑制。常常将这两种方法结合起来。
通过网络106来发送由第一用户设备104的麦克风捕获的音频信号以用于由第二用户设备110播放。第二用户设备110的麦克风捕获由第一用户设备104发送的音频信号的回声,如果该回声未被完全消除,则第二用户设备110将其发送回第一用户设备104。通过第一用户设备104的扬声器来播放所接收到的信号,并且由第一用户设备104的麦克风捕获回声。如果第一用户设备104中的回声消除器不能够完全地移除该回声,那么该回声信号被再次发送至第二用户设备110。
除了设备上的本地处理器之外,该设备通常还具有专用的音频信号处理模块(例如,声卡)。该音频信号处理模块为用户设备执行音频处理功能,例如,对在麦克风处捕获的音频信号的模数转换(ADC)以及对用于扬声器播放的音频信号的数模转换(DAC)。为了使用音频信号处理模块,在设备上的本地处理器上执行的操作系统(OS)通常需要特定的软件。例如,为了使用声卡,OS通常需要特定的声卡驱动程序(处理声卡的物理硬件与操作系统之间的数据连接的软件程序)。
通常该软件(即,声卡驱动程序)和/或硬件本身在播放信号(即,将从扬声器输出的信号)上引入效果以便使用户体验(例如,在驱动程序内包括的响度增强效果)最大化。这些效果由音频信号处理模块上的信号处理模块来实现,该音频信号处理模块的功能对于在该设备上的本地处理器上执行的、使用OS中的可用播放系统的应用来说是未知的。例如,硬件制造商通常在例如膝上型计算机中的扩音器(loudspeaker)设置中包括动态范围压缩。
动态范围压缩(也被称为动态压缩或简单压缩)常常在音频中使用,以通过窄化或“压缩”音频信号的动态范围来减小响亮声音的音量或放大轻微声音的音量(其也例如用在其中轻微的部分可能无法被听到或者响亮部分会变得过于响亮的场景(例如,广播和声音再现)中)。向下压缩减小某一阈值之上的响亮声音,同时轻微声音保持不受影响,而向上压缩增加阈值之下的声音的响度,同时使得更响亮的段落保持不变。向下和向上压缩都减小音频信号的动态范围。
使用这样的压缩意味着增强用户体验,例如,这是因为用户能够感知更响亮的声音。
然而,这对回声消除器提出了挑战,这是因为压缩器是通过传统回声消除方案而建模不太好的非线性振幅处理模块。当对通信设备使用压缩时,其在回声路径中引入了非线性。回声消除器更适于对回声路径中的线性失真进行建模,并且通常对于解决回声路径中存在的非线性失真是有问题的。因此,这些非线性回声路径会导致信号中的回声泄露或回声残留。
一些操作系统包括用于将即将被播放的信号反馈至在本地处理器上执行的应用的功能。包括这种功能的操作系统的例子是微软的Windows7、8、XP和Vista和WindowsPhone8操作系统。被反馈至本地处理器上执行的应用的这种信号之后在本文中被称为“回路信号”。使用回路信号的回声消除器不需要对由上述模块引入的这些非线性失真进行建模,因此,预期没有回声泄露。然而,回路信号并非对所有操作系统都是可用的。没有这种回路功能的操作系统的例子是安卓和iOS操作系统。在没有回路参考信号的情况下,回声消除器可能失败并产生回声泄露。
根据本公开内容,检测指示建模的回声路径中的非线性振幅处理的状况,并且基于所检测到的状况来控制回声消除过程。这减少或消除了这样的回声泄露,否则这种回声泄露将会发生在例如客户端无法访问用作参考信号的回路信号(或类似信号)的平台上。
图2示出了在其上执行用于在通信系统100上进行通信的通信客户端实例206的用户设备104的详细视图。用户设备104包括中央处理单元(“CPU”)或“处理模块”202,连接到该中央处理单元(“CPU”)或“处理模块”202的是:诸如可以被实现为触摸屏的显示器208以及用于输出音频信号的扬声器(或“扩音器”)210之类的输出设备;诸如用于接收音频信号的麦克风212、用于接收图像数据的照相机216以及小键盘218之类的输入设备;用于存储数据的存储器214;以及诸如用于与网络106进行通信的调制解调器之类的网络接口220。扬声器210经由音频信号处理模块209连接至CPU202。用户设备104可以包括除了图2中示出的那些元件之外的其它元件。如图2所示,显示器208、扬声器210、麦克风212、存储器214、照相机216、小键盘218和网络接口220可以集成到用户设备104中。在替代的用户设备中,显示器208、扬声器210、麦克风212、存储器214、照相机216、小键盘218和网络接口220中的一个或多个可以不集成到用户设备104中,并且可以经由各自的接口连接到CPU202。这样的接口的一个例子是USB接口。如果用户设备104经由网络接口220的到网络106的连接是无线连接,那么网络接口220可以包括用于将信号无线地发送至网络106并且从网络106无线地接收信号的天线。
图2还示出了在CPU202上执行的操作系统“OS”204。在OS204之上运行的是通信系统100的客户端实例206的软件。操作系统204管理计算机的硬件资源并且处理经由网络接口220向网络106发送的和从网络106发送的数据。客户端206与操作系统204进行通信,并且管理通信系统上的连接。客户端206具有客户端用户界面,该界面用于向用户102呈现信息并且从用户102接收信息。以这种方式,客户端206执行允许用户102通过通信系统100进行通信所需要的处理。
用于输出的音频数据被供应至音频信号处理模块209以用于在经由扬声器210输出之前进行处理。该处理可以包括如上所述的非线性振幅处理(例如,动态范围压缩)。
OS204并不提供供客户端206使用的回路信号。
参照图3,现在描述回声消除的方法。图3是用户设备104的一部分的功能图。
如图3所示,用户设备104包括扬声器210、麦克风212和信号处理模块300。信号处理模块300(如图3中的虚线框所示)表示通过执行在设备104的CPU202上的通信客户端应用206而实现的信号处理功能。信号处理模块300可以包括数字增益模块302/312,包括滤波器模块的建模模块304、控制模块306、噪声减少模块308和回声消除模块310。通过执行通信客户端应用206实现的信号处理功能可以包括比图3中所示的更多或更少的功能。用户设备104还包括音频信号处理模块209。
为了对回声路径增益进行建模并且估计由麦克风捕获的回声,需要参考信号,该参考信号是被标记为“远端信号”x(t)的信号。该信号表示通信客户端发送以用于从扬声器播放的、在由音频信号处理模块209处理之前的音频信号。
将从扬声器210输出的信号耦合至数字增益模块302的输入。信号处理模块300的输出x(t)(被表示为“远端信号”)耦合至音频信号处理模块209的输入。具体地,数字增益模块302的输出x(t)耦合至音频信号处理模块209的输入。数字增益控制模块302的输出还耦合至建模模块304的第一输入。数字增益控制模块302的输出还耦合至控制模块306的第一输入。音频信号处理模块209的输出耦合至扬声器210。应当注意的是,虽然在本文所描述的实施例中仅存在一个扬声器(由图中的附图标记210指示),但是在其它实施例中,可以存在将被输出的信号耦合至的多于一个的扬声器(以用于从其中输出)。类似地,虽然在本文描述的实施例中仅存在一个麦克风(由图中的附图标记212指示),但是在其它实施例中,可以存在从周围环境接收音频信号的多于一个的麦克风。麦克风212的输出y(t)耦合至信号处理模块300。具体地,麦克风212的输出y(t)耦合至噪声减少模块308的输入。麦克风212的输出还耦合至建模模块304的第二输入。麦克风212的输出还耦合至控制模块306的第二输入。建模模块304的输出耦合至回声消除模块310的第一输入。噪声减少模块308的输出耦合至回声消除模块310的第二输入。控制模块306的输出耦合至回声消除模块310的第三输入。回声消除模块310的输出耦合至增益控制模块312的输入。增益控制模块312的输出用于提供接收的信号(其中已应用了回声消除),以供用户设备104中的进一步处理。
图6是用于信号处理模块300的过程的流程图。
在步骤S602中,接收将从扬声器210输出的信号。例如,将被输出的信号可以是在用户102与108之间通过通信系统100的呼叫期间在用户设备104处在网络接口220处已经从用户设备110接收的远端信号。在其它实施例中,将被输出的信号可以是除了在呼叫中通过通信系统100以外的某个地方接收的。例如,将被输出的信号可以已经被存储在存储器214中,并且步骤S402可以包括从存储器214取回信号。
数字增益模块302可以在远端信号被供应至音频信号处理模块209之前对远端信号应用一定水平的增益。
在步骤S604中,远端信号由音频信号处理模块209处理。即,音频信号处理模块209执行对远端信号的数模转换(DAC),并且在向扬声器210输出经处理的音频信号之前,根据在CPU204上执行的软件所引入的效果来处理远端信号。由音频信号处理模块209应用的处理可以是时变的,并且可以针对远端信号的语音区域与噪声区域而不同。由音频信号处理模块209实现的处理可包括非线性振幅处理(例如压缩),由此不同的增益根据远端信号的输入电平而被应用到远端信号。
在步骤S606中,从扬声器输出已由音频信号处理模块209处理的音频信号。以这种方式,已由音频信号处理模块209处理的音频信号被输出至用户102。
在步骤S608中,麦克风212接收音频信号。如图3所示,所接收的音频信号可以包括近端信号,其为期望的信号或“初始信号(primarysignal)”。近端信号是用户102希望麦克风212接收的信号(在图3中被标记为近端)。然而,所接收的音频信号还包括由在步骤S606处从扬声器210输出的音频信号导致的回声信号。所接收的音频信号还可以包括诸如背景噪声之类的噪声。因此,总的接收音频信号y(t)可以由近端信号、回声和噪声的总和给出。回声和噪声充当对近端信号的干扰。尽管未在图3示出,但是向由麦克风212捕获的信号应用模数(ADC)转换以得到数字信号y(t)。
建模模块304将信号处理模块300的输出x(t)(远端信号)和所接收的音频信号y(t)作为输入。在步骤S610中,建模模块304用于对所接收的音频信号y(t)中的回声的回声路径进行建模。
回声路径描述了从扬声器210输出到麦克风212的音频信号所行进的声学路径的效果。音频信号可以直接从扬声器210行进到麦克风212,或者其可以是从近端终端的环境中的各种表面反射的。由从扬声器210输出的音频信号穿过的回声路径可以被认为是具有可以随着时间变化的频率和相位响应的系统。
为了从在近端麦克风212处记录的信号y(t)移除声学回声s(t),需要估计回声路径如何将期望的远端扬声器输出信号改变为该输入信号中的不被期望的回声分量。
对于近似线性的回声路径而言,回声路径h(t)描述了所接收的音频信号y(t)中的回声是如何与从扬声器210输出的远端信号x(t)相关的,例如,对于根据以下等式的由脉冲响应h(t)表示的线性回声路径:其中,s(t)是所接收的音频信号y(t)中的回声,Ntrue是由麦克风212接收的输出远端信号x(t)中的样本的数目,而hn(t)是描述回声路径h(t)的脉冲响应的系数。回声路径h(t)可以在时间和频率上变化,并且在本文中可以被称为h(t)或h(t,f)。回声路径h(t)可以取决于:(i)扬声器210和麦克风212周围的当前环境状况(例如,是否存在对音频信号从扬声器210到麦克风212的通路的任何物理障碍、气压、温度、风等等),以及(ii)扬声器210和/或麦克风212的特性(其可以在信号被输出和/或被接收时改变该信号),以及(iii)可能在远端信号中没有反映的对信号的其它处理——特别是由音频信号处理模块209进行的应有处理(但是还可能是由于其它因素,例如缓冲延迟)。
滤波器模块304通过确定对输出远端信号x(t)的当前的且有限数量(N)的先前值的加权和,来对与所接收的音频信号y(t)中的回声相关联的回声路径h(t)进行建模。滤波器模块304因此实现具有(在时间上)有限的长度的N阶滤波器,其通过该长度来在确定回声路径的估计时考虑输出远端信号x(t)的值。以这种方式,滤波器模块304动态地调整回声路径的滤波器估计该操作由以下等式来描述,其根据输出远端信号x(t)来定义所接收的音频信号y(t)中的回声:因此,在相应的N+1个加权的情况下,使用了输出远端信号x(t)的N+1个样本。N+1个加权的集合在本文中被简称为回声路径的估计也就是说,回声路径的估计是具有N+1个值的向量,其中,滤波器模块304实现N阶滤波器,将输出远端信号x(t)的N+1个值(例如,N+1个帧)考虑在内。
可以明白的是,当回声是所接收的音频信号的显著部分,即,当时,更容易调整回声路径的滤波器估计然而,如果回声s(t)独立于y(t)的其它信号分量,即使当回声不是所接收的音频信号y(t)的显著部分时,调整回声路径的滤波器估计也是可能的。
本领域技术人员应当明白的是,回声路径的估计并不需要明确地计算出来,而是可以通过从随机梯度算法(例如,最小均方(LMS)、归一化最小均方(NLMS)、快速仿射投影(FAP)和递归最小二乘(RLS))获得的滤波系数的方式来表示。
回声路径的估计用于提供对远端信号进行滤波的滤波器系数,以根据回声路径的估计生成麦克风信号y(t)中的回声分量的估计不管所使用的具体的算法如何,由于滤波器模块304的滤波器系数利用算法的每次迭代而进行更新,因此滤波器304的系数随时间持续地更新,而不管即将到来的信号状况如何。
虽然以上描述是指使用回声路径的时域FIR模型来估计近端信号y(t)中的回声分量,但是本领域技术人员应明白的是,在任何情况下这仅仅是例子而非进行限制。即,滤波器模块304可以进行操作以确定回声路径的估计并且因此确定时域上或频域上的近端信号y(t)中的回声分量的估计
回声路径的估计通常是基于高能量信号的,这是因为这些信号是产生最可靠的回声路径估计的信号。
如所指出的,上述建模假设近似线性回声路径,即,使得回声路径的输出信号振幅随着回声路径的输入信号振幅而线性地缩放。然而,如所讨论的,由建模模块403建模的回声路径包括音频信号处理模块209。由音频信号处理模块902进行的处理可以包括非线性振幅处理(例如,压缩),由此音频信号处理模块的输出信号振幅并不随着信号处理模块的输入信号振幅而线性地缩放,在这种情况下对线性回声路径的假设不成立。
不过,成功的回声消除仍然可以通过将非线性回声路径建模为线性(即使这种假设不正确)以及顾及非线性来实现,其中,非线性是通过以下方式来顾及的:回声消除模块310针对特定的建模回声路径(即,具有线性模型但其实际是非线性的回声路径)应用较积极的回声抑制(与在该特定回声路径实际上是线性的(即具有相同的线性模型、并且其实际上是基本线性的回声路径)情况下其将应用的回声抑制相比)。
这样做的代价将是对于双方通话而言较少的透明度、使近端讲话者衰减、并且使得更难以打断,这就是为什么除非严格需要,否则不应当应用这些设置的原因(即,仅应当在基本非线性振幅处理出现在回声路径中时才应用)。
控制模块306接收远端信号x(t)和麦克风信号y(t)。控制模块306能够检测(S612)指示由音频信号处理模块209进行的动态范围压缩(非线性振幅处理的一种形式)的状况,以及基于该检测来控制回声消除模块310。此外,使用所公开的技术,甚至可能检测到应用了什么程度的压缩,并且相应地对回声消除器进行调谐。可以在任何尺度(例如,0-1)上检测压缩程度。例如,针对所检测到的程度为0.1而言,可以对回声消除器应用较积极的设置(例如,与0相比而言);针对所检测到的程度为0.5而言,可以应用甚至更积极的设置;以及在1.0处,可以应用最积极的但是仍然是可接受的设置(即,使得不破坏双方通话,不引入太多的衰减等等)。
如果在步骤S612处,检测到指示由音频信号处理模块209进行的压缩的状况,则控制模块306控制回声消除器基于建模组件304的(线性)回声路径模型来应用(S614)较积极的回声消除以考虑线性建模的回声路径中的非线性。如果在S612处并未检测到这样的状况,则控制模块306基于线性模型是物理回声路径本身的真实反映的假设,控制回声消除器基于建模组件304的(线性)回声路径模型来应用(S614)较不积极的回声消除。
换句话说,由控制模块306进行的控制使非线性回声路径对回声消除性能的影响变小或减小。回声路径将可能不会被准确建模,这是因为其是非线性的,然而,尽管有这种不准确性,但是回声消除器采取诸如过抑制之类的其它方式来防止回声泄露。这表示针对在非线性回声路径的情况下进行下降的计算高效型机制,这是因为其不需要任何形式的非线性建模(其可能是计算成本高昂的)。
如以下将更详细地描述的,通过将信号x(t)和y(t)进行比较来检测该状况。可以基于每一帧来执行信号处理。由于可能在信号x(t)和y(t)之间存在延迟,所以需要估计该额外的延迟,以使该比较成为可能(即,将信号x(t)的帧与信号y(t)的对应帧进行匹配以用于比较)。
噪声减少模块308被布置为在不影响麦克风信号y(t)的语音信号质量的情况下降低麦克风信号y(t)的噪声水平。对于本领域技术人员来说已知各种噪声减少技术用于消除噪声目的。频谱相减是这些方法中的用于在噪声存在的情况下增强语音的一种方法。频谱相减使用噪声频谱的估计和具有噪声的语音频谱来形成基于信噪比(SNR)的增益函数,该增益函数与输入频谱相乘来抑制具有低SNR的频率。该过程的目的是获得与原始音频信号相比包含更少噪声的音频信号。
建模模块304中的滤波器模块对远端信号x(t)进行滤波以根据对回声路径的估计来生成对麦克风信号y(t)中的回声分量的估计。
回声消除模块310包括回声抑制模块,其被布置为对所接收的音频信号y(t)的高电平部分应用回声抑制。回声抑制器310的目的是将在麦克风信号(例如,在VoIP客户端中)中存在的扩音器回声抑制在足够低的电平以使其在麦克风捕获的近端声音(无回声声音)存在的情况下不显著/不产生干扰。回声抑制方法在本领域内是已知的。此外,由回声消除模块310应用的回声抑制方法可以以不同的方式来实现。这样,回声抑制方法的确切细节因此本文中不进行详细描述。
回声消除模块310被布置为在噪声减少模块308进行的噪声减少之后,接收麦克风信号中的回声分量的估计和麦克风信号y(t)本身作为输入。回声消除模块310被布置为在噪声减少之后确定所估计的回声的功率和麦克风信号y(t)的功率。在回声消除模块310中,所估计的回声功率与所确定的麦克风信号y(t)的功率和过抑制因素估计模块306的输出一起来使用,以形成针对时间t和频率f的回声抑制增益G(t,f)。回声抑制增益的目的是将麦克风信号中的任何回声s(t)抑制到其不显著的这样的水平。
例如,与较不积极的回声抑制相反,较积极的回声消除可以包括跨越由回声消除模块310接收的音频信号的音频频谱的所有频带f而应用回声抑制,而较不积极的回声抑制则可以例如包括仅在该频谱的选择性频带上而不在该频谱的其它频带上应用回声抑制。与较不积极的回声抑制相比,较积极的回声消除还可以包括对由回声消除模块310接收的音频信号应用较高水平的增益减少(跨越频谱的一个或多个频带或者跨越整个频谱),而较不积极的回声消除则可以包括对由回声消除模块310接收的音频信号应用较低水平的增益减少(跨越频谱的一个或多个频带或跨越整个频谱)。
替代地或另外,与常规设置的情况下相比,针对何时(时间上)应用回声抑制的控制机制可以被改变为通过在较多的帧中应用回声抑制来应用较积极的回声抑制。例如,无论何时检测到近端语音,回声抑制都被有效地停止;因此,如果回声被(错误地)检测为近端语音,则这会导致回声泄露。因此,一种方法将是改变用于近端语音活动的检测器,以使其不太灵敏,从而使得我们将不可能将回声捕获为近端语音。
回声消除模块310输出所接收的信号(其中回声已被抑制),以用于在数字增益控制模块312处的进一步处理。
从数字增益控制模块312输出的信号可以由客户端206处理(例如,编码和分组化),并且之后通过网络106被发送给在用户102和108之间的呼叫中的用户设备110。另外或替代地,从数字增益控制模块312输出的信号可以被用户设备104用于其它目的,例如,该信号可以被存储在存储器214中或用作对用户设备104处执行的应用的输入。
现在将描述用于检测动态范围压缩的过程。该过程涉及将第一和第二音频信号进行比较,第二音频信号是第一音频信号的经处理版本,以检测指示对第一信号的该处理(包括动态范围压缩(非线性振幅处理的一种形式))的状况。
该过程由控制模块306来实现,其中远端信号x(t)作为第一信号,而麦克风信号y(t)作为第二信号。因此,所公开的技术提供检测压缩何时已被添加到回声路径中并且达到什么程度的方式。如所讨论的,压缩是否被添加的知识能够被用于以不同的方式调谐回声抑制器,例如,当这样的压缩存在时将回声抑制器调谐为较积极的以消除信号中的所有回声。
通过将分别针对第一信号(此处是远端信号x(t))和第二信号(此处是麦克风信号y(t))的振幅分布的参数进行比较,来检测指示对第一信号(此处是远端信号x(t))的压缩的状况。
如本文中所使用的,针对信号a(t)的“振幅分布”Da(t)(即,在时间t处具有振幅a(t))被定义在(跨越)值V的集合上,集合V中的每个值v∈V与信号振幅a的一个或多个可能值相对应(例如,集合V是信号振幅值的集合,在该集合上定义了分布,例如,范围[a1,a2],每个值v∈V是信号振幅;集合V是信号振幅的函数的值的集合,例如,诸如[|a1|,|a2|]之类的范围[f(a1),(a2)])。该分布针对集合V中的每个值v∈V具有尺寸Da(t)(v),该尺寸与所观察到的信号a(t)中出现与该值v∈V对应的振幅的平均比率有关(例如,成比例)(例如,对于在振幅幅度的集合[|a1|,|a2|]上定义的分布Da(t)而言,分布Da(t)(|an|)的尺寸与所观察到的在信号a(t)中出现具有幅度|an|的振幅(即振幅an和-an两者)的比率有关)。
针对经数字采样的音频信号而言,振幅分布可以是在集合值B上定义的直方图Ha(t),每个值是条b∈B,每个条(bin)是振幅值的范围b=[|am|,|an|)(也就是大于或等于|am|但小于|an|的振幅大小值的范围),使得直方图被定义在这样的条的集合B={b1=[|a1|,|a2|),b2=[|a2|,|a3|),...}上,直方图Ha(t)针对每个条b∈B具有尺寸Ha(t)(b),该尺寸与所观察到的在信号a(t)中出现具有该条b=[|am|,|an|)中的幅度(即具有范围[|am|,|an|)中的幅度)的振幅的平均比率有关。在该例子中,每个条(即,分布集合B中的每个值b)对应于具有该条b中的相应幅度的振幅。
例如,可以针对数字音频信号来定义具有直方图Ha(t)的形式的振幅分布,该数字音频信号包括多个样本{s1,s2...}(例如,如图4A中所示,其是数字音频的部分的示意性示图),每个样本具有落入集合[0,2N]内的相应的整数振幅,其中N是音频比特深度,例如,16比特、32比特等,直方图被定义在样本幅度的集合上(总共有[0,2N]可能的样本幅度值,这是因为每个样本幅度|s1||对应于两个样本,一个表示信号a(t)的正信号振幅,而一个表示信号a(t)的负信号振幅)。直方图Ha(t)针对每个条b可以具有尺寸Ha(t)(b),其是通过对在数字音频信号内出现的具有该条b中的幅度的样本的数量进行计数来确定的。
振幅分布的另一个例子是概率密度函数(PDF),其中该PDF在该PDF所跨越的值的范围的子集上的积分与所观察到的在模拟信号内出现与该子集内的值对应的振幅的平均比率成比例(例如,在振幅的子集上的积分与在模拟信号内出现具有该子集中的振幅的振幅的比率成比例;或者在振幅幅度的子集上的积分与在模拟信号内出现具有该子集中的幅度的振幅的比率成比例)。PDF可以有效地被认为是具有大量的小条以使得直方图变得有效连续的直方图的一种形式。
对未压缩的音频信号执行的任何振幅处理通常导致对该分布的重新成形,这是因为振幅处理可能改变在信号内出现特定振幅值的平均比率。
信号a(t)和b(t)被示为归一化波形,即,被缩放为具有基本相等的信号振幅的峰值(最大)幅度,也就是使得|.|是绝对值函数,针对不小于0的输入而言其被评估为其输入,以及针对小于0的值而言其被评估为其输入的负值,使得|.|恒为正值。其可以例如表示音频信号,音频信号中的一个或两个已经历了音频归一化处理,即被缩放为a(t)→A*a(t)和/或b(t)→B*b(t),A和B是正常数,以使得
对该信号中的一个或两个信号的音频归一化(以使得在所述归一化后,每个信号具有基本相等的振幅的峰值(最大)幅度)能够用于顾及干净信号和压缩信号相对于彼此的任何线性振幅缩放(例如,由一个信号相对于另一个信号的线性音量调整而造成的,由于一个信号已经经由扬声器在空中发送并经由麦克风接收而导致的线性振幅衰减等)。音频归一化是这样的过程:通过该过程,信号统一地在振幅上被缩放以具有共同的峰值振幅幅度(例如,比如为0dBFS(“相对于全尺度(scale)的分贝”)的预定的峰值幅度),其是本领域中已知的技术。
然而,这样的归一化不能顾及如图4中所示的非线性振幅处理。图4示出了针对第一和第二时变音频信号a(t)(图4中被标记为“干净信号”)和b(t)(在图4中被标记为“压缩信号”)的波形的相应部分,b(t)是a(t)的经压缩版本。
例如,信号a(t)和b(t)可以分别是远端信号x(t)和麦克风信号y(t)的经归一化的部分。
在图4中还示出的是分别针对信号a(t)和信号b(t)的对应时变振幅幅度|a(t)|和|b(t)|。
可以通过将信号|a(t)|(即经归一化的干净信号的幅度)和|b(t)|(即经归一化的压缩信号的幅度)进行比较而看到压缩效果。例如,干净信号的较低振幅区域418a和420b具有明显不同于(具体地说,是低于)干净信号的较高振幅区域414a和416b的(局部)峰值幅度的峰值幅度。然而,如可以从图4中所看到的,这些差异通过压缩而大幅减小,而这种减小没有受到对信号a(t)、b(t)进行归一化的影响:与经归一化的干净信号的较低振幅区域418a和420a具有的(局部)峰值幅度距经归一化的干净信号的较低幅度区域414a和416a的(局部)峰值幅度相比,经归一化的压缩信号的对应的较低振幅区域418b和420b具有与经归一化的压缩信号的对应的较高振幅区域414b和416b的(局部)峰值幅度更加显著接近的(局部)峰值幅度。
因为这样,针对经归一化的压缩信号的振幅分布(其是跨越例如信号振幅的值的范围或者信号振幅的函数的值的范围(其幅度等)而定义的)将具有的形状不同于针对经归一化的干净信号的对应振幅分布(其是跨越信号振幅的值的范围或者信号振幅的函数的值的范围(其幅度等)而定义的)的形状。
例如,在图4C中示出了针对未压缩的数字语音信号的在振幅幅度值(从0到2^15比特运行)的范围上的具有直方图422a形式的振幅分布、以及针对该信号的经压缩版本(并且相对于该信号进行了归一化)的在振幅幅度值(从0到2^15比特运行)的范围上的具有直方图422b形式的对应振幅分布。干净音频具有达到峰值的分布422a,在0处达到峰值,而压缩语音具有更加均匀的分布422b,其中更多的振幅以比零足够大的幅度出现以被推出最低的条(振幅正好=0的数量可能保持相同;然而,小却非零的振幅增加)。
本文所公开的检测过程通过以下操作来利用以上振幅分布差异:针对干净音频信号和经处理的音频信号来确定相应的振幅分布的相应参数,以及通过将所确定的干净信号的参数与所确定的经处理的信号的参数进行比较来检测指示对干净信号的所述处理(包括非线性振幅处理(例如,动态范围压缩))的状况。相等或相似的参数指示所述处理不涉及非线性振幅处理(并且至多涉及线性振幅处理),而明显不同的参数则指示所述处理确实涉及非线性振幅处理。
针对由样本的时间序列组成的经归一化的数字音频(每个样本具有表示音频信号在该时间处的振幅的对应(整数)值)而言,这意味着该信号的经压缩(具体地,向上压缩)的归一化版本的样本平均来说将具有比原始信号的对应样本更大的(整数)幅度值。
在所述的实施例中,远端信号x(t)和麦克风信号y(t)的振幅值的具有直方图形式的振幅分布分别用于检测回声路径中的非线性振幅处理,其中,如果检测到(相应地,未检测到)这样的处理,则实现对回声消除器的较积极的(相应地,较不积极的)调谐(如上讨论)。
检测过程由信号处理模块300的控制模块306实现。如图5中所示,控制模块包括第一和第二窗口模块502a、502b;第一和第二振幅归一化模块540a、540b;第一和第二振幅幅度模块506a、506b;第一和第二振幅分布模块508a、508b、以及压缩检测模块510。第一(相应地,第二)窗口模块具有输出端和被配置为接收远端信号x(t)(相应地,麦克风信号y(t))的输入端。第一归一化模块504a(相应地,第二归一化模块504b)具有输出端和耦合至第一(相应地,第二)窗口模块502a(相应地,502b)的输出端的输入端。第一(相应地,第二)幅度模块506a(相应地,506b)具有输出端和耦合至第一(相应地,第二)归一化块504a(相应地,504b)的输出端的输入端。第一(相应地,第二)分布模块508a(相应地,508b)具有耦合至第一(相应地,第二)幅度模块506a(相应地,506b)的输出端的输入端。
比较模块510具有分别耦合至第一分布模块508a的输出端和第二分布模块508b的输出端的第一和第二输入端、以及耦合至回声消除模块310的第三输入端的输出端C(该输出端C是控制模块306的输出端)。
第一窗口模块接收远端信号x(t)并且存储其跨越时间窗口(图4A中的450)的最新近接收的部分402a(即,其最新近接收的样本)。在图4A中示出了远端信号x(t)的示例性部分402a(信号x(t)的最新近部分)。第二窗口模块接收麦克风信号y(t)并且存储其跨越相同时间窗口450的最新近接收的部分402b(即,其最新近接收的样本)。在图4A中示出了麦克风信号y(t)的示例性部分402b(信号y(t)的最新近部分)。检测过程可以是基于帧的,其中帧的大小是(例如)5或10ms或类似的大小(或实际上,大约1-100ms的任意数)。每当接收到帧时更新该部分,以便添加(最新帧中的)最新的样本并移除(最旧帧中的)最旧的样本。各个输出中的每个输出具有样本(振幅)值集合的形式,其中针对窗口内的每个样本都有一个样本值。窗口可以具有近似1秒的尺寸,以使得最新近1秒的远端音频(相应地,麦克风音频)由第一(相应地,第二)窗口模块502a(相应地,502b)来存储。然而,可以使用其它窗口尺寸。第一和第二窗口模块502a、502b分别向第一和第二归一化器模块504a、504b输出该窗口内的相应存储的远端信号和麦克风信号部分。替代地,如以下所解释的,可以实现近似1秒的有效窗口尺寸,而无需缓冲与例如在任意给定时间仅缓冲音频帧的情况下一样多的音频数据。
第一和第二归一化器模块分别从第一和第二窗口模块接收远端和麦克风部分,并且对其执行相应的振幅归一化过程。每个音频归一化过程涉及对相应的所接收的音频信号部分应用统一的增益,以使(最大的)峰值振幅幅度达到对两者来说共同的目标水平。第一和第二归一化模块分别输出经归一化的远端信号部分404a和经归一化的麦克风信号部分404b。在图4A分别示出了示例性的经归一化的远端和麦克风部分404a、404b(分别为信号)。这些输出具有经归一化的样本(振幅)值的集合的形式,其中针对所接收的音频部分的每一个样本有一个样本值。
第一和第二幅度模块506a、506b分别接收经归一化的远端和麦克风信号404a、404b,并且对其执行相应的幅度操作。每个幅度操作涉及通过计算经归一化的部分中的每一个点处(即针对该部分的每个样本)的振幅的绝对值(模数),来将经归一化的部分中的每一个点处(即针对该部分的每个样本)的振幅(其可以是正值或负值)转换为正值幅度。第一和第二幅度模块输出远端和麦克风信号幅度部分406a、406b。在图4C中分别示出了示例性远端和麦克风信号幅度部分406a、406b(分别是信号)。这些输出具有(振幅)幅度值集合的形式,其中针对所接收的经归一化的音频样本中的每一个样本有一个幅度值。
第一振幅分布模块508a基于从第一幅度模块506a接收的远端信号幅度部分406a来确定针对远端信号x(t)的振幅分布的至少第一参数。第二振幅分布模块508b基于从第二幅度模块506b接收的麦克风信号幅度部分406b来确定针对麦克风信号y(t)的振幅分布的至少第二参数。压缩检测模块510接收第一和第二参数,并且将它们相互比较,以检测由音频信号处理模块209进行的非线性振幅处理。这在下面详细地描述。
检测是基于以下事实:出于以上讨论的原因,麦克风信号y(t)的音频样本的绝对值的具有直方图(图4C中的422a)形式的振幅分布根据该信号是否经历了动态范围压缩而显著变化。更具体来说,其基于以下事实:当在回声路径中存在由音频信号处理模块209进行的非线性处理时,直方图422a明显不同于远端信号x(t)的音频样本的绝对值的等效直方图(图4C中的422b),而相反,当在回声回路不存在这样的非线性振幅处理时,这些直方图422a、422b基本是相同的。
发明人已经发现具有有限数量的条(对于16比特的数字音频而言大约是十个条)的粗略直方图通常足以用于此,这表示计算成本低廉的检测过程(即,以最小的计算机资源(例如处理器资源和存储器资源)消耗来实现动态范围检测)。
每个直方图422a、422b是通过以下操作来计算的:由相应的幅度模块606a、606b首先对语音样本取绝对值,并且然后由相应的分布模块608a、608b分配所述绝对值样本中的每一个样本给合适的条,并且之后对进入每个条(i=0、……、N-1,其中N是条的数量)中的样本的数量求和。这些条线性地分布在整个幅度尺度[0,32768]上(针对这样的表示的16比特的整数表示,正负振幅的幅度在0与至多2^16/2=32768之间变化,这可以在图4A中看到)。每个条是样本幅度的子范围,其值是集合[0,32768]的子集,例如,条0可以是子范围[0,32768/N],条1可以是子范围[(32768/N)+1到2*32768/N},等等。
在图4C中,水平轴表示音频样本的振幅幅度值,其被分为直方图条,而垂直轴表示具有该条中的值的振幅幅度的样本的数量。
样本由相应的分布模块608a、608b如下地分配给多个条:考虑跨越相应的所接收的样本幅度值集合的所有样本,并且每当观察到样本具有条m中的幅度(m包括在0和N-1之间),就将针对该条m的计数递增1,在已经考虑完所有样本后的对该条的总计数即是该条的值。
这在图4B中示出。图4B分别示出了经归一化的远端和麦克风信号的部分——(包括音频样本的时间序列{s1,s2,…})和(包括音频样本{s′1,s′2,…}的时间序列)——其被示为包括具有与每个信号内的相同时间范围[t1,t2]对应的固定大小的多个数字音频样本的数字信号。还示出了分别针对的对应的时变信号幅度(|包括对应样本{s1,s2,…}的绝对值(幅度)的序列{|s1|,|s2|,…});包括对应样本{s′1,s′2,…}的绝对值(幅度)的序列{|s′1|,|s′2|,…})。应明白的是,在图4B中仅示出了一小部分样本,而通常窗口450将包含更多的样本(例如,针对大约1秒的16比特音频是104数量级的样本;以24kHz的操作,每秒大约24000个样本)。
如图4A中所示,条0是第一范围的最低振幅幅度值,条1是下一范围的较高的幅度值,……,条m是较高范围的较高幅度值,等等。针对远端信号x(t)而言,大多数样本(即具有条0内的幅度)被分配给条0,而较少的样本(即具有较高的条中的幅度)被分配给较高的条(即,跨越具有较大幅度的值的范围的条:条1、……、条m、……、条N-1)。针对经受了压缩的包含回声分量的麦克风信号y(t)而言,压缩的影响是推高了样本振幅幅度并因此将样本从除了最高的条之外的每个条推动进入更高的条。
因此,对于经归一化的远端信号而言,图4B中示出的对样本的观察将使针对条0的计数增加9(有9个样本被示为分配给该条0),使针对条1的计数增加4(有4个样本被示为分配给该条1),使针对条m的计数增加1(有1个样本被示为分配给该条1)。相比之下,对于经归一化的麦克风信号而言,图4B中示出的对样本的观察将使针对条0的计数仅增加3(仅有3个样本被示为分配给该条0,这是因为样本由于压缩而被推高离开该条),使针对条1的计数增加8(有8个样本被示为分配给该条1,样本通过压缩而被推高从条0进入条1),使针对条m的计数增加2(样本通过压缩而被推高进入该条)。
图4C示出了直方图422a(针对经归一化的近侧信号)、422b(针对经归一化的麦克风信号)的例子,每个直方图分别针对干净语音信号和压缩语音信号具有相应的多个条{b0,b1,…}、{c0,c1,…},直方图是由相应的分布模块508a、508b以上面所描述的方式,基于幅度模块506a、506b的相应输出,基于在部分窗口450中观察到的样本而计算的。干净语音在零处具有达到峰值的分布,而压缩语音更均匀地分布并且在较高的振幅处具有更多的样本。即,与更均匀分布的压缩语音相比,干净语音包含更多的接近0的样本。这是由于较低的振幅幅度样本通过压缩被推高进入较高的振幅幅度条中,如上面所指出的。
如上面所指出的,直方图填充过程可以直到直方图的一个条填满(对于16比特的精确度而言,为32767计数——即一秒的数量级)为止,而不是对维持整个窗口的数据(例如,维持1秒)进行缓冲。检测过程(例如,算法)循环逐个通过帧中的样本,并将它们放入条中,针对每个接收到的帧执行一次该循环。在这种情况下,无需缓冲像一秒的音频数据那么多的音频数据;该过程在可用的小音频块(chunk)(例如,帧)上运行(每个音频块用于更新该直方图),并且然后仅存储直方图数据(丢弃经缓冲的音频);维持1秒的音频数据仍然近似为用于进行关于压缩的一次“决策”的数据量,因此,1秒是有效窗口尺寸。
在一个实施例中,针对分布的相应的参数可以通过以下操作来确定:由分布模块508a、508b分别将直方图(分别为522a、522b)的上面部分与该同一直方图(522a、522b)的下面部分进行比较,以确定相应的第一和第二权重参数。这些参数被提供至检测模块510,其中,作为由检测模块510进行的非线性振幅检测的一部分,将它们相互比较。
例如,直方图422a的条的相应的下面求和和上面求和是由分布模块508a如下计算的,并且直方图422b的条的相应的下面求和和上面求和是由分布模块508b如下计算的:
508a针对具有条{b0,b1,…}的直方图422a进行计算,在每个条中存在相应数量的值{h0,h1,…}:
S L x ^ ( t ) = Σ i = p q h i , S U x ^ ( t ) = Σ i = r s h i ,
其中,hi是条bi中的值的数量,并且其中,bp≤bq,br≤bs,bp≤bs;并且
508b针对具有条{c0,c1,…}的直方图422b进行计算,在每个条中存在相应数量的值{g0,g1,…}:
S L y ^ ( t ) = Σ i = p q g i , S U y ^ ( t ) = Σ i = r s g i ,
其中,gi是条ci中的振幅值的数量,并且其中,cp≤cq,cr≤cs,cp≤cs
该求和可以是在针对每一个直方图的相同(或至少类似)的范围上,以使得bp=cp,bq=cq,br=cr,bs=cs(或者使得至少bp≈cp,bq≈cq,br≈cr,bs≈cs)。
根据实际情况,多个条之间的界限可以作为常规设计过程的一部分来进行调谐。依照经验,发明人已经发现条号2应当是上面求和的一部分,而条0可以被排除在所有下面的条的总和之外。对于具有相应的条{b0,b1,…,bN-1}、{c0,c1,…cN-1}(其中,N≈10)的直方图522a、522b而言,如下确定上面和下面求和:
分布模块508a针对具有条{b0,b1,…,bN-1}的直方图422a进行计算:
S L x ^ ( t ) = h 1 , S U x ^ ( t ) = Σ i = 2 N - 1 h i ,
并且分布模块508b针对具有条{c0,c1,…cN-1}的直方图422b进行计算:
S L y ^ ( t ) = g 1 , S U y ^ ( t ) = Σ i = 2 N - 1 g i ;
之后由第一和第二分布模块508a、508b分别如下计算第一和第二权重参数(分别是),在本实施例中第一和第二权重参数分别是针对远端信号直方图422a和麦克风信号直方图422b的上面求和与下面求和之间的比值:
508a计算:508b计算:
第一和第二参数中的每一个参数是针对该直方图的、对与该直方图中的下面权重相比而言的该直方图中的上面权重的的测量。高值R指示更平坦的分布,这意味着压缩已经被应用到该信号。因此,所检测到的(麦克风信号参数)明显大于(远端信号参数)的状况指示已经由音频信号处理模块209应用该非线性压缩,而所检测到的基本相同的状况指示在回声路径中还没有应用任何非线性振幅处理。
压缩检测模块510框被配置为通过将进行比较来检测由音频信号处理模块209进行的压缩,并且向回声消除模块310输出二进制值信号C∈{0,1}(其中,与C=0相比,在C=1的情况下由回声消除模块进行更积极的回声消除)。
简单的比较可以通过以下操作来实现:由检测模块510计算分布间精简(compaction)参数并且确定输出C为:
然而,针对接近T0的值T,这可能导致输出C中的不希望的振荡(即过度的快速波动)。因此,在一些实施例中,通过检测模块510根据如下的切换方案来确定到回声消除模块310的输出C来引入滞后(hysteresis):
针对C==0,如果T>T上面,则C→1;针对C==1,如果T<T下面,则C→0;
T上面>T下面
也就是这样的切换方案:当分布间比较参数T上升高于上面阈值时,通过该切换方案,输出C从较低的状态切换到较高的状态;并且当分布间比较参数T下降低于下面阈值时,输出C从较高的状态切换到较低的状态,其中,较高的阈值大于(并且不等于)较低的阈值。
针对T上面和T下面的值可以通过调谐来确定。T上面=1.5和T下面=1.2的值被预期为合理的。
在该实施例中,C是二进制值的输出(即,0或1)。响应于所接收的信号与C=0(相应地,C=1)相对应,回声消除模块310可操作为应用较积极(相应地,较不积极)的回声消除(如上讨论)。
在上述的实施例中,声学系统(即,通信系统100)仅包括两个用户设备。然而,应明白的是,本文所述的方法可以被应用在包括多于两个的用户设备的声学系统中。
在替代的实施例中,正如显而易见的(并且如上面所讨论的),C的非二进制值可以用于实现进一步水平的越来越积极的回声消除,其随着检测到更极端的压缩而变得越来越积极(如直方图422a和422b之间的渐增的差异性所指示的)。
仅当检测到远端活动时才运行压缩检测。对远端信号运行语音活动检测器(VAD)(未示出),以使得仅在远端活动时段期间才计算直方图。此外,“干净回声”(即,没有近端活动)可期望用于直方图计算(如果近端同时在讲话,则这会引起可能对检测产生负面影响的双方通话)。因此,还可以对麦克风信号y(t)运行VAD,其中仅在存在远端活动并且没有近端活动的时段期间执行压缩检测。
此外,虽然在上面每个分布422a/422b的相应的参数是针对每个分布、通过将该分布的下面部分与该同一分布的上面部分进行比较来确定的,但是可以使用替代的参数。例如,直方图422a和422b可以通过针对每个直方图确定百分位(percentile)的位置(例如,第95百分位)来进行比较。较高值的百分位再次指示更均匀分布的直方图(由动态压缩造成的)。在这种情况中,指示回声路径中的非线性振幅处理的状况可以是针对直方图422a、422b中的每一个直方图的该百分位(例如,第95百分位)的相应值之间的明显的差(相比之下,直方图522a和522b具有基本上相似的该百分位(例如,第95百分位)的值,这指示在回声回路中不存在这样的压缩)。也可以以显而易见的方式采用诸如方差(对伸展度(spread)的测量)和峰态(对峰度(peakedness)的测量)之类的其它的测量参数。
此外,压缩检测可以替代地基于例如从音频信号处理模块209输出的控制信号(而不是基于对信号的比较),该模块被配置为提供控制信号,该控制信号指示该模块是否对其输入执行非线性振幅处理。
此外,虽然在上面检测了回声路径中的非线性振幅处理,但是可以在其它情况中(例如,具有预先记录的第一和第二信号,第二信号是第一信号的经处理版本)采用压缩检测过程。两者可以作为音频被存储在计算机可读介质上,并且可以通过从计算机可读介质中读取该音频数据而被接收。
此外,虽然在上面是在对第一(例如,远端)和第二(例如,麦克风)信号部分的比较之前对其进行归一化,但是这可以是不必要的(即,可以不需要振幅缩放),例如,如果已知第一和第二信号具有基本上相等的峰值振幅或如果检测到它们具有基本相等的峰值振幅。或者替代地,在多个实施例中,可以仅对所述信号中的一个信号进行归一化,该信号被归一化为另一个信号的峰值振幅(以使得在对所述一个信号进行归一化之后,两者具有相同的峰值振幅)。
此外,虽然在上面,振幅分布是通过比较其参数来进行比较的,但是替代地,可以对振幅分布(例如,直方图)直接进行比较,而无需确定任何参数(比值、百分位等等)。例如,可以将两个直方图逐个条地进行比较,并且基于这些差异来做出决策。可想到的是直接比较音频信号而无需振幅分布(例如,通过在时域上相减),但是将需要按逐个样本对时域样本进行同步。
在上面所述的实施例中,在VoIP系统中实现了回声移除(例如,所接收的音频信号可以包括在用户102和108之间通过通信系统100的呼叫期间用于传送给用户设备110的用户102的语音)。然而,本文所述的方法可以被应用在其中将应用回声消除的任何合适的系统中。
可以通过在用户设备104处执行计算机程序产品(例如,客户端206)来实现本文所述的方法。即,计算机程序产品可以被配置为减少包括用户设备104和至少一个另外的用户设备的声学系统中的噪声,其中,计算机程序产品被体现在计算机可读存储介质上(例如,存储在存储器214中),并且被配置为当在设备104的CPU202上被执行时执行本文所述的方法中的任何方法的操作。
通常地,本文中描述的功能中的任何功能(例如,图3中示出的功能模块和图4中示出的功能步骤)可以使用软件、固件、硬件(例如,固定的逻辑电路)或者这些实现方式的组合来实现。图3和图4中各自示出的模块和步骤可以实现为单独的模块或步骤,也可以不实现为单独的模块或步骤。如本文中使用的术语“模块”、“功能”、“组件”和“逻辑单元”通常表示软件、固件、硬件或者其组合。在软件实现的情况下,模块、功能或者逻辑单元表示在处理器(例如,CPU或者数个CPU)上被执行时执行指定任务的程序代码。程序代码可以被存储在一个或多个计算机可读存储器设备中。本文中描述的技术的特征是独立于平台的,这意味着这些技术可以在具有各种各样的处理器的各种商用计算平台上实现。例如,用户设备还可以包括使用户设备的硬件执行操作(例如,处理器功能框等等)的实体(例如,软件)。例如,用户设备可以包括计算机可读介质,其可以被配置为维护使用户设备并且更具体地是用户设备的操作系统和相关联的硬件执行操作的指令。因此,指令用于将操作系统和相关联的硬件配置为执行操作,并且以该方式导致操作系统和相关联的硬件的转变以执行功能。所述指令可以由计算机可读介质通过各种不同的配置提供给用户设备。
计算机可读介质的一种这样的配置是信号承载介质,并且因此被配置为例如经由网络向计算设备发送指令(例如,作为载波)。计算机可读介质还可以被配置为计算机可读存储介质,并且因此不是信号承载介质。计算机可读存储介质的例子包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和可以使用磁的、光学的和其它技术来存储指令和其它数据的其它存储器设备。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是,在所附权利要求中限定的主题不一定地被限制为上面描述的具体的特征或者动作。更确切地说,上面描述的具体的特征和动作被公开为实现权利要求的示例形式。

Claims (10)

1.一种计算机系统,包括:
音频处理模块,其被配置为处理音频信号并且向所述系统的音频输出单元输出经处理的音频信号;
回声消除模块,其被配置为从经由所述系统的音频输入单元接收的音频信号中消除回声;以及
控制模块,其被配置为检测指示由所述音频处理模块进行的非线性振幅处理的状况,并且基于所检测到的状况来控制由所述回声消除模块进行的所述回声消除。
2.根据权利要求1所述的计算机系统,其中,所述控制模块被配置为:针对所述音频信号和所接收的音频信号中的每一个音频信号来确定针对该音频信号的振幅分布的参数,所述检测包括将针对每个分布的所确定的参数进行比较。
3.根据权利要求2所述的计算机系统,其中,所述控制模块被配置为:在与相应的信号的信号振幅对应的值的范围上确定所述分布。
4.根据权利要求3所述的计算机系统,其中,所述值是相应的信号振幅的幅度,所述控制模块可操作为计算所述幅度。
5.根据权利要求2、3或4中的任一项所述的计算机系统,其中,所述分布是针对相应的音频信号的直方图。
6.根据权利要求2或从属于权利要求2的任何权利要求所述的计算机系统,其中,确定针对相应的分布的所述相应的分布参数中的每一个参数包括以下操作中的至少一项:
通过将该分布的上面部分与该分布的下面部分进行比较来确定权重参数,所述检测包括将针对所述相应的分布的所确定的权重参数进行比较;以及
确定针对该分布的百分位,所述检测包括将针对所述相应的分布的所确定的百分位进行比较。
7.根据任何前述权利要求所述的计算机系统,还包括:建模模块,其被配置为计算所接收的信号的回声路径的线性模型,由所述回声消除模块进行的所述回声消除是基于所述线性模型的。
8.根据任何前述权利要求所述的计算机系统,其中,所述控制模块被配置为对所述音频信号和所接收的音频信号中的一个或多个音频信号进行归一化,所述检测是基于经归一化的音频信号的。
9.至少一个用于存储代码的计算机可读介质,所述代码在计算机系统的一个或多个处理器上被执行时使得所述一个或多个处理器执行操作,其中所述计算机系统包括被配置为处理音频信号并且向所述系统的音频输出单元输出经处理的音频信号的音频处理模块,所述操作包括:
从经由所述系统的音频输入单元接收的音频信号中消除回声;
检测指示由所述音频处理模块进行的非线性振幅处理的状况;以及
基于所检测到的状况来控制所述回声消除。
10.一种计算机设备,包括:
一个或多个处理器,其被配置为:
针对第一音频信号和第二音频信号中的每一个音频信号,确定针对该音频信号的振幅分布的参数,所述第二音频信号是所述第一音频信号的经处理版本;以及
检测指示对所述第一信号的所述处理的状况,所述处理包括非线性振幅处理,所述检测包括将针对所述第一信号和所述第二信号的所确定的参数进行比较。
CN201480064939.2A 2013-11-29 2014-11-20 用于回声消除的设备和方法 Active CN105794189B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1321052.1 2013-11-29
GBGB1321052.1A GB201321052D0 (en) 2013-11-29 2013-11-29 Detecting nonlinear amplitude processing
US14/175,794 2014-02-07
US14/175,794 US9449593B2 (en) 2013-11-29 2014-02-07 Detecting nonlinear amplitude processing
PCT/US2014/066491 WO2015080927A1 (en) 2013-11-29 2014-11-20 Detecting nonlinear amplitude processing

Publications (2)

Publication Number Publication Date
CN105794189A true CN105794189A (zh) 2016-07-20
CN105794189B CN105794189B (zh) 2019-06-04

Family

ID=49979502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480064939.2A Active CN105794189B (zh) 2013-11-29 2014-11-20 用于回声消除的设备和方法

Country Status (5)

Country Link
US (1) US9449593B2 (zh)
EP (1) EP3058710B1 (zh)
CN (1) CN105794189B (zh)
GB (1) GB201321052D0 (zh)
WO (1) WO2015080927A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107371059A (zh) * 2017-08-09 2017-11-21 北京智网时代科技有限公司 一种消除电视对语音识别装置干扰的装置
CN107910014A (zh) * 2017-11-23 2018-04-13 苏州科达科技股份有限公司 回声消除的测试方法、装置及测试设备
CN109040498A (zh) * 2018-08-12 2018-12-18 瑞声科技(南京)有限公司 一种提升回声抵消效果的方法及其系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350312B1 (en) * 2013-09-19 2016-05-24 iZotope, Inc. Audio dynamic range adjustment system and method
GB201406574D0 (en) * 2014-04-11 2014-05-28 Microsoft Corp Audio Signal Processing
GB2525051B (en) 2014-09-30 2016-04-13 Imagination Tech Ltd Detection of acoustic echo cancellation
CN107040862A (zh) * 2016-02-03 2017-08-11 腾讯科技(深圳)有限公司 音频处理方法及处理系统
US10264116B2 (en) 2016-11-02 2019-04-16 Nokia Technologies Oy Virtual duplex operation
EP3574583B1 (en) 2017-03-31 2020-12-09 Dolby International AB Inversion of dynamic range control
JP6833616B2 (ja) * 2017-05-29 2021-02-24 株式会社トランストロン エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム
CN107610713B (zh) * 2017-10-23 2022-02-01 科大讯飞股份有限公司 基于时延估计的回声消除方法及装置
US11343301B2 (en) * 2017-11-30 2022-05-24 Goto Group, Inc. Managing jitter buffer length for improved audio quality
US10720173B2 (en) * 2018-02-21 2020-07-21 Bose Corporation Voice capture processing modified by back end audio processing state
US10602270B1 (en) 2018-11-30 2020-03-24 Microsoft Technology Licensing, Llc Similarity measure assisted adaptation control
JP7196002B2 (ja) 2019-04-05 2022-12-26 株式会社トランストロン エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム
US11817114B2 (en) * 2019-12-09 2023-11-14 Dolby Laboratories Licensing Corporation Content and environmentally aware environmental noise compensation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090274315A1 (en) * 2008-04-30 2009-11-05 Palm, Inc. Method and apparatus to reduce non-linear distortion
CN101689371A (zh) * 2007-06-21 2010-03-31 皇家飞利浦电子股份有限公司 处理音频信号的设备和方法
US20110093102A1 (en) * 2009-10-16 2011-04-21 Microsoft Corporation Mitigating the impact of nonlinear echos by dynamic range compression
US20130287216A1 (en) * 2011-02-03 2013-10-31 Telefonaktiebolaget L M Ericsson (Publ) Estimation and suppression of harmonic loudspeaker nonlinearities

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028929A (en) * 1997-11-14 2000-02-22 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having improved non-linear echo path detection
US6031908A (en) * 1997-11-14 2000-02-29 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having variable adaptive gain settings
US7027592B1 (en) * 1999-03-01 2006-04-11 Infineon Technologies Ag Non-linear echo cancellation in discrete multi-tone systems
US7424109B1 (en) 1999-03-25 2008-09-09 Intel Corporation Rapid training echo cancellor for telecommunications system
US6687235B1 (en) * 2000-01-21 2004-02-03 Adtran, Inc. Mitigation of non-linear signal perturbations using truncated volterra-based non-linear echo canceler
US7236929B2 (en) 2001-05-09 2007-06-26 Plantronics, Inc. Echo suppression and speech detection techniques for telephony applications
US7672445B1 (en) * 2002-11-15 2010-03-02 Fortemedia, Inc. Method and system for nonlinear echo suppression
US7496205B2 (en) * 2003-12-09 2009-02-24 Phonak Ag Method for adjusting a hearing device as well as an apparatus to perform the method
WO2008028484A1 (en) * 2006-09-05 2008-03-13 Gn Resound A/S A hearing aid with histogram based sound environment classification
WO2009029076A1 (en) 2007-08-31 2009-03-05 Tellabs Operations, Inc. Controlling echo in the coded domain
US9053697B2 (en) 2010-06-01 2015-06-09 Qualcomm Incorporated Systems, methods, devices, apparatus, and computer program products for audio equalization
WO2013142695A1 (en) 2012-03-23 2013-09-26 Dolby Laboratories Licensing Corporation Method and system for bias corrected speech level determination
US20150003606A1 (en) * 2013-06-28 2015-01-01 Broadcom Corporation Detecting and quantifying non-linear characteristics of audio signals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689371A (zh) * 2007-06-21 2010-03-31 皇家飞利浦电子股份有限公司 处理音频信号的设备和方法
US20090274315A1 (en) * 2008-04-30 2009-11-05 Palm, Inc. Method and apparatus to reduce non-linear distortion
US20110093102A1 (en) * 2009-10-16 2011-04-21 Microsoft Corporation Mitigating the impact of nonlinear echos by dynamic range compression
US20130287216A1 (en) * 2011-02-03 2013-10-31 Telefonaktiebolaget L M Ericsson (Publ) Estimation and suppression of harmonic loudspeaker nonlinearities

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107371059A (zh) * 2017-08-09 2017-11-21 北京智网时代科技有限公司 一种消除电视对语音识别装置干扰的装置
CN107371059B (zh) * 2017-08-09 2023-07-18 北京智网时代科技有限公司 一种消除电视对语音识别装置干扰的装置
CN107910014A (zh) * 2017-11-23 2018-04-13 苏州科达科技股份有限公司 回声消除的测试方法、装置及测试设备
CN109040498A (zh) * 2018-08-12 2018-12-18 瑞声科技(南京)有限公司 一种提升回声抵消效果的方法及其系统

Also Published As

Publication number Publication date
EP3058710B1 (en) 2022-03-30
CN105794189B (zh) 2019-06-04
US20150154977A1 (en) 2015-06-04
EP3058710A1 (en) 2016-08-24
US9449593B2 (en) 2016-09-20
GB201321052D0 (en) 2014-01-15
WO2015080927A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
CN105794189A (zh) 检测非线性振幅处理
EP3114683B1 (en) Audio signal processing
US9697845B2 (en) Non-linear echo path detection
CN105308942B (zh) 回波消除
EP2982101B1 (en) Noise reduction
CN105379239B (zh) 回波去除的方法、设备及计算机可读存储介质
EP2632141A1 (en) Postfilter for Spectral Domain Echo Cancellers to handle Non-linear Echo Components
US8996365B2 (en) Howling canceller
JP2006174456A (ja) 受信オーディオを制限するためのシステム
RU2180984C2 (ru) Измерение сходимости адаптивных фильтров
EP2987313B1 (en) Echo removal
EP2987314B1 (en) Echo suppression
CN104871520A (zh) 回波抑制
CN111970410B (zh) 回声消除方法及装置、存储介质、终端
CN113453124B (zh) 音频处理方法、装置以及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant