信号处理设备、信号处理方法及其程序转让专利

申请号 : CN201010553983.3

文献号 : CN102075831B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 广江厚夫

申请人 : 索尼公司

摘要 :

本发明涉及信号处理设备、信号处理方法及其程序。该信号处理设备包括:分离处理单元,该分离处理单元通过对由多个传声器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对所述观测信号执行线性滤波处理来产生与所述声源相对应的声源分离结果。其中,分离处理单元具有:线性滤波处理部分,该线性滤波处理部分对观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号;全死角空间滤波处理部分,该全死角空间滤波处理部分应用全死角空间滤波器,以产生去除了死角方向上的获取的声音的、用全死角空间滤波器滤波的信号(空间滤波信号);以及频率滤波部分,该频率滤波部分通过输入分离信号和空间滤波信号执行滤波处理。

权利要求 :

1.一种信号处理设备,包括:

分离处理单元,该分离处理单元通过对由多个传感器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对所述观测信号执行线性滤波处理来产生与各个声源相对应的声源分离结果,其中,分离处理单元具有:

线性滤波处理部分,该线性滤波处理部分对所述观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号;

全死角空间滤波部分,该全死角空间滤波部分应用全死角空间滤波器,以产生应用全死角空间滤波器滤波的、去除了死角方向上的获取的声音的信号,即空间滤波信号,所述全死角空间滤波器形成朝向由所述多个传感器获取的观测信号中所包含的所有声源的死角波束;以及频率滤波部分,该频率滤波部分通过输入所述分离信号和空间滤波信号来执行去除所述分离信号中包含的对应于空间滤波信号的信号分量的滤波处理,从而产生频率滤波部分的处理结果,作为声源分离结果。

2.根据权利要求1所述的信号处理设备,还包括:

学习处理单元,该学习处理单元通过学习处理求解用于分离混合信号的分离矩阵,并且产生全死角空间滤波器,在所述混合信号中混合有来自所述多个声源的输出,所述学习处理对从所述混合信号产生的观测信号应用独立分量分析(ICA),所述全死角空间滤波器朝向从观测信号获取的所有声源形成死角波束,其中,线性滤波处理部分对观测信号应用由学习处理单元产生的分离矩阵,以分离所述混合信号并产生与各个声源相对应的分离信号,并且全死角空间滤波部分对观测信号应用由学习处理单元产生的全死角空间滤波器,以产生去除了死角方向上的获取的声音的空间滤波信号。

3.根据权利要求1或2所述的信号处理设备,

其中,频率滤波部分通过从所述分离信号减去所述空间滤波信号的处理执行去除所述分离信号中包含的与所述空间滤波信号相对应的信号分量的滤波处理。

4.根据权利要求1或2所述的信号处理设备,

其中,频率滤波部分通过基于将所述空间滤波信号视为噪声分量的谱减法的频率滤波处理来执行去除所述分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理。

5.根据权利要求2所述的信号处理设备,

其中,学习处理单元执行下述处理:通过以分割观测信号的块单位执行学习处理,基于块单位的学习结果,产生所述分离矩阵和所述全死角空间滤波器,并且分离处理单元执行使用由学习处理单元产生的最新的分离矩阵和全死角空间滤波器的处理。

6.根据权利要求1或2所述的信号处理设备,

其中,频率滤波部分执行下述处理:根据所述分离信号的信道,改变从所述分离信号去除与所述空间滤波信号相对应的分量的水平。

7.根据权利要求6所述的信号处理设备,

其中,频率滤波部分执行下述处理:根据所述分离信号的信道的功率比,改变从所述分离信号去除与所述空间滤波信号相对应的分量的水平。

8.根据权利要求2所述的信号处理设备,

其中,分离处理单元产生分离矩阵和全死角空间滤波器,所述分离矩阵和全死角空间滤波器经受使用包括与当前观测信号相对应的帧的多个帧的作为标度调整的重新标度处理,并且执行将经过所述重新标度处理的分离矩阵和全死角空间滤波器应用于所述观测信号的处理,所述多个帧是从所述观测信号切出的数据单位。

9.一种在信号处理设备上执行声源分离处理的信号处理方法,该信号处理方法包括下述步骤:在分离处理单元中,通过对由多个传感器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对所述观测信号执行线性滤波处理来产生与各个声源相对应的声源分离结果,其中,产生声源分离结果的步骤包括下述步骤:

对观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号,应用全死角空间滤波器,以产生应用全死角空间滤波器滤波的、去除了死角方向上的获取的声音的信号,即空间滤波信号,所述全死角空间滤波器形成朝向由所述多个传感器获取的观测信号中包含的所有声源的死角波束;以及通过输入所述分离信号和所述空间滤波信号来执行去除所述分离信号中包含的与所述空间滤波信号相对应的信号分量的滤波处理,从而产生执行频率滤波处理的处理结果,作为声源分离结果。

说明书 :

信号处理设备、信号处理方法及其程序

技术领域

[0001] 本发明涉及信号处理设备、信号处理方法及其程序。更具体地说,本发明涉及执行下述处理的信号处理设备、信号处理方法和程序:通过使用独立分量分析(ICA)来分离混合有多种信号的信号。特别地,该处理是实时处理,即,将连续地输入的观测信号分离为具有少量延迟的独立分量并连续地输出它们的处理。

背景技术

[0002] 首先,作为本发明的背景技术,将给出对独立分量分析(ICA)和独立分量分析(ICA)的实时实现方法的描述。
[0003] A1.ICA的描述
[0004] ICA是一种多变量分析,即,通过使用信号的统计性质来分离多维信号的技术。关于ICA自身的细节,例如,请参考“Introduction to the Independent Component Analysis”(Noboru Murata,Tokyo Denki University Press)(《独立分量分析的入门》(村田昇著,东京电械大学出版社))。
[0005] 在下文中,将给出对用于声音信号的ICA(特别地,时间频率域中的ICA)的描述。
[0006] 如图1所示,考虑这样的情况:即,其中,正从N个声源播放不同的声音,并且,在n个传声器(microphone)处观测这些声音。从所述声源产生的声音(声音信号)在到达传声器之前经过时间延迟、反射等。因此,在传声器k处观测到的信号(观测信号)可以被表示为由表达式[1.1]表示的表达式,该表达式针对所有的声源将声音信号和传递函数(transfer function)之间的卷积求和。在下文中,这些混合将被称为“卷积混合”。
[0007] 另外,假设传声器n的观测信号为xn(t)。传声器1和传声器2的观测信号是x1(t)和x2(t)。
[0008] 对于所有的传声器的观测信号可以由如下面表达式[1.2]的一个表达式表示:
[0009] 数式1
[0010][0] [L]
[0011] x(t)=A s(t)+...+A s(t-L) ......[1.2]
[0012] 其中,
[0013]
[0014] 这里,x(t)和s(t)分别是具有作为元素的xk(t)和sk(t)的列向量。A[l]是具有作为元素的a[l]kj的n×N矩阵。在下面的描述中,假设n=N。
[0015] 公知的是,时间域中的卷积混合被表示为时间频率域中的瞬时混合。使用该特性的分析是时间频率域中的ICA。
[0016] 关于时间频率域ICA自身,例如,请参考“Explanation of Independent Component Analysis”(“独 立 分 量 分析 的 解 释”) 的“19.2.4Fourier Transform Methods”(“19.2.4傅里叶变换方法”)和日本未审专利申请公开No.2006-238409(“Audio Signal Separating Apparatus/Noise Removal Apparatus and Method”(“音频信号分离设备/噪声去除设备和方法”))。
[0017] 在下文中,将主要描述与本发明有关的特征。
[0018] 在上述的表达式[1.2]的两边应用短时傅里叶变换得到下面的表达式[2.1]。
[0019] 数式2
[0020] X(ω,t)=A(ω)S(ω,t) ......[2.1]
[0021]
[0022]
[0023]
[0024] Y(ω,t)=W(ω)X(ω,t) ......[2.5]
[0025]
[0026]
[0027] 在表达式[2.1]中,
[0028] ω是频率点索引(frequency bin index),以及
[0029] t是帧索引(frame index)。
[0030] 如果ω是固定的,则该表达式可以被视为瞬时混合(没有时间延迟的混合)。因此,为了分离观测信号,提供用于计算分离结果[Y]的表达式[2.5],然后确定分离矩阵W(ω),从而,作为分离结果,Y(ω,t)的各分量是最独立的。
[0031] 在根据现有技术的的时间频率域ICA的情况中发生所谓的置换问题,即,对于每一个频率点(frequency bin),“哪个分量被分离到哪个信道”不同。在日本未审专利申请公开No.2006-238409“Audio Signal Separating Apparatus/Noise Removal Apparatus and Method”(“音频信号分离设备/噪声去除设备和方法”)中公开的配置几乎全部解决了这个置换问题,该日本未审专利申请是由与本申请相同的发明人在先提交的专利申请。由于这个方法也用于本发明的实施例中,所以将给出对日本未审专利申请公开No.2006-238409中公开的用于解决置换问题的技术的简单描述。
[0032] 在日本未审专利申请公开No.2006-238409中,为了求解分离矩阵W(ω),对表示为如下的表达式[3.1]至[3.3]进行迭代直到分离矩阵W(ω)收敛为止(或者迭代一定次数)。
[0033] 数式3
[0034] Y(ω,t)=W(ω)X(ω,t) (t=1,...,T ω=1,...,M) ......[3.1][0035]
[0036] W(ω)←W(ω)+ηΔW(ω) ......[3.3]
[0037]
[0038]
[0039]
[0040] P(Yk(t)):Yk(t)的概率密度函数(PDF)
[0041] P(Yk(t))∝exp(-γ||Yk(t)||2) ......[3.7]
[0042]
[0043]
[0044]
[0045]
[0046] Y(t)=WX(t) ......[3.12]
[0047] 在下面,这种迭代将被称为“学习”。然而,应该注意,对于所有的频率点执行表达式[3.1]至[3.3],此外,还对累积的观测信号的所有帧执行表达式[3.1]。另外,在表达式[3.2]中,<·>t表示对所有帧的平均值。附在Y(ω,t)的右上角的上标H表示厄密转置(Hermitian transpose)(即,对向量或矩阵进行转置,并且还将其元素变换为共轭复数)。
[0048] 分离结果Y(t)由表达式[3.4]表示,并且表示其中排列有分离结果的所有频率点和所有信道的元素的向量。此外,φω(Y(t))是由表达式[3.5]表示的向量。每一个元素φω(Yk(t))称为得分函数,并且是Yk(t)(表达式[3.6])的多维(多变量)概率密度函数PDF的对数导数。作为多维PDF,例如,可以使用由表达式[3.7]表示的函数,在这种情况下,得分函数φω(Yk(t))可以被表示为表达式[3.9]。然而,应该注意,||Yk(t)||2是向量Yk(t)的L-2范数(该范数是通过求解所有元素的平方和并然后对所得到的和取平方根而得到的)。作为L-2范数的一般形式的L-m范数由表达式[3.8]定义。在表达式[3.7]和[3.9]中,γ表示用于调整Yk(ω,t)的标度的项,用合适的正常数(例如,sqrt(M)(频率点数的平方根))代入该项。在表达式[3.3]中,η是称为学习比或学习因子的小正值(例如,大约0.1)。这用于在分离矩阵W(ω)上逐渐地反映在表达式[3.2]中计算的ΔW(ω)。
[0049] 另外,虽然表达式[3.1]表示一个频率点中的分离(参照图2A),但是还可以通过一个表达式表示所有频率点中的分离(参照图2B)。
[0050] 这可以通过下述方式来实现:使用由上述表达式[3.4]表示的所有频率点中的分离结果Y(t)和由表达式[3.11]表示的观测信号X(t)、以及用于由表达式[3.10]表示的所有频率点的分离矩阵。通过使用这些向量和矩阵,可以通过表达式[3.12]来表示分离。根据本发明的实施例,在必要的时候选择性地使用表达式[3.1]和[3.11]。
[0051] 另外,图2A和2B所示的X1至Xn和Y1至Yn的示图称为谱图,其中,在频率点方向和帧方向上排列短时傅里叶变换(STFT)的结果。垂直方向表示频率点,水平方向表示帧。虽然在表达式[3.4]和[3.11]中的顶部标注较低频率,但是在谱图的底部描绘较低频率。
[0052] 在以上的描述中,假设声源N的数目等于传声器n的数目。但是,即使当N<n时,也可以分离。在这种情况下,在n个输出信道中的N个信道上分别输出与声源相对应的信号,但是,在n-N个剩余的信道上输出不与任何声源相对应的近无声信号(almost-silent signal)。
[0053] A2.ICA的实时实现
[0054] 按批次的过程执行在“A1.ICA的描述”部分中描述的学习处理,其中,对表达式[3.1]至[3.3]进行迭代直到分离矩阵W(ω)收敛为止(或者迭代预定次数)。也就是说,如上所述,表达式[3.1]至[3.3]的迭代过程被称为学习,其中,在累积所有的观测信号之后,对表达式[3.1]至[3.3]进行迭代。
[0055] 通过某些发明设计,可以将这个批次过程应用于实时(低延迟)声源分离。作为实现实时处理方法的声源分离处理的例子,将给出对在“日本未审专利申请公开No.2008-147920:实时声源分离设备和方法”中公开的配置的描述,该日本未审专利申请是由与本申请相同的申请人在先提交的专利申请。
[0056] 如图3所示,在日本未审专利申请公开No.2008-147920中公开的处理方法中,观测信号谱图被分成多个重叠的块1至N,并且对每一块执行学习,从而求解分离矩阵。这些块重叠的原因是为了实现分离矩阵的精度和更新频率二者。
[0057] 另外,在日本未审专利申请公开No.2008-147920之前公开的实时ICA(分块ICA(blockwise ICA))的情况中,块之间没有重叠。因此,为了缩短分离矩阵的更新间隔,有必要缩短块长度(=累积观测信号的时间)。然而,存在较短的块长度导致较低的分离精度的问题。
[0058] 如上所述,将批次过程应用于每一块的观测信号的方法在下文中被称为“分块批次过程(blockwise batch process)”。
[0059] 将从每一块求解的分离矩阵应用于后续的观测信号(不应用于同一块),以产生分离结果。这里,这种方法将被称为“移位应用(shift application)”。
[0060] 图4示出“移位应用”。假设在当前时刻输入第t帧观测信号X(t)42。在这个时间点,还没有获得与包含观测信号X(t)的块(例如,包含当前时刻的观测信号块46)相对应的分离矩阵。因此,将观测信号X(t)代替块46与从作为块46之前的块的学习数据块41学习得到的分离矩阵相乘,从而产生与X(t)相对应的分离结果,即,当前时刻的分离结果Y(t)44。另外,假设在帧t的时间点已经获得从学习数据块41学习得到的分离矩阵。
[0061] 如上所述,分离矩阵被视为表示混合过程的逆过程。
[0062] 因此,当混合过程在学习数据块设置区间41和当前时刻的观测信号42之间相同时(例如,当声源和传声器之间的位置关系尚未改变时),即使当应用在不同区间中学习得到的分离矩阵时,也可以执行信号分离。这样,可以实现少量延迟的分离。
[0063] 在日本未审专利申请公开No.2008-147920中公开的配置提出了这样的方法:即,其中,按照单位时移并行地运行用于从重叠块求解分离矩阵的称为线程(thread)的多个处理单位。将参照图5描述这个并行处理方法。
[0064] 图5示出用作处理单位的各个线程的随着时间的处理的过渡。图5示出六个线程1至6。每一个线程重复下述三个状态:A)累积;B)学习;以及C)等待。也就是说,线程长度对应于A)累积、B)学习和C)等待的三个过程的总时间长度。在图5中,时间从左向右推移。
[0065] 在图5中,“A)累积”是暗灰色的区间。当在这种状态下时,线程累积观测信号。可以通过对线程之间的累积开始时刻进行移位来表达图5中的重叠块。因为在图5中将累积开始时刻移位了1/4的累积时间,所以在假设一个线程的累积时间是例如四秒的情况下,线程之间的移位时间等于一秒。
[0066] 一旦累积预定时间(例如,四秒)的观测信号时,每一个线程的状态就过渡到“B)学习”。在图5中,“B)学习”是浅灰色的区间。当在这种状态下时,针对累积的观测信号,对上述的表达式[3.1]至[3.3]进行迭代。
[0067] 当分离矩阵W通过学习(表达式[3.1]至[3.3]的迭代)已经充分收敛时(或者当仅仅达到预定的迭代次数时),结束学习,并且,线程过渡到“C)等待”状态(图5中的白色区间)。为了以线程之间的恒定间隔保持累积开始时刻和学习开始时刻,提供“等待”。结果,也以基本上恒定的间隔保持学习结束时刻(=更新分离矩阵的时刻)。
[0068] 通过学习获得的分离矩阵W被用于执行分离,直到下一线程中的学习完成为止。也就是说,分离矩阵W用作图4所示的分离矩阵43。将随着在图5的底部所示的时间的推移给出对用于每一个应用分离矩阵的指定区间51至53中的分离矩阵的描述。
[0069] 在从系统开始时到学习第一分离矩阵时的应用分离矩阵的指定区间51中,初始值(例如,单位矩阵)用作图4中的分离矩阵43。在从图5中所示的线程1中的学习完成时到线程2中的学习完成时的区间52中,从线程1中的观测信号累积区间54得到的分离矩阵用作图4中所示的分离矩阵43。图5的区间52中所示的数字“1”表示,通过线程1中的处理获得用于这个期间的分离矩阵W。在应用分离矩阵的指定区间52的右边的数字也均表示从哪一个线程得到相应的分离矩阵。
[0070] 另外,当在开始学习的时间点存在在另一线程获得的分离矩阵时,该分离矩阵用作学习的初始值。这被称为“分离矩阵的继承”。在图5中所示的例子中,在于线程3中开始第一学习的学习开始定时55,已经获得从线程1得到的分离矩阵52,所以将分离矩阵52用作学习的初始值。
[0071] 通过执行这样的处理,可以防止或减少线程之间的置换的发生。例如,线程之间的置换是指这样的问题:在第一线程中获得的分离矩阵中,在第一信道上输出语音,在第二信道上输出音乐,然而,在第三线程中获得的分离矩阵中,这些是颠倒的。
[0072] 如上面参照图5所述,可以通过执行“分离矩阵的继承”来减少线程之间的置换,从而在存在已经在另一线程中获得的分离矩阵时,将该分离矩阵用作学习的初始值。另外,即使当分离矩阵通过线程1中的学习尚未充分收敛时,也可以提高收敛度,因为通过下一线程继承分离矩阵。
[0073] 通过这样按照单位时移运行多个线程,以基本上等于线程之间的移位的间隔(即,块移位宽度56)更新分离矩阵。
[0074] B.现有技术的问题
[0075] 接下来,将研究上述的“A2.ICA的实时实现”中的问题。在“A2.ICA的实时实现”中描述的“移位应用”和“以块单位的批次过程”的组合中,可能无法精确地执行声源分离。作为原因,可以分别考虑下述两个因素。
[0076] B1.跟踪滞后
[0077] B2.残余声音
[0078] 在下文中,将描述这两个因素导致声源分离不精确的各自原因。
[0079] B1.跟踪滞后
[0080] 当利用“移位应用”时,在用于分离矩阵的学习的区间(例如,图4中所示的学习数据块41)和当前时刻的观测信号42之间改变声源时(在突然移动声源或者声源突然开始播放声音时)临时发生失配。
[0081] 其后,由于通过观测改变的声源的学习处理来获得新的分离矩阵,所以这种失配最终消失。然而,在产生新的分离矩阵之前存在失配。这种现象在本文中将被称为“跟踪滞后”。虽然不移动声源,但是,即使当突然开始播放声音或者声源停止播放并然后又开始播放时,可以导致跟踪滞后。在下文中,这种声音被称为“突发声音”。
[0082] 图6是示出突发声音和观测信号之间的对应关系的示图。在图6的例子中,假设提供两个声源。
[0083] (a)声源1
[0084] (b)声源2
[0085] 利用这两个声源。
[0086] 时间从左向右推移。(a)声源1、(b)声源2和(c)观测信号的块高度表示其音量。
[0087] (a)声源1以其间间隔无声区间67的方式播放两次。该声源的输出区间分别由声源1输出区间61和62表示。在正观测当前观测信号66的当前时刻,输出声音。
[0088] (b)声源2连续地播放。也就是说,声源2具有声源-2输出区间63。
[0089] (c)观测信号可以由从声源1和2到达传声器的信号之和表示。
[0090] 在(c)观测信号中由虚线区域表示的学习数据的块64是与图4中所示的学习数据块41相同的区间。将从学习数据块64的区间中的观测信号学习得到的分离矩阵应用于当前时刻(t1)的观测信号66,从而执行分离。区间65(从块末端到当前时刻的区间65)位于学习数据块64和当前时刻(t1)的观测信号66之间。
[0091] 当前时刻(t1)的观测信号66是基于在当前时刻输出69的声源的观测信号。
[0092] 然而,有时候,根据声源1的无声区间67的长度和学习数据块64(与图4中所示的学习数据块41相同)的长度,在学习数据和当前观测信号之间可能会发生失配。
[0093] 例如,在(c)观测信号中,当前时刻(t1)的观测信号66包含作为观测信号的从声源1得到的声源-1输出区间62和从声源2得到的声源-2输出区间63二者。与此不同的是,在学习数据块64中,仅仅观测到源自于声源2的声源-2输出区间63。
[0094] 类似于当前时刻(t1)的观测信号66,当前正在播放学习数据块之中的声音的情况被表达为“产生突发声音”。换句话说,由于学习数据块64不包含声源1的观测信号,所以,虽然声源1在该块的前面(对应于声源-1输出区间61)播放,但是在学习数据块64中学习的分离矩阵中声源1的声音(声源-1输出区间62的区间)是突发声音。
[0095] 图7是示出突发声音产生对分离结果(特别地,跟踪滞后)的影响的示图。图7示出下述数据。
[0096] (a)观测信号
[0097] (b1)分离结果1
[0098] (b2)分离结果2
[0099] (b3)分离结果3
[0100] 在该图中,时间从左向右推移。
[0101] 在图7中所示的例子中,假设ICA(独立分量分析)系统具有三个或更多的传声器,输出信道的数目也是三个或更多。
[0102] (a)观测信号包含连续声音71和突发声音72,连续声音71在时间t0至t5的范围中连续地播放,突发声音72仅仅在时间t1至t4的范围中输出。
[0103] 图7中的(a)观测信号是与图6中的(c)观测信号相似的观测信号。另外,例如,连续声音71对应于图6中的(b)声源2,突发声音72对应于图6中的(a)声源1。
[0104] 在开始输出突发声音72之前,分离矩阵在正仅播放连续声音71的期间的、从t0至t1的区间73中充分收敛,然后,仅仅在一个信道上输出对应于连续声音71的信号。这是(b1)分离结果1。在其它信道上输出近无声声音,即,(b2)分离结果2和(b3)分离结果3。
[0105] 这里,假设发生突发声音72。例如,一直沉默的某人会突然开始说话。此时,可应用于观测信号的分离矩阵是通过学习作为观测数据的下述数据而产生的分离矩阵:在产生突发声音72之前的数据,即,仅仅是在时间t1之前的连续声音71的数据。
[0106] 结果,通过应用基于时间t1之前的观测信号产生的分离矩阵,对通过观测时间t1以后的突发声音72获得的观测信号进行分离,从而难以获得对应于该观测信号的正确的分离结果。这个原因在于,基于时间t1之前的观测信号产生的分离矩阵是这样的分离矩阵:其中,不考虑时间t1以后的观测信号中包含的突发声音72。从而,因为由于应用分离矩阵而产生分离,所以,例如,在实际的观测信号(即,作为连续声音71和突发声音72的混合的观测信号)和时间t1至t3的范围中的分离结果之间发生失配。
[0107] 在从开始突发声音的播放时到学习反映突发声音的分离矩阵时的时间段中(在从时间t1至t2的区间74中),发生如下现象:即,在所有的信道((b1)分离结果1、(b2)分离结果2和(b3)分离结果3)上输出突发声音。也就是说,几乎不对突发声音进行声源分离。这个时间段最小地等于比学习时间稍大的值,并且最大地等于学习时间和块移位宽度之和。例如,在学习时间是0.3秒且块移位是0.2秒的系统中,不分离突发声音,并且,在最小0.3秒且最大0.5秒的时间内在所有的信道上输出突发声音。
[0108] 其后,按照新学习块的学习处理的顺序,产生和更新新的分离矩阵。由于在分离矩阵中反映突发声音,所以分离矩阵更新处理排除一个信道(在图7中,(b2)分离结果2),从而减少突发声音的输出(在从时间t2至t3的区间75中)。在预期的时间,仅仅在一个信道上存在输出((b2)分离结果2)(在时间t3以后的区间76中)。
[0109] 在图7中所示的例子中,发生跟踪滞后的区间是从时间t1至t2的区间74和从时间t2至t3的区间75的组合区间,即,从时间t1至t3的区间77。
[0110] 在产生突发声音时发生的跟踪滞后的问题的原因取决于突发声音是目标声音还是干扰声音而不同。在下文中,将描述每一种情况。目标声音是指用作分析对象的声音。
[0111] 当突发声音是干扰声音时,换句话说,在连续播放的连续声音71是目标声音时,优选的是,去除突发声音。因此,问题在于干扰声音未被去除并保留在图7中所示的(b1)分离结果1中。
[0112] 另一方面,当突发声音是目标声音时,优选的是,保留突发声音并去除作为干扰声音的连续播放的连续声音71。看来图7中所示的(b2)分离结果2对应于这种输出。然而,在发生跟踪滞后的从时间t1至t3的区间77中的分离矩阵和输入之间发生失配。因此,有可能输出声音失真(有可能频率之间的平衡不同于源信号)。也就是说,当突发声音是目标声音时,发生输出声音可能会失真的问题。
[0113] 如上所述,取决于突发声音的特性,有必要执行去除或保留该声音的相反处理。因此,难以通过使用单一方法来解决该问题。
[0114] B2.残余声音
[0115] 接下来,在“A2.ICA的实时实现”中描述的“分块批次过程”和“移位应用”的组合中,将描述作为导致声源分离不精确的另一因素的“残余声音”。
[0116] 例如,分离矩阵在图7中的从时间t0至t1的区间73、从时间t3至t4的区间76等中充分收敛,并且,通过应用基于前面的学习数据的分离矩阵来执行观测数据的分离。这样,可以执行精确的分离。然而,即使在这种区间中,一个声源也没有完全被输出在一个信道上,而是在某一种程度上保留有其它声源。这称为“残余声音”。例如,图7中所示的残余声音78是不应该保留在(b2)分离结果中的声音。同样地,残余声音79也是不应该存在于(b3)分离结果3中的声音。
[0117] 下述要点被认为是导致残余声音的因素。
[0118] a)空间混响的长度比短时傅里叶变换(STFT)的帧长度长。
[0119] b)声源的数目大于传声器的数目。
[0120] c)传声器之间的空间窄,从而在低频率处不去除干扰声音。
[0121] 在使用实时ICA的声源分离系统中,在减少跟踪滞后和减少残余声音之间存在折衷。原因在于,减少跟踪滞后以缩短学习时间是有利的,但是,残余声音根据该方法因而增加。
[0122] 用于ICA的学习的计算成本与短时傅里叶变换(STFT)的帧长度和信道数目(传声器的数目)的平方成比例。因此,当该值设置得小时,尽管循环数相同,仍可以缩短学习时间。由此,还可以缩短跟踪滞后。
[0123] 然而,减少帧长度进一步劣化了导致残余声音的因素之一,即,因素a)。
[0124] 此外,减少传声器的数目进一步劣化了导致残余声音的因素之一,即,因素b)。
[0125] 因此,缩短短时傅里叶变换(STFT)的帧长度的处理或者减少信道的数目(传声器的数目)的处理有助于减少跟踪滞后,而发生往往会出现残余声音的问题。
[0126] 如上所述,跟踪滞后的减少和残余声音处于这样的关系:即,如果一个旨在得以解决,则另一个劣化。
[0127] 图7中所示的残余声音78被自然地分离为正播放的连续声音,即,对应于(b1)分离结果1的声音。由此,当发生残余声音时,主导性地输出在该信道上的分量的分离性能((b1)分离结果1中的突发声音72)劣化。
[0128] 另一方面,当上述的“跟踪滞后”大时,获得突发声音的精确分离结果的时间被延迟。具体地说,从图7中所示的时间t1到时间t3的时间段增大,在时间t1处产生突发声音,在时间t3处,对应于突发声音的声音在对应于突发声音的信道(即,仅在b2)分离结果2中)上被分离。
[0129] 关于期望从多个声源中的哪个声源获取声音,取决于其目的,可以有不同的选择。由此,获取精确的分离结果的声音被称为“目标声音”。
[0130] 取决于“目标声音”位于正播放的连续声音和突发声音之间的位置,优选地执行不同的处理和不同的设置。
[0131] 导致残余声音的因素中的剩余一个因素如下。
[0132] c)由于传声器之间的空间窄,所以在低频率处不去除干扰声音。
[0133] 这个因素与实时处理无关。然而,该问题可以通过根据本发明的实施例的配置得以解决,并且由此在本文中进行描述。在时间频率域中的ICA中,当传声器之间的空间窄(例如,大约2至3cm)时,特别在低频率处,可能无法充分地执行分离。原因在于在传声器之间的空间中难以获得充分的相差。可以通过增加传声器空间来提高低频率处的分离精度,而由于称为空间假频(spatial aliasing)的现象导致高频率处的分离精度可能会降低。此外,由于物理约束,有时候传声器可能无法以宽的空间安装。
[0134] 上述问题总结于如下。
[0135] (A)在使用“分块处理”和“移位应用”的实时ICA中,由于突发声音导致“跟踪滞后”或者“残余声音”,由此,可能无法精确地执行声源分离。
[0136] (B)取决于突发声音是目标声音还是干扰声音,用于精确地执行声源分离的处理“跟踪滞后”和“残余声音”的方法彼此相反。由此,难以通过使用单一方法来解决该问题。
[0137] (C)在根据现有技术的实时ICA的构架中,在减少“跟踪滞后”和消除“残余声音”之间会存在折衷关系。

发明内容

[0138] 鉴于上述情形提出了本发明的实施例,本发明的实施例旨在提供能够执行下述高精度分离处理的信号处理设备、信号处理方法和程序:通过使用独立分量分析(ICA),按照各个声源信号的单位执行高精度分离处理,作为具有少量延迟的实时处理。
[0139] 根据本发明的第一实施例,提供一种信号处理设备,该信号处理设备包括分离处理单元,该分离处理单元通过对由多个传感器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对所述观测信号执行线性滤波处理来产生与所述声源相对应的声源分离结果。分离处理单元具有:线性滤波处理部分,其对观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号;全死角(all-null)空间滤波处理部分,其应用形成由所述多个传感器获取的观测信号中所包含的向着所有声源的死角波束的全死角空间滤波器,以产生去除了死角方向上的获取的声音的、用全死角空间滤波器滤波的信号(空间滤波信号);以及频率滤波部分,其通过输入分离信号和空间滤波信号来执行去除分离信号中包含的对应于空间滤波信号的信号分量的滤波处理,从而产生频率滤波部分的处理结果,作为声源分离结果。
[0140] 此外,根据本发明的第一实施例的信号处理设备还包括学习处理单元,该学习处理单元通过学习处理求解用于分离混合信号的分离矩阵,并且产生全死角空间滤波器,在所述混合信号中混合有来自所述多个声源的输出,所述学习处理对从混合信号产生的观测信号利用独立分量分析(ICA),所述全死角空间滤波器形成从观测信号获取的向着所有声源的死角波束。线性滤波处理部分对观测信号应用由学习处理单元产生的分离矩阵,以分离混合信号并产生与各个声源相对应的分离信号。全死角空间滤波部分对观测信号应用由学习处理单元产生的全死角空间滤波器,以产生去除了死角方向上的获取的声音的空间滤波信号。
[0141] 此外,在根据本发明的第一实施例的信号处理设备中,频率滤波部分通过从分离信号减去空间滤波信号的处理来执行去除分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理。
[0142] 此外,在根据本发明的第一实施例的信号处理设备中,频率滤波部分通过基于将空间滤波信号视为噪声分量的谱减法的频率滤波处理来执行去除分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理。
[0143] 此外,在根据本发明的第一实施例的信号处理设备中,学习处理单元执行下述处理:通过逐个块地执行学习处理,基于分块学习结果(blockwise learning result),产生分离矩阵和全死角空间滤波器,以便分割观测信号。另外,分离处理单元使用由学习处理单元产生的最新的分离矩阵和全死角空间滤波器执行处理。
[0144] 此外,在根据本发明的第一实施例的信号处理设备中,频率滤波部分执行下述处理:根据分离信号的信道,改变从分离信号去除与空间滤波信号相对应的分量的水平(level)。
[0145] 此外,在根据本发明的第一实施例的信号处理设备中,频率滤波部分执行下述处理:根据分离信号的信道的功率比,改变从分离信号去除与空间滤波信号相对应的分量的水平。
[0146] 此外,在根据本发明的第一实施例的信号处理设备中,分离处理单元使用包括与当前观测信号相对应的帧的多个帧来产生经过作为标度调整的重新标度(rescaling)处理的全死角空间滤波器和分离矩阵,并且将经过重新标度处理的全死角空间滤波器和分离矩阵应用于观测信号的处理,所述多个帧是从观测信号切出的数据单位。
[0147] 根据本发明的第二实施例,提供一种在信号处理设备上执行声源分离处理的信号处理方法。信号处理方法包括下述的分离处理步骤:在分离处理单元中,通过对由多个传感器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对观测信号执行线性滤波处理来产生与声源相对应的声源分离结果。分离处理步骤包括:线性滤波处理步骤,对观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号;全死角空间滤波步骤,应用形成由所述多个传感器获取的观测信号中包含的向着所有声源的死角波束的全死角空间滤波器,以产生去除了死角方向上的获取的声音的用全死角空间滤波器滤波的信号(空间滤波信号);以及频率滤波步骤,通过输入分离信号和空间滤波信号来执行去除分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理,从而产生频率滤波步骤的处理结果,作为声源分离结果。
[0148] 根据本发明的第三实施例,提供一种在信号处理设备上执行声源分离处理的程序。该程序执行下述的分离处理步骤:在分离处理单元中,通过对由多个传感器从多个声源获取的作为输出的混合信号执行短时傅里叶变换(STFT)来产生时间频率域中的观测信号,并且通过对观测信号执行线性滤波处理来产生与声源相对应的声源分离结果。分离处理步骤包括:线性滤波处理步骤,对观测信号执行线性滤波处理,以产生与各个声源相对应的分离信号;全死角空间滤波步骤,应用形成由所述多个传感器获取的观测信号中包含的向着所有声源的死角波束的全死角空间滤波器,以产生去除了死角方向上的获取的声音的用全死角空间滤波器滤波的信号(空间滤波信号);以及频率滤波步骤,通过输入分离信号和空间滤波信号来执行去除分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理,从而产生频率滤波步骤的处理结果,作为声源分离结果。
[0149] 另外,根据本发明的实施例的程序是这样的程序:通过以计算机可读格式提供的存储介质或通信介质,可以将该程序提供给能够执行各种程序代码的信息处理设备或计算机系统。通过以计算机可读格式提供这种程序,在信息处理设备或计算机系统上实现与该程序相对应的处理。
[0150] 根据下面的基于稍后描述的本发明实施例和附图的详细描述,本发明的实施例的其它目的、特征和优点将变得明显。在本说明书中,系统被定义为由多个装置构成的逻辑组件,并不限于在同一壳体内提供各构成装置的配置。
[0151] 在本发明的实施例的配置中,通过学习处理获得用于分离混合信号的分离矩阵,在该混合信号中混合有来自多个声源的输出,该学习处理对从混合信号产生的观测信号应用独立分量分析(ICA),从而产生分离信号。另外,将全死角空间滤波器应用于观测信号,从而产生去除了检测声音的空间滤波信号,该全死角空间滤波器在检测为观测信号的声源中具有死角。此外,执行去除分离信号中包含的与空间滤波信号相对应的信号分量的滤波处理,从而,从频率滤波部分的结果产生声源分离结果。采用这种配置,可以对包含突发声音的混合信号执行高精度的声源分离。

附图说明

[0152] 图1是下述情况的示图:其中,正从N个声源播放不同的声音,并且,在n个传声器处观测这些声音;
[0153] 图2A和2B是分别示出一个频率点中的分离(图2A)和所有频率点中的分离处理(图2B)的示图;
[0154] 图3是示出下述处理例子的示图:其中,观测信号谱图被分成多个重叠块1至N,并且,对每一块执行学习,以求解分离矩阵;
[0155] 图4是示出将从每一块求解的分离矩阵应用于后续的观测信号的“移位应用”的示图;
[0156] 图5是示出下述方法的示图:其中,按照单位时移并行地运行用于从重叠块获得分离矩阵的多个处理单位,每一个处理单位称为线程;
[0157] 图6是示出突发声音的产生与观测信号之间的对应关系的示图;
[0158] 图7是示出突发声音产生对分离结果(特别地,跟踪滞后)的影响的示图;
[0159] 图8是示出基于帧的重新标度处理的示图;
[0160] 图9是示出下述处理的示图:例如,通过从图7中所示的(b1)分离结果1减去全死角空间滤波器的结果以消除突发声音,仅仅保留声源对应输出;
[0161] 图10是示出2-信道频率滤波的示图;
[0162] 图11是示出根据本发明的实施例的2-信道频率滤波处理的细节的示图;
[0163] 图12是示出根据本发明的实施例的信号处理设备的配置例子的示图;
[0164] 图13是示出学习处理单元的线程控制部分的详细的配置例子的示图;
[0165] 图14是示出在线程计算部分中执行的处理的示图;
[0166] 图15是示出学习线程的状态过渡的示图;
[0167] 图16是示出学习线程的状态过渡的示图;
[0168] 图17是示出声源分离处理的整个序列的流程图;
[0169] 图18是示出短时傅里叶变换的细节的示图;
[0170] 图19是示出在图17中所示的流程图的步骤S101中的初始化处理的细节的流程图;
[0171] 图20是示出由线程控制部分针对多个学习线程1和2执行的控制的序列的示图;
[0172] 图21是示出在图17中所示的流程图的步骤S105中由线程控制部分执行的线程控制处理的细节的流程图;
[0173] 图22是示出在图21中所示的流程图的步骤S203中执行的等待状态处理的流程图;
[0174] 图23是示出在图21中所示的流程图的步骤S204中执行的累积状态处理的流程图;
[0175] 图24是示出在图21中所示的流程图的步骤S205中执行的学习状态处理的流程图;
[0176] 图25是示出在图24中所示的流程图的步骤S239中执行的更新分离矩阵的处理等的流程图;
[0177] 图26是示出在图24中所示的流程图的步骤S241中执行的等待时间设置处理的流程图;
[0178] 图27是示出在图17中所示的流程图的步骤S106中执行的分离处理的流程图;
[0179] 图28是示出应用于计算功率比的函数的例子的示图;
[0180] 图29是示出学习线程中的处理的流程图;
[0181] 图30是示出在图29中所示的流程图的步骤S394中执行的命令处理的流程图;
[0182] 图31是示出分离矩阵学习处理的例子的流程图,该例子是在图30中所示的流程图的步骤S405中执行的处理的例子;
[0183] 图32是示出在图31中所示的流程图的步骤S420中执行的后处理的流程图。
[0184] 图33是示出在下述情况中的配置例子的示图:其中,线性滤波与“全死角空间滤波器和频率滤波”组合。
[0185] 图34是示出执行线性滤波的最小方差波束形成器(MVBF)的应用例子的示图。

具体实施方式

[0186] 在下文中,将参照附图详细地描述根据本发明的实施例的信号处理设备、信号处理方法和程序。按照以下条目的顺序给出描述:
[0187] 1.本发明的实施例的配置和处理的简述
[0188] 2.本发明的实施例的信号处理设备的具体例子
[0189] 3.在根据本发明的实施例的信号处理设备中执行的声源分离处理
[0190] 3-1.整个序列
[0191] 3-2.初始化处理
[0192] 3-3.线程控制处理
[0193] 3-4.分离处理
[0194] 4.线程计算部分中的学习线程的处理
[0195] 5.本发明的实施例的信号处理设备的其它例子(变型例)
[0196] 6.基于根据本发明的实施例的信号处理设备的配置的优点的概述
[0197] 1.本发明的实施例的配置和处理的简述
[0198] 首先,将描述本发明的实施例的配置和处理的简述。
[0199] 在本发明的实施例中,通过使用独立分量分析(ICA)执行分离混合有多个信号的信号的处理。然而,如上所述,当通过使用基于前述的观测数据产生的分离矩阵来执行声源分离处理时,发生难以分离突发声音的问题。在本发明的实施例中,为了解决与例如突发声音有关的问题,提供这样的配置:其中,例如,将以下的组成部分新添加到由本申请人在先提交的专利申请(日本未审专利申请公开No.2008-147920)中公开的根据现有技术的实时ICA系统。
[0200] (1)一种配置:其中,为了处理突发声音失真的问题,逐个帧地执行对分离结果的重新标度(使频率之间的平衡接近于源信号的处理)。
[0201] 应该注意,该处理被称为“频繁的重新标度”。
[0202] (2)一种配置:其中,为了去除突发声音,从与ICA的学习数据相同的区间产生将死角引导到所有的检测的声源方向的滤波器(在下文中称为“全死角空间滤波器”)。此外,一种配置:其中,在通过对观测信号应用ICA的分离结果而获得的结果和通过对相同的观测信号应用全死角空间滤波器而获得的结果之间执行对应于频率滤波的处理或频率滤波。
[0203] 应该注意,该处理配置被称为“全死角空间滤波器和频率滤波”。
[0204] (3)一种配置:其中,为了根据突发声音的特性执行不同的处理,确定ICA的各个输出信道是否输出对应于声源的信号,并且,根据其结果执行所述处理之一。
[0205] i)如果确定信号对应于声源,则应用“频繁的重新标度”和“全死角空间滤波器和频率滤波”二者。
[0206] 结果,从所述信道去除突发声音。
[0207] ii)如果确定信号不对应于声源,则仅仅应用“频繁的重新标度”。结果,从所述信道输出突发声音。
[0208] 应该注意,该处理配置被称为“对各个信道的确定”。
[0209] 在下文中,首先,将给出对上述的(1)至(3)的简述。
[0210] (1)频繁的重新标度
[0211] 在作为由本申请人在先提交的专利申请的日本未审专利申请公开No.2008-147920中,在学习结束时对分离矩阵执行重新标度。
[0212] 参照图5,将描述对分离矩阵重新标度的处理。
[0213] 例如,当图5中所示的线程2的学习区间58的学习结束时,基于学习数据59确定分离矩阵的标度(频率之间的平衡),然后,该标度在下一次更新分离矩阵之前保持恒定不变。在这种情况下,通过其正确的标度产生学习数据59中包含的声源的输出,但是,通过不正确的标度产生其它声源的输出(即,突发声音)。
[0214] 因此,在本发明的实施例中,逐个帧地执行重新标度(使频率之间的平衡接近于原始声音的处理),从而减少突发声音的失真。将参照图8描述基于帧的重新标度处理。
[0215] 图8以与上述的图4中所示的方式相同的方式示出以下数据:
[0216] Fig.8(a)观测信号谱图
[0217] Fig.8(b)分离结果谱图
[0218] 图8中所示的学习数据块81对应于图4中所示的学习数据块41。
[0219] 图8中所示的当前时刻的观测信号82对应于图4中所示的当前时刻的观测信号42。
[0220] 图8中所示的分离矩阵83对应于图4中所示的分离矩阵43。图8中所示的分离矩阵83是从学习数据块81获得的分离矩阵。
[0221] 通过使用学习数据块81的学习数据,已经执行现有技术的重新标度。与此不同的是,在下述的根据本发明的实施例的处理中,设置具有规定长度的其末端是当前时刻的块,即,图8中所示的包含当前时刻的块87,从而通过使用包含当前时刻的块87的区间中的观测信号来执行重新标度。稍后将描述重新标度的详细的表达式。通过执行重新标度处理,还可以在早期阶段调整突发声音的标度(=减少其失真)。
[0222] (2)全死角空间滤波器和频率滤波
[0223] 接下来,将参照图8描述作为对去除突发声音有效的处理的“全死角空间滤波器和频率滤波”处理。图8中所示的“学习数据块81”与图4中所示的学习数据块41相同。在现有技术中,从该数据仅仅产生分离矩阵83(与图4中的分离矩阵43相同)。与此不同的是,在本发明的实施例中,不仅图8中所示的分离矩阵83是从同一数据(学习数据块81)产生的,而且,全死角空间滤波器84也是从该同一数据(学习数据块81)产生的。稍后将描述产生全死角空间滤波器84的方法。
[0224] 全死角空间滤波器84是这样的滤波器(向量或矩阵):该滤波器向着存在于学习数据块81的区间中的所有的声源形成死角波束,并且具有仅仅使突发声音通过的功能,该突发声音即为学习数据块81中的还没有播放声音的方向上的声音)。原因在于通过由全死角空间滤波器84形成的死角去除在学习数据块81中已经播放的声音,只要该声音保持播放而不改变其位置即可,而在突发声音的方向上没有形成死角,从而使突发声音通过。
[0225] 另一方面,分离矩阵83使突发声音通过。这些结果根据输出信道而不同。因此,在某一信道上,将突发声音叠加在到此时为止已经输出的声源上(图7中的(b1)分离结果1)。另外,在其它信道上,仅仅输出突发声音(图7中的(b2)分离结果2和(b3)分离结果
3)。
[0226] 这里,从与图7中的(b1)分离结果1相同的结果减去全死角空间滤波器的结果(或者,对全死角空间滤波器的结果进行与其类似的操作)。然后,消除了突发声音,仅仅保留与声源相对应的输出。将参照图9描述其处理序列。
[0227] 图9示出以下信号:
[0228] (a)观测信号;
[0229] (b)用全死角空间滤波器滤波的信号;
[0230] (c1)处理结果1;
[0231] (c2)处理结果2;以及
[0232] (c3)处理结果3。
[0233] 时间(t)从左向右推移,每一块的高度表示其音量。
[0234] (a)观测信号与上述的图7中的(a)观测信号相同。观测信号包括在时间t0至t5的范围中连续地播放的连续声音91和仅仅在时间t1至t4的范围中输出的突发声音92。
[0235] 当对图9中所示的(a)观测信号应用全死角空间滤波器时,可以获得用全死角空间滤波器滤波的(b)信号。也就是说,正播放的连续声音91几乎被去除了,然而,突发声音92的开始部分保留而未被去除。
[0236] 在时间t0至t5的范围中,正播放的连续声音91几乎从用全死角空间滤波器滤波的(b)信号中被去除了。另一方面,突发声音92的开始部分(从时间t1起)保留而未被去除。在从时间t1至t2的区间94中,突发声音92几乎不被去除。
[0237] 原因在于全死角空间滤波器具有去除时间上先前的观测信号中包含的声源的功能,但是,突发声音92不包含在紧邻从时间t1至t2的区间94之前的观测信号中,并且没有被全死角空间滤波器去除。
[0238] 从作为分离矩阵应用结果之一的图7中的(b1)分离结果1中减去图9中所示的用全死角空间滤波器滤波的(b)信号。然后,可以获得这样的结果:即,其中,突发声音被去除了,而仅保留正播放的连续声音91。该结果是图9中的(c1)处理结果1的信号。也就是说,图9中的(c1)处理结果1是可以从下述的基于图7中的(b1)分离信号和图9中的用全死角空间滤波器滤波的(b)信号的计算结果获得的信号。
[0239] 处理结果1=(分离结果1)-(用全死角空间滤波器滤波的信号)
[0240] 另外,为了在减算时完全去除突发声音,有必要将全死角空间滤波结果的标度调整为分离矩阵应用结果中包含的突发声音的标度。这被称为“全死角空间滤波器的重新标度”。另外,作为将一个信号的标度(信号波动范围)调整为另一信号的标度的处理,执行重新标度处理。在此情况下,作为使全死角空间滤波结果的标度接近于分离矩阵应用结果中包含的突发声音的标度的处理,执行重新标度处理。由于有必要调整ICA的每一个输出信道的标度,所以在重新标度之后获得的全死角空间滤波结果与ICA的信道数目相同(在重新标度之前获得的全死角空间滤波结果的信道数目是1)。
[0241] “减法”可以是通常的减法(复数领域中的减法),但是,所谓的2-信道频率滤波的处理可以被推广使用。
[0242] 将参照图10描述2-信道频率滤波。
[0243] 通常,2-信道频率滤波被设置有两个输入。
[0244] 假设一个是观测信号102[X(ω,t)],而另一个是估计噪声101[N(ω,t)]。
[0245] 这些是具有相同的时间和频率的信号。
[0246] 由增益估计部分103从这两个信号计算增益104(与观测信号相乘的因子)[G(ω,t)],并且,增益应用部分105将该增益与观测信号相乘,从而获得处理结果106。处理结果U(ω,t)由下述表达式表示:
[0247] U(ω,t)=G(ω,t)×X(ω,t)。
[0248] 具体地说,在噪声占主导的频率处,增益被设置得小,而在噪声低的频率处,增益被设置得大,从而产生去除了噪声的信号。通常的减法也可以被认为是一种频率滤波,但是,不同于此的是,可以应用已知的方法,例如,谱减法(谱减法)或者最小均方误差(MMSE)·维纳滤波器联合法MAP(Minimum Mean Square Error(MMSE)·Wiener Filter Joint MAP)。
[0249] 将参照图11描述根据本发明的实施例的2-信道频率滤波处理的细节。在根据本发明的实施例的处理中,作为观测信号的输入,输入分离矩阵应用结果112,即Y′k(ω,t)。
[0250] 另外,作为估计噪声的输入,输入作为突发声音的全死角空间滤波结果(重新标度之后)111,即Z′k(ω,t)。
[0251] 增益估计部分113输入全死角空间滤波结果111和分离矩阵应用结果112,从而求解增益114[Gk(ω,t)]。增益应用部分115将增益114[Gk(ω,t)]与分离矩阵应用结果112(即,Y′k(ω,t))相乘,从而求解Uk(ω,t),作为去除了突发声音的结果。处理结果Uk(ω,t)由下述表达式表示:
[0252] Uk(ω,t)=Gk(ω,t)×Y′k(ω,t)。
[0253] 另外,如果在频率滤波中使用诸如谱减法的非线性方法,则还可以去除在“背景技术的描述”的部分中描述的“残余声音”。也就是说,由于即使通过使用分离矩阵和全死角空间滤波器也难以去除“残余声音”,所以通过减去彼此各自的结果来消除残余声音。由此,可以解决跟踪滞后和残余声音之间的折衷的问题。
[0254] (3)对各个信道的确定
[0255] 当对所有的信道应用上述的“全死角空间滤波器和频率滤波”时,在某一种情况下,这样会导致更多的麻烦。这种情况是突发声音是目标声音的情况。例如,在图7中,由于在(b2)分离结果2中仅仅输出突发声音,所以,当将信道经过利用图9中所示的用全死角空间滤波器滤波的(b)信号的减法时,去除了突发声音的开始部分(图7中所示的从时间t1至t2的区间74),并且不输出声音。在突发声音是干扰声音的情况中,即使在该处理中也不存在问题,但是,在突发声音是目标声音的情况中,对其应用该处理不是优选的。
[0256] 因此,基于下述标准,确定对于每一个信道是否应用“全死角空间滤波器和频率滤波”。可替换地,对于每一个信道,改变频率滤波的水平。这样,可以同时实现仅仅输出正播放的声音(从产生突发声音之前的时间开始已经播放的声音)的信道和仅仅输出突发声音的信道的这两种信道。
[0257] 对某一信道是否应用“全死角空间滤波器和频率滤波”,即,是否优选去除突发声音,取决于紧邻在产生突发声音之前是否正从该信道输出与声源相对应的信号。如果已经输出与声源相对应的信号,则执行频率滤波(或者,将减法量设置得大)。相反,如果没有输出信号,则跳过频率滤波(或者,将减法量设置得小)。
[0258] 例如,在图7中,关注紧邻在产生突发声音72之前的从时间t0至t1的区间73,在(b1)分离结果1的信道上输出与声源的连续声音71相对应的信号。对该信道应用全死角空间滤波器和频率滤波。因此,即使当产生突发声音时,也去除突发声音,并且仅仅连续地输出从连续声音71得到的信号。
[0259] 该结果对应于图9中的(c1)处理结果1。
[0260] 另一方面,在作为另一信道的图7中所示的(b2)分离结果2和(b3)分离结果3中的从时间t0至t1的区间73中,去除了从连续声音71得到的分量,并且输出近无声信号。不对该信道应用频率滤波。也就是说,该结果是图9的(c2)处理结果2和(c3)处理结果
3。因此,对该信道仅仅应用频繁的重新标度。如上所述,“频繁的重新标度”被定义为逐个帧地重新标度分离结果的处理(使频率之间的平衡接近于源信号的处理)。
[0261] 通过执行该处理,输出在产生突发声音时仅仅从该突发声音产生的信号。此外,在这种情况下,对于每一帧,执行频繁的重新标度,由此,与根据现有技术的方法相反,减少了突发声音的开始部分的失真。
[0262] ICA的各个输出(分离矩阵的应用结果)是否对应于声源取决于分离矩阵。因此,不必对每一帧执行确定,并且,优选的是,在更新分离矩阵的定时执行确定。稍后将描述详细的确定标准。
[0263] 另外,当基于关于“是否应用频率滤波”的两种选择执行确定时,在改变应用状态时大大地改变处理结果。为了防止上述现象,优选的是,执行根据表示ICA的输出是否对应于声源的连续值连续地改变应用频率滤波的水平(减法量)的处理。稍后描述其详细的说明。
[0264] 2.本发明的实施例的信号处理设备的具体例子
[0265] 在下文中,将描述根据本发明实施例的信号处理设备的具体例子。在图12中示出根据本发明的实施例的信号处理设备的配置例子。图12中所示的设备配置是基于由本申请人在先提交的日本未审专利申请公开No.2008-147920“实时声源分离设备和方法”。将下述元件添加到日本未审专利申请公开No.2008-147920中公开的配置:协方差矩阵计算部分125,其是用于全死角空间滤波器和频率滤波的模块;全死角空间滤波部分127;频率滤波部分128;全死角空间滤波器保持部分134;以及功率比保持部分135。具体地说,图12中所示的信号处理设备可以由例如PC实现。也就是说,图12中所示的信号处理设备中的各个处理可以由例如CPU执行,该CPU执行基于规定程序的处理。
[0266] 在图12的左边示出的分离处理单元123主要执行观测信号的分离。在图12的右边示出的学习处理单元130主要执行分离矩阵的学习。具体地说,学习处理单元130执行分离矩阵的产生、全死角空间滤波器的产生、功率比的计算等。如上所述,全死角空间滤波器是这样的滤波器(向量或矩阵):该滤波器向着在学习数据块区间中检测到的所有的声源形成死角波束,并且具有仅仅使突发声音通过的功能,该突发声音即为学习数据块中的还没有播放声音的方向上的声音。另外,功率比被定义为关于各个信道上的声音的功率(音量)的比例的信息。
[0267] 另外,并行地执行分离处理单元123中的处理和学习处理单元130中的处理。分离处理单元123中的处理是前景处理(foreground process),学习处理单元130中的处理是背景处理(background process)。
[0268] 从整个系统的角度来说,在用最新的分离矩阵和全死角空间滤波器适当地替换应用于分离处理的分离矩阵和全死角空间滤波器的同时,分离处理单元123针对每一帧对观测信号执行声源分离处理,以产生分离结果。学习处理单元130提供分离矩阵和全死角空间滤波器,并且,分离处理单元123应用从学习处理单元130提供的分离矩阵和全死角空间滤波器,从而执行声源分离处理。在添加到根据本发明实施例的配置的这三个元件中,以与分离矩阵的学习相同的方式,将全死角空间滤波器的产生执行作为学习处理单元130中的背景处理。然而,对于分离矩阵和全死角空间滤波器的频繁的重新标度、将这些应用于观测信号、频率滤波等被执行为分离处理单元123中的前景处理。
[0269] 在下文中,将描述对各个分量的处理。
[0270] 由多个传声器121记录的声音由AD转换单元122转换为数字信号,然后被发送到分离处理单元123的傅里叶变换部分124。在傅里叶变换部分124中,通过加窗短时傅里叶变换(STFT)(稍后给出其细节)将数字信号变换为频率域数据。此时,产生称为帧的预定数目的数据。按照帧的单位执行后续的处理。傅里叶变换的数据被发送给协方差矩阵计算部分125、分离矩阵应用部分126、全死角空间滤波部分127和线程控制部分131中的每一个。
[0271] 在下文中,首先,将描述在分离处理单元123中的前景处理中的信号的流程。然后,将描述学习处理单元130中的处理。
[0272] 分离处理单元123的协方差矩阵计算部分125输入由傅里叶变换部分124产生的观测信号的傅里叶变换数据,从而针对每一帧计算观测信号的协方差矩阵。稍后将描述计算的细节。在分离矩阵应用部分126和全死角空间滤波部分127中的每一个中,使用这里获得的协方差矩阵来对每一帧执行重新标度。另外,使用对频率滤波部分128应用频率滤波的程度作为确定标准。
[0273] 在分离矩阵应用部分126中,对于当前时刻之前在学习处理单元130中获得的分离矩阵,即,对于在分离矩阵保持部分133中保持的分离矩阵,执行重新标度。随后,将对应于一帧的观测信号与重新标度的分离矩阵相乘,从而产生对应于一帧的分离矩阵应用结果。
[0274] 在全死角空间滤波部分127中,对于当前时刻之前在学习处理单元130中获得的全死角空间滤波器,即,对于在全死角空间滤波器保持部分134中保持的全死角空间滤波器,执行重新标度。然后,将对应于一帧的观测信号与重新标度的全死角空间滤波器相乘,从而产生对应于一帧的全死角空间滤波结果。
[0275] 在从全死角空间滤波部分127接收将全死角空间滤波器应用于基于观测信号的傅里叶变换数据的结果的同时,频率滤波部分128从分离矩阵应用部分126接收将分离矩阵应用于基于观测信号的傅里叶变换数据的结果。基于这两个应用结果,频率滤波部分128执行上面参照图11描述的2-信道频率滤波。将该结果发送给逆傅里叶变换部分129。
[0276] 发送给逆傅里叶变换部分129的分离结果被变换为时间域信号,并且被发送给后阶段处理部分136。由后阶段处理部分136执行的后阶段的处理的例子包括声音识别、说话者识别、声音输出等。根据后阶段的处理,可以原样地使用频率域数据,在这种情况下,可以省略逆傅里叶变换。
[0277] 接下来,傅里叶变换部分124还将基于观测信号的傅里叶变换数据提供给学习处理单元130的线程控制部分131。
[0278] 发送给线程控制部分131的观测信号被发送到线程计算处理部分132的多个学习线程132-1至132-N。各个学习线程按照预定量累积给定的观测信号,并然后通过使用ICA批次处理从观测信号求解分离矩阵。该处理与上面参照图5描述的处理相同。此外,线程控制部分131还从分离矩阵计算全死角空间滤波器和功率比。在分离矩阵保持部分133、全死角空间滤波器保持部分134和功率比保持部分135中保持计算的分离矩阵、全死角空间滤波器和功率比。
[0279] 然后,在线程控制部分131的控制下,将这些分别发送给分离处理单元123的分离矩阵应用部分126、全死角空间滤波部分127和频率滤波部分128。
[0280] 从全死角空间滤波部分127和分离矩阵应用部分126到线程控制部分131的虚线表示在初始的学习值中反映了最新的重新标度的全死角空间滤波器和分离矩阵。其详细描述将在后面部分的“5.本发明的实施例的信号处理设备的其它例子(变型例)”中给出。
[0281] 接下来,参照图13,将给出对图12中所示的设备配置的学习处理单元130的线程控制部分131的详细配置的描述。
[0282] 每当提供一帧观测信号时,将当前帧索引保持计数器151加1,并且,在达到预定值时,将该当前帧索引保持计数器151返回到初始值。
[0283] 在执行每一线程中的学习处理时,学习初始值保持部分152保持分离矩阵W的初始值。尽管分离矩阵W的初始值基本上与最新的分离矩阵的初始值相同,但是,也可以使用不同的值。例如,将还没有应用重新标度(调整频率点之间的功率的处理,将稍后给出其细节)的分离矩阵用作学习初始值,而将已经应用重新标度的分离矩阵用作最新的分离矩阵。
[0284] 计划累积开始定时指定信息保持部分153保持用于保持在多个线程之间以恒定间隔开始累积的定时的信息。稍后描述使用方法。计划累积开始定时可以通过使用相对时刻来得以表达,或者,可以通过帧索引或者通过时间域信号的采样索引(sample index)代替相对时刻来得以管理。这同样适用于管理其它种类的“时刻”和“定时”的信息。
[0285] 观测信号累积定时信息保持部分154保持表示获取观测信号的定时(即,与最新的分离矩阵相对应的观测信号的相对时刻或帧索引)的信息,所述观测信号用作用于学习当前在分离部分127中使用的分离矩阵W的基础。相应的观测信号的累积开始定时和累积结束定时都可以存储在观测信号累积定时信息保持部分154中。然而,当块长度(即,观测信号的累积时间)恒定不变时,仅仅存储这些定时中的一个定时就足够了。
[0286] 此外,线程控制部分131具有指针保持部分155,并且通过使用指针保持部分155控制多个线程132-1至132-N,该指针保持部分155保持链接到各个线程的指针。
[0287] 接下来,参照图14,将描述在线程计算部分132中执行的处理。线程132-1至132-N中的每一个通过使用观测信号缓冲器161、分离结果缓冲器162、学习计算部分163和分离矩阵保持部分164中的各个模块的功能来执行批次处理ICA。
[0288] 观测信号缓冲器161保持从线程控制部分131提供的观测信号。
[0289] 分离结果缓冲器162保持分离矩阵收敛之前的由学习计算部分163计算出的分离结果。
[0290] 学习计算部分163执行下述处理:基于在分离矩阵保持部分164中保持的用于分离处理的分离矩阵W,分离在观测信号缓冲器161中累积的观测信号;将这些分离结果累积到分离结果缓冲器162中;并且,还通过使用在分离结果缓冲器162中累积的分离结果来更新正学习的分离矩阵。
[0291] 线程计算部分132(=学习线程)是状态过渡机器(state transition machine),当前状态被存储在状态存储部分165中。线程状态由线程控制部分131基于计数器166的计数值控制。计数器166与提供一帧观测信号同步地改变值,并且基于该值来切换其状态。将稍后给出其详细描述。
[0292] 观测信号开始/结束定时保持部分167保持表示用于学习的观测信号的开始定时和结束定时的至少一个信息。如上所述,表示该定时的信息可以是帧索引或采样索引,或者可以是相对时刻信息。也在这种情况下,尽管可以存储开始定时和结束定时二者,但是,在块长度(即观测信号的累积时间)恒定不变时,仅仅存储这些定时中的一个定时就足够了。
[0293] 学习结束标志168是用于向线程控制部分131通知学习结束的标志。在启动线程时,学习结束标志168被设置为OFF(标志未立起),在学习结束时,学习结束标志168被设置为ON。然后,在线程控制部分131识别学习已经结束之后,通过线程控制部分131的控制,将学习结束标志168又设置为OFF。
[0294] 另外,可以通过诸如线程控制部分131的外部模块来重新写入状态存储部分165、计数器166和观测信号开始/结束定时保持部分167的数据中的值。例如,虽然在线程计算部分132中运行学习循环,但是线程控制部分131能够改变计数器166的值。
[0295] 预处理数据保持部分169是存储下述数据的区域:当已经应用预处理的观测信号返回到原始状态时,该数据变成必要的。具体地说,例如,当在预处理中执行对观测信号的归一化(将方差调整为1,将平均值调整为0)的情况下,由于诸如方差(或者标准偏差或其倒数)和平均值的值保持在预处理数据保持部分169中,所以,可以通过使用这些值来恢复归一化之前的源信号。在作为预处理执行例如去相关(又称为预白化)的情况中,在去相关的期间与观测信号相乘的矩阵保持在预处理数据保持部分169中。
[0296] 全死角空间滤波器保持部分160保持形成观测信号缓冲器161中包含的向着所有的声源的死角波束的滤波器。在学习结束时从分离矩阵产生滤波器。可替换地,存在从观测信号缓冲器的数据产生滤波器的方法。稍后描述产生方法。
[0297] 接下来,将参照图15和16描述学习线程132-1至132-N的状态过渡。关于其实现,规格可以是这样的:每一个线程基于计数器166的值单独地改变其状态。然而,规格也可以是这样的:线程控制部分根据计数器166的值或者“学习结束标志”168的值发出状态过渡命令,并且,每一个线程响应于该命令而改变其状态。在下面的例子中,采用后一种规格。
[0298] 图15示出上面参照图5描述的线程之一。在每一个线程中,当在观测信号的“累积”状态中时,将指定的持续时间(即,一个块长度)的观测信号累积到缓冲器中。在经过指定的时间之后,状态过渡到学习。
[0299] 在学习状态中,在分离矩阵W收敛之前执行学习处理循环(或者,将学习处理循环执行预定次数),并且,求解与在累积状态中累积的观测信号相对应的分离矩阵。在分离矩阵W收敛之后(或者,在将学习处理循环执行预定次数之后),状态过渡到等待。
[0300] 然后,在等待状态中,在指定时间内不执行对观测信号的累积或学习,并且,将该线程置于等待状态中。维持等待状态的时间由进行学习的时间确定。也就是说,如图15所示,设置线程长度(thread_len),该线程长度是“累积”状态、“学习”状态和“等待”状态的总时间宽度,并且,基本上,将从“学习”状态结束时到线程长度结束的时间设置为“等待”状态时间(等待时间)。在经过等待时间之后,该状态返回到观测信号的“累积”状态。
[0301] 虽然这些时间可以按照例如毫秒的单位管理,但是所述时间可以按照由短时傅里叶变换产生的帧的单位测量。在以下的描述中,假设这些时间按照帧的单位测量(例如,总计)。
[0302] 参照图16,将给出对线程的状态过渡的进一步描述。尽管这些线程在系统启动之后立即处于“初始状态”181,但是,使一个线程过渡到“累积”183,使另一个线程过渡到“等待”182(发出状态过渡命令)。在上述的图5的例子中,线程1是已经过渡到“累积”的线程,其它线程是已经过渡到“等待”的线程。在下文中,首先将描述已经过渡“累积”的线程。
[0303] 累积观测信号所需的时间被称为块长度(block_len)(参照图15)。另外,一个周期的累积、学习和等待所需的时间被称为线程长度(thread_len)。虽然这些时间可以按照毫秒等的单位管理,但是通过短时傅里叶变换产生的帧可以用作管理的单位。在以下的描述中,帧用作单位。
[0304] 基于计数器值进行“从累积到学习”和“从等待到累积”的状态过渡。也就是说,在已经从“累积”(图15中的累积状态171和图16中的累积状态183)开始的线程内,每当提供一帧的观测信号时,将计数器加1,并且,当计数器的值等于块长度(block_len)时,使状态过渡到“学习”(图15的学习状态172和图16中的学习状态184)。虽然在背景中与分离处理并行地执行学习,但是,也在该学习期间,与这一帧观测信号同步地将计数器加1。
[0305] 在学习完成时,使状态过渡到“等待”(图15中的等待状态173和图16中的等待状态182)。当在等待状态中时,与学习状态中一样,与这一帧观测信号同步地将计数器加1。然后,当计数器值等于线程长度(thread_len)时,使状态从“累积”(图15中的累积状态171和图16中的累积状态183)过渡,并且,将计数器返回到0(或者合适的初始值)。
[0306] 另一方面,关于已经从“初始状态”181过渡到“等待”(图15中的等待状态173和图16中的等待状态182)的线程,将计数器设置为与将该线程要置于等待状态的时间相对应的值。例如,图5中的线程2在等待与块移位宽度(block_shift)相等的时间之后过渡到“累积”。同样地,使线程3等待与块移位宽度的两倍(block_shift×2)相等的时间。
[0307] 为了实现这些操作,将线程2的计数器设置为:
[0308] (线程长度)-(块移位宽度):(thread_len)-(block_shift)。
[0309] 另外,将线程3的计数器设置为:(线程长度)-(2×块移位宽度):(thread_len)-(block_shift×2)。
[0310] 采样这些设置,在计数器的值达到线程长度(thread_len)之后,状态过渡到“累积”,其后,与线程1中一样,重复“累积、学习和等待”的周期。
[0311] 要准备的学习线程的数目由线程长度和块移位宽度确定。假设线程长度表示为thread_len并且块移位宽度表示为block_shift,则通过(线程长度)/(块移位宽度)(即,thread_len/block_shift)来求解所需的学习线程的数目。
[0312] 对其分数部分进行四舍五入计算。
[0313] 例如,在图5中,所述设置是这样的:[线程长度(thread_len)]=1.5×[块长度(block_len)],并且[块移位宽度(block_shift)]=0.25×块长度(block_len)]。
[0314] 因此,所需的线程的数目是1.5/0.25=6。
[0315] 3.在根据本发明的实施例的信号处理设备中执行的声源分离处理
[0316] 3-1.整个序列
[0317] 接下来,参照图17中所示的流程图,将给出对在根据本发明的实施例的信号处理设备中的实时声源分离处理的整个序列的描述。图17中所示的流程图是主要示出分离处理单元123中的处理的流程图。学习处理单元130中的“背景处理(学习)”可以在与分离处理不同的处理单元(例如,不同的线程、不同的处理或不同的处理器)中运行,由此将参照不同的流程图来进行描述。此外,将参照图20中所示的序列图描述在这两个处理之间交换的命令等。
[0318] 首先,参照图17中的流程图,将给出对分离处理单元123中的处理的描述。在启动系统时,在步骤S101中,执行各种初始化。稍后描述初始化的细节。在系统上的处理结束之前,重复从步骤S103中的声音输入到步骤S108中的分离结果的传送的处理(步骤S102中的“是”)。
[0319] 在步骤S103中的声音输入是从音频装置(或者,取决于本实施例的网络、文件等)捕获预定数目的采样(这个过程将被称为“捕获”)并将捕获的采样存储在缓冲器中的处理。针对传声器的数目而执行这个。在下文中,捕获的数据将被称为观测信号。
[0320] 接下来,在步骤S104中,针对每一个预定的长度切割观测信号,并且,执行短时傅里叶变换(STFT)。将参照图18描述短时傅里叶变换的细节。
[0321] 例如,在图18(a)中示出在图1所示的环境中用第k个传声器记录的观测信号xk。将诸如汉宁窗(Hanning window)或正弦窗的窗函数应用于帧191至193,这些帧均是通过从观测信号xk切割预定长度而获得的切割数据。切割单位被称为帧。通过对一帧的数据应用离散傅立叶变换(对有限区间的傅里叶变换,简称为DFT)或者快速傅里叶变换(FFT),获得作为频率域数据的谱Xk(t)(t是帧索引)。
[0322] 与图中所示的帧191至193一样,要切割的这些帧可以是重叠的,从而使连续帧的谱Xk(t-1)至Xk(t+1)可以平滑变化。根据帧索引并排地放置的谱被称为谱图。图18(b)示出谱图的例子。
[0323] 由于根据本发明的的实施例存在多个输入信道(等于传声器的数目),所以,针对信道的数目,还执行傅里叶变换。在下文中,与所有的信道和一个帧相对应的傅里叶变换结果由向量X(t)(上述的表达式[3.11])表示。在表达式[3.11]中,n表示信道的数目(=传声器的数目)。M表示频率点的总数,假设J表示短时傅里叶变换中的点的数目,M=J/2+1。
[0324] 返回到图17中的流程,继续描述。在步骤S104中,对于每一个预定的长度切割观测信号,并且,执行短时傅里叶变换(STFT)。然后,在步骤S105中,对每一个学习线程执行控制。将稍后给出其详细描述。
[0325] 接下来,在步骤S106中,对在步骤S105中产生的观测信号X(t)执行分离。假设分离矩阵是W(表达式[3.10]),通过Y(t)=WX(t)(表达式[3.12])来求解分离结果(表达式[3.4])。
[0326] 接下来,在步骤S107中,对分离结果Y(t)应用逆傅里叶变换(逆FT),从而将信号恢复回到时间域信号。其后,在步骤S108中,将分离结果传送到后阶段处理。始终重复上述的步骤S103至S108。
[0327] 3-2.初始化处理(S101)
[0328] 将参照图19的流程图描述在图17中所示的流程图中的步骤S101的初始化处理的细节。
[0329] 在步骤S151中,在图12和13中所示的线程控制部分131自身初始化。具体地说,在图13中所示的各个部件上执行下述处理。
[0330] 当前帧索引保持计数器151(参照图13)被初始化为0。
[0331] 将合适的初始值代入学习初始值保持部分152中(参照图13)。例如,初始值可以是单位矩阵,或者,当存储最后系统终止时的分离矩阵W时,可以使用最后系统终止时的的分离矩阵W或者该分离矩阵的适当变换的版本。另外,例如,在可以从诸如图像或在先的知识的信息以某一精度估计声源方向的情况中,可以计算初始值,并且,基于声源方向来设置初始值。
[0332] 此外,在计划累积开始定时指定信息保持部分153中,下述表达式的计算值被设置:(所需的线程的数目-1)×[块移位宽度(block_shift)]。
[0333] 该值表示开始累积具有最大线程索引的线程的定时(帧索引)。
[0334] 然后,由于表示与最新的分离矩阵相对应的观测信号的定时信息(帧索引或相对时刻信息)保持在观测信号累积定时信息保持部分154中,所以,此时执行初始化,并且保持0。
[0335] 也在分离矩阵保持部分133(参照图12)中,与学习初始值保持部分152的情况一样,在初始化时,保持合适的初始值。要保持在分离矩阵保持部分133中的初始值可以是单位矩阵。当存储最后系统终止时的分离矩阵W时,可以使用最后系统终止时的分离矩阵W或者该分离矩阵的适当变换的版本。
[0336] 此外,将初始值代入全死角空间滤波器保持部分134(参照图12)中。该初始值取决于分离矩阵的初始值。在单位矩阵用作分离矩阵的情况中,将表示“死角”的值代入全死角空间滤波器,以这个值,将稍后描述的频率滤波设置为无效的(inactive)。另一方面,在另一合适值用作分离矩阵的初始值的情况中,从该初始值计算全死角空间滤波器的值。
[0337] 还将初始值代入功率比保持部分135(参照图12)中。例如,在将0作为初始值代入时,在通过学习求解第一分离矩阵(例如,图5中的区间51)之前,可以将频率滤波设置为无效的。
[0338] 在步骤S152中,线程控制部分131确保要在线程计算部分132中执行的所需的线程的数目N,并且将它们的状态设置为“初始化的”状态。
[0339] 此时,通过对线程长度/块移位宽度(thread_len/block_shift)的小数进行四舍五入计算来获得所需的线程的数目N(即,大于并最接近于thread_length/block_shift的值的整数)。
[0340] 在步骤S153中,线程控制部分131开始线程循环,在所有的线程的初始化完成之前,线程控制部分131检测未初始化的线程并执行从步骤S154至步骤S159的处理。该循环执行在步骤S152中产生的线程的数目。应该注意,线程索引从1依次地增加,并且被表示为循环中的变量“s”(可以执行并行处理学习线程的数目而不是循环,这同样适于稍后描述的学习线程的循环)。
[0341] 在步骤S154中,线程控制部分131确定线程索引是否为1。由于初始设置在第一线程和其它线程之间不同,所以该处理在步骤S154中分支。
[0342] 如果在步骤S154中确定线程索引是1,则在步骤S155中,线程控制部分131控制具有线程索引1的线程(例如,线程132-1),并且初始化其计数器166(参照图14)(例如,将计数器166设置为0)。
[0343] 在步骤S156中,线程控制部分131向具有线程索引1的线程(例如,线程132-1)发出用于使状态过渡到“累积”状态的状态过渡命令,并且,该处理前进至步骤S159。通过从线程控制部分向学习线程发出命令(在下文中称为“状态过渡命令”)以便“过渡到指定状态”来执行状态过渡(在以下的描述中,这同样适于各种状态过渡)。
[0344] 如果在步骤S154中确定线程索引不是1,则在步骤S157中,线程控制部分131将相应的线程(线程132-2至132-N中的一个线程)的计数器166的值设置为thread_len-block_shift×(线程索引-1)。
[0345] 在步骤S158中,线程控制部分131发出用于使状态过渡到“等待”状态的状态过渡命令。
[0346] 在步骤S156或步骤S158中的处理之后,在步骤S159中,线程控制部分131对仍尚未初始化的线程内的信息进行初始化,所述信息即为表示存储在状态存储部分165(参照图4)中的状态的信息和与计数器166的计数器值不同的信息。具体地说,例如,线程控制部分131将学习结束标志168(参照图14)设置为OFF,并且对观测信号开始/结束定时保持部分167和预处理数据保持部分169中的值进行初始化(例如,将这些值设置为0)。
[0347] 当已经对线程计算部分132中确保的所有的线程(即,线程132-1至132-N)进行初始化时,在步骤S160中,线程循环结束,并且初始化结束。
[0348] 通过这种处理,线程控制部分131对在线程计算部分132中确保的多个线程的全部初始化。
[0349] 图19中的步骤S154至S158中的处理对应于图20所示的序列图中的开始的“初始化”处理和紧接在初始化处理之后的状态过渡命令的传送。图20示出由线程控制部分131针对多个学习线程1和2执行的控制的序列。每一个线程重复地执行等待、累积和学习的处理。在线程控制部分向每一个线程提供观测信号,并且每一个线程累积观测数据之后,执行学习处理以产生分离矩阵,并且向线程控制部分提供分离矩阵。
[0350] 3-3.线程控制处理(S105)
[0351] 接下来,参照图21中的流程图,将给出对线程控制处理的描述,该线程控制处理由线程控制部分131在图17中所示的流程图中的步骤S105中执行。
[0352] 应该注意,该流程图表示从线程控制部分131看见、而不是从学习线程132-1至132-N看见的流程。例如,“学习状态处理”被定义为当学习线程的状态是“学习”时由线程控制部分131执行的处理(关于学习线程自身的处理,参照图29)。
[0353] 步骤S201至S206表示学习线程的循环,并且,运行循环在图21所示的流程的步骤S152中产生的线程的数目(也可以执行并行的处理)。在步骤S202中,从状态存储部分165(参照图14)读取学习线程的当前状态,根据读取的值,执行“等待状态处理”、“累积状态处理”和“学习状态处理”之一。稍后将详细地描述各个处理的细节。
[0354] 将给出对该流程的各个步骤的描述。在步骤S201中,线程控制部分131开始线程循环,并且,在表示执行控制的线程的线程索引的变量“s”设置为s=1的情况下,线程控制部分131在一个线程完成时增加变量“s”,并且,重复从步骤S202至S207的线程循环处理,直到s=N为止。
[0355] 在步骤S202中,线程控制部分131获取表示具有由变量“s”表示的线程索引的线程的内部状态的信息,该信息保持在该线程的状态存储部分165中。如果检测到具有由变量“s”表示的线程索引的线程的状态是“等待”,则在步骤S203中,线程控制部分131执行等待状态处理,并且,该处理前进至步骤S206,稍后参照图22的流程图描述该等待状态处理。
[0356] 如果在步骤S202中检测到具有由变量“s”表示的线程索引的线程的状态是“累积”,则在步骤S204中,线程控制部分131执行累积状态处理,并且,该处理前进至步骤S206,稍后参照图23的流程图描述该累积状态处理。
[0357] 如果在步骤S202中检测到具有由变量“S”表示的线程索引的线程的状态是“学习”,则在步骤S205中,线程控制部分131执行学习状态处理,稍后参照图24的流程图描述该学习状态处理。
[0358] 在完成步骤S203、步骤S204或步骤S205中的处理之后,在步骤S206中,线程控制部分131将变量“s”加1。然后,当表示执行控制的线程的线程索引的变量“s”已经变成s=N时,线程循环结束。
[0359] 在步骤S207中,线程控制部分131将在当前帧索引保持计数器151(参照图13)中保持的帧索引加1,并且结束线程控制处理。
[0360] 通过这种处理,线程控制部分131能够根据其状态控制所述多个线程中的全部。
[0361] 虽然上面已经描述重复线程循环启动的线程(launched thread)的数目N,但是,代替重复线程循环,可以执行与线程的数目N相对应的并行处理。
[0362] 接下来,参照图22中的流程图,将给出对等待状态处理的描述,该等待状态处理在图21中所示的流程图中的步骤S203中执行。
[0363] 该等待状态处理是这样的处理:该处理由线程控制部分131在与变量“s”相对应的线程的状态是上面参照图21描述的线程控制处理中的“等待”时执行。
[0364] 在步骤S211中,线程控制部分131将相应的线程132的计数器166(参照图14)加1。
[0365] 在步骤S212中,线程控制部分131确定相应的线程132的计数器166的值是否小于线程长度(tbread_len)。如果在步骤S212中确定计数器166的值小于线程长度,则等待状态处理结束,并且,该处理前进至图21中的步骤S206。
[0366] 如果在步骤S212中确定计数器166的值不小于线程长度,则在步骤S213中,线程控制部分131向相应的线程132发出用于使线程132的状态过渡到“累积”状态的状态过渡命令。
[0367] 也就是说,线程控制部分131发出用于使线程过渡到“累积”的状态过渡命令,在上面参照图16描述的状态过渡图中,该线程处于“等待”状态。
[0368] 在步骤S214中,线程控制部分131对相应的线程132的计数器166(参照图14)进行初始化(例如,将计数器166设置为0)。另外,线程控制部分131在观测信号开始/结束定时保持部分167(参照图14)中设置观测信号累积开始定时信息,即,在线程控制部分131的当前帧索引保持计数器151(参照图13)中保持的当前帧索引、或者等效的相对时刻信息等。然后,等待状态处理结束,并且,该处理前进至图21中的步骤S206。
[0369] 通过这种处理,线程控制部分131能够控制处于“等待”状态的线程,并且,基于线程的计数器166的值,使线程的状态过渡到“累积”。
[0370] 接下来,参照图23中的流程图,将给出对累积状态处理的描述,该累积状态处理在图21中所示的流程图中的步骤S204中执行。
[0371] 该累积状态处理是这样的处理:该处理由线程控制部分131在与变量“s”相对应的线程的状态是上面参照图21描述的线程控制处理中的“累积”时执行。
[0372] 在步骤S221中,线程控制部分131向相应的线程132提供对应于一帧的观测信号X(t)以便学习。该处理对应于从在图20中所示的线程控制部分向各个线程提供观测信号。
[0373] 在步骤S222中,线程控制部分131将相应的线程132的计数器166加1。
[0374] 在步骤S223中,线程控制部分131确定相应的线程132的计数器166的值是否小于块长度(block_len),换句话说,相应的线程的观测信号缓冲器161(参照图14)是否已满。如果在步骤S223中确定相应的线程132的计数器166的值小于块长度,换句话说,相应的线程的观测信号缓冲器161未满,则累积状态处理结束,并且该处理前进至图21中的步骤206。
[0375] 如果在步骤S223中确定计数器166的值不小于块长度,换句话说,相应的线程的观测信号缓冲器161已满,则在步骤S224中线程控制部分131向相应的线程132发出用于使线程132的状态过渡到“学习”状态的状态过渡命令。然后,累积状态处理结束,并且,该处理前进至图21中的步骤S206。
[0376] 也就是说,线程控制部分131发出用于使线程过渡到“学习”的状态过渡命令,在上面参照图16描述的状态过渡图中,该线程处于“累积”状态。
[0377] 通过这种处理,线程控制部分131能够向处于“累积”状态的线程提供观测信号以控制观测信号的累积,并且,基于线程的计数器166的值,使线程的状态从“累积”过渡到“学习”。
[0378] 接下来,参照图24中的流程图,将给出对学习状态处理的描述,该学习状态处理在图21中所示的流程图中的步骤S205中执行。
[0379] 该学习状态处理是这样的处理:该处理由线程控制部分131在与变量“s”相对应的线程的状态是上面参照图21描述的线程控制处理中的“学习”时执行。
[0380] 在步骤S231中,线程控制部分131确定相应的线程132的学习结束标志168(参照图14)是否为ON。如果在步骤S231中确定学习结束标志是ON,则该处理前进至稍后描述的步骤S237。
[0381] 如果在步骤S231中确定学习结束标志不是ON,即,正在相应的线程中执行学习处理,则该处理前进至步骤S232,在步骤S232中执行比较时间的处理。“比较时间”是指这样的处理:将在学习线程132内记录的观测信号开始时刻167(参照图14)与对应于在线程控制部分131中存储的当前分离矩阵的累积开始时刻154(参照图13)进行比较。如果观测信号开始时刻167(参照图14)比对应于在线程控制部分131中存储的当前分离矩阵的累积开始时刻154早,则跳过后续的处理。
[0382] 另一方面,如果记录在线程132中的观测信号开始时刻167(参照图14)比对应于在线程控制部分131中存储的当前分离矩阵的累积开始时刻154晚或与其相同,则该处理前进至步骤S233。在步骤S233中,线程控制部分131将相应的线程132的计数器166加1。
[0383] 接下来,在步骤S234中,线程控制部分131确定相应的线程132的计数器166的值是否小于线程长度(thread_len)。如果在步骤S234中确定计数器166的值小于线程长度,则学习状态处理结束,并且,该处理前进至图21中的步骤S206。
[0384] 如果在步骤S234中确定计数器166的值不小于线程长度,则在步骤S235中,线程控制部分131从计数器166的值减去预定的值。然后,学习状态处理结束,并且,该处理前进至图21中的步骤S206。
[0385] 在学习期间计数器的值达到线程长度的情况对应于下述情况:其中,学习持续如此长的时间,以至于不存在“等待”状态的期间。在这种情况下,由于仍然继续学习,并且正使用观测信号缓冲器161,所以不可能开始下一累积。因此,在学习结束之前,线程控制部分131推迟下一累积的开始,即,发出用于使状态过渡到“累积”状态的状态过渡命令。由此,线程控制部分131从计数器166的值减去预定的值。虽然要被减去的值可以是例如1,但是,该值可以大于1,例如,诸如线程长度的10%的值。
[0386] 当推迟到“累积”状态的过渡时,累积开始时刻的间隔在线程之间变得无规律,并且,在最差的情况中,甚至可能的是,在多个线程之间累积基本上相同的区间的观测信号。当如此发生时,不仅几个线程变得无意义,而且,例如,根据由CPU执行的OS的多线程实现,有可能的是:当在一个CPU上同时运行多个学习处理时,学习时间进一步增加,并且,间隔变得进一步无规律。
[0387] 为了避免这种情形,可以调整其它线程中的等待时间,使得累积开始定时的间隔再次变得规律。在步骤S241中执行该处理。稍后将描述这个等待时间调整处理的细节。
[0388] 将给出对在下述情况中的处理的描述:其中,在步骤S231中,学习结束标志被确定为ON。每当学习线程内的学习循环结束时,这个处理被执行一次。如果在步骤S231中确定学习结束标志是ON,并且学习处理在相应的线程中已经结束,则在步骤S237中,线程控制部分131将相应的线程132的学习结束标志168设置为OFF。这个处理表示用于防止该分支被连续地执行的操作。
[0389] 其后,线程控制部分131检查线程的中断标志170(参照图14)是ON还是OFF。如果中断标志170是ON,线程控制部分131在步骤S239中执行更新分离矩阵等的处理,并且在步骤S241中执行等待时间设置处理。另一方面,当线程的中断标志170(参照图14)是OFF时,省略步骤S239中的更新分离矩阵等的处理,并且在步骤S241中执行等待时间设置处理。稍后将描述步骤S239中的更新分离矩阵等的处理和步骤S241中的等待时间设置处理的细节。
[0390] 通过这种处理,线程控制部分131可以通过参考相应的线程的学习结束标志168来确定在处于“学习”状态中的线程中是否已经结束学习。如果学习已经结束,则线程控制部分131更新分离矩阵W并设置等待时间,还使线程的状态从“学习”过渡到“等待”或“累积”。
[0391] 接下来,参照图25中的流程图,将给出对更新分离矩阵等的处理的描述,该处理在图24中所示的流程图中的步骤S239中执行。这是用于反映功率比、全死角空间滤波器和通过在其它模块中学习求解的分离矩阵的处理。
[0392] 在步骤S251中,线程控制部分131通过将观测信号的开始定时和累积开始定时相互比较来确定观测信号的开始定时是否比累积开始定时早。观测信号的开始定时被保持在线程的观测信号开始/结束定时保持部分167(参照图14)中。与当前分离矩阵相对应的累积开始定时被保持在观测信号累积定时信息保持部分154(参照图13)中。
[0393] 也就是说,如图5所示,线程1中的学习和线程2中的学习在时间上部分重叠。在图5中,学习区间57比学习区间58早结束。然而,例如,根据每一个学习所需的时间,可能会发生学习区间58比学习区间57早结束的情况。
[0394] 在这一方面,当没有执行步骤S251中的确定,并且较晚结束学习的分离矩阵被视为最新的分离矩阵时,通过从线程1得到的分离矩阵W1覆写(overwrite)从线程2得到的分离矩阵W2,该分离矩阵W1是通过用在较早定时获取的观测信号学习获得的。因此,为了确保用在较晚定时获取的观测信号获得的分离矩阵被视为最新的分离矩阵,将在观测信号开始/结束定时保持部分167中保持的观测信号的开始定时与对应于在观测信号累积定时信息保持部分154中保持的当前分离矩阵的累积开始定时比较。
[0395] 在步骤S251中,可以确定,观测信号的开始定时比对应于当前分离矩阵的累积开始定时早。换句话说,可以确定,基于在比对应于当前正在观测信号累积定时信息保持部分154中保持的分离矩阵W的那些早的定时观测到的信号,已经学习了作为在该线程中学习的结果而获得的分离矩阵W。在这种情况下,不使用作为在该线程中学习的结果获得的分离矩阵W,由此更新分离矩阵等的处理结束。
[0396] 在步骤S251中,可以确定,观测信号的开始定时不比对应于当前分离矩阵的累积开始定时早。也就是说,可以确定,基于在比对应于当前正在观测信号累积定时信息保持部分154中保持的分离矩阵W的那些晚的定时观测到的信号,已经学习了作为在该线程中学习的结果获得的分离矩阵W。在这种情况下,在步骤S252中,线程控制部分131获取通过在相应的线程中的学习获得的分离矩阵W,并且将分离矩阵W提供给分离矩阵保持部分133(参照图12)并设置分离矩阵W。以与上述的方式相同的方式,将最新的全死角空间滤波器设置在全死角空间滤波器保持部分134中,并且,将分离矩阵应用结果的功率比设置在功率比保持部分135中。
[0397] 在步骤S253中,线程控制部分131设置在学习初始值保持部分152中保持的每一个线程中的学习的初始值。
[0398] 具体地说,作为学习初始值,线程控制部分131可以设置通过相应的线程中的学习获得的分离矩阵W,或者,可以设置与分离矩阵W不同的值,其是使用通过相应的线程中的学习获得的分离矩阵W计算出的。例如,将在应用重新标度之后获得的值代入分离矩阵保持部分133(参照图12),并且,将在应用重新标度之前获得的值代入学习初始值保持部分152。将在后面的变型例的部分中描述其它例子。应该注意,作为学习的预处理,还可以执行初始学习值的计算,而不是在“更新分离矩阵的处理”中执行计算。将参考稍后描述的变型例给出细节。
[0399] 在步骤S254中,线程控制部分131在观测信号累积定时信息保持部分154(参照图13)中设置保持在观测信号开始/结束定时保持部分167(参照图14)中的定时信息,并且结束更新分离矩阵等的处理。通过这种处理,更新分离矩阵等的处理结束。
[0400] 通过在步骤S254中的处理,提供关于以下情况的指示:从什么时间区间中的观测信号学习了正在被使用的分离矩阵W(即,保持在分离矩阵保持部分133中的分离矩阵W)。
[0401] 接下来,参照图26中的流程图,将给出对等待时间设置处理的描述,该等待时间设置处理在图24中所示的流程图中的步骤S241中执行。
[0402] 在步骤S281中,线程控制部分131计算剩余的等待时间。
[0403] 具体地说,假设rest表示剩余的等待时间(帧的数目),Ct表示在计划累积开始定时指定信息保持部分153(参照图13)中保持的计划累积开始定时(帧索引或相应的相对时刻),Ft表示在当前帧索引保持计数器151中保持的当前帧索引,block_shift表示块移位宽度。然后,线程控制部分131将剩余的等待时间rest计算为rest=Ct+block_shift-Ft。
[0404] 也就是说,由于Ct+block_shift是指计划的下一累积的开始时间,所以,通过从Ct+block_shift减去Ft来求解“在计划的下一累积的开始时间之前的剩余时间”。
[0405] 在步骤S282中,线程控制部分131确定计算的剩余等待时间rest是否为正值。如果在步骤S282中确定计算的剩余等待时间rest不是正值,即,计算的值是零或负值,则该处理前进至稍后描述的步骤S286。
[0406] 如果在步骤S282中确定计算的剩余等待时间rest是正值,则在步骤S283中,线程控制部分131向相应的线程发出用于使线程的状态过渡到“等待”状态的状态过渡命令。
[0407] 在步骤S284中,线程控制部分131将相应的线程的计数器166(参照图14)的值设置为thread_len-rest。因此,继续“等待”状态,直到计数器的值达到thread_len为止。
[0408] 在步骤S285中,线程控制部分131将block_shift的值与在计划累积开始定时指定信息保持部分153(参照图13)中保持的值Ct相加。也就是说,线程控制部分131在计划累积开始定时指定信息保持部分153中将Ct+block_shift的值设置为下一累积开始定时。然后,剩余等待时间计算处理结束。
[0409] 如果在步骤S282中确定计算的剩余等待时间rest不是正值,即,计算的值是零或负值,则这意味着,即使计划累积开始定时已过去,也还没有开始累积。因此,有必要立即开始累积。因此,在步骤S286中,线程控制部分131向相应的线程发出用于使线程的状态过渡到“累积”状态的状态过渡命令。
[0410] 在步骤S287中,线程控制部分131对计数器的值进行初始化(例如,将计数器设置为0)。
[0411] 在步骤S288中,线程控制部分131在计划累积开始定时指定信息保持部分153中设置下一累积开始定时,即,表示当前帧索引的Ft,并且,线程控制部分131结束剩余等待时间计算处理。
[0412] 通过这种处理,根据在每一个线程中的“学习状态”所需的时间,可以设置每一个线程要置于“等待”状态的时间。
[0413] 3-4.分离处理(S106)
[0414] 接下来,参照图27中所示的流程图,将给出对分离处理的细节的描述,该分离处理作为图17中所示流程图的步骤S106中的处理。
[0415] 图27的流程图中所示的步骤S301值S310是循环处理,对于每一个频率点执行该循环内的处理。应该注意,这些步骤可以作为并行处理而不是循环处理被执行。
[0416] 在步骤S302中,通过稍后描述的重新标度,预先计算所需的协方差矩阵。这是与图12中所示的协方差矩阵计算部分125相对应的处理。作为重新标度处理,存在步骤S303和步骤S305,步骤S303是关于分离矩阵的处理,步骤S305是关于全死角空间滤波器的处理。然而,所有的这些都可以从观测信号的协方差矩阵计算出。由此,在步骤S302中,基于下面的表达式[4.3]计算观测信号的协方差矩阵:
[0417] 数式4
[0418] R(ω)=tdiag(t)-1 ......[4.1][0419] =∑XX(ω)W(ω)Hdiag(W(ω)∑XX(ω)W(ω)H)-1 ......[4.2][0420] ∑XX(ω)=t ......[4.3]
[0421]
[0422]
[0423] W′(ω)=diag(Rl1(ω),…,Rl1(ω))W(ω) ......[4.6]
[0424] Y′(ω,t)=W′(ω)X(ω,t) ......[4.7]
[0425]
[0426] Y′(ω,t)←diag(μ1(ω),…,μn(ω))Y′(ω,t) ......[4.9][0427] 然而,执行平均运算<·>t的区间是包含图8中所示的当前时刻的块87,并且包含当前帧。由此,假设当前帧索引是t,包含当前时刻的块区间87的长度(帧的数目)是L,通过对每一帧执行表达式[4.4]的运算,更新观测信号的协方差矩阵。
[0428] 接下来,在步骤S303中,执行对分离矩阵的重新标度。该重新标度与上面在“1.本发明的实施例的配置和处理的简述”的部分中描述的“频繁的重新标度”相同。重新标度处理的目的是为了减少在输出突发声音时产生的失真。重新标度的基本构思是这样的:将分离结果投影到具体的传声器上。这里,“投影到具体的传声器”是指,例如,在图1中,在维持标度的情况下,将通过第一传声器观测的信号分解为从各个声源得到的分量。
[0429] 通过使用作为从观测信号切出的数据单位的帧中的包含当前观测信号的帧,执行重新标度处理。如上所述,分离处理单元123的协方差矩阵计算部分125输入通过傅里叶变换部分124产生的观测信号的傅里叶变换数据,从而针对每一帧计算观测信号的协方差矩阵。在分离矩阵应用部分125和全死角空间滤波部分127中的每一个中,使用这里获得的协方差矩阵针对每一帧执行重新标度。
[0430] 对于重新标度处理,首先,基于上述的表达式[4.1]和[4.2],求解重新标度矩阵R(ω)。接下来,求解对角矩阵(表达式[4.6]的右边的第一项),在该对角矩阵中,重新标度矩阵的第1行(“l”(L的小写字母)是作为投影目标的传声器的索引)被形成为其元素。在重新标度之前将对角矩阵与分离矩阵W(ω)相乘,从而获得重新标度的分离矩阵W′(ω)(表达式[4.6])。
[0431] 在步骤S304中,将重新标度的分离矩阵W′(ω)与观测信号X(ω,t)相乘(表达式[4.7]),从而获得分离矩阵应用结果Y′(ω,t)。
[0432] Y′(ω,t)=W′(ω)×X(ω,t)
[0433] 这个处理对应于对观测信号X(ω,t)使用重新标度的分离矩阵W′(ω)的线性滤波处理。
[0434] 在图8所示的处理例子中,在步骤S303和S304中的这些处理对应于在当前时刻获取观测信号X(t)82和应用分离矩阵83的处理。
[0435] 图8所示的分离矩阵83是从学习数据块81获得的分离矩阵。如上所述,通过使用学习数据块81的学习数据已经执行现有技术的重新标度。与此不同的是,在本发明的实施例的处理中,在步骤S303中,设置具有规定长度的其末端是当前时刻的块,即,图8中所示的包含当前时刻的块87,从而通过使用包含当前时刻的块87的区间中的观测信号来执行重新标度。通过这种处理,还可以在早期阶段调整突发声音的标度(=减少其失真)。
[0436] 此外,在必要的时候执行基于表达式[4.8]和[4.9]的重新调整。这是如下的处理:即,检查重新标度的分离矩阵应用结果Y′(ω,t)的元素之和是否没有超过作为投影目标的对应于传声器的观测信号Xl(ω,t)的绝对值,并且,如果该和超过绝对值,则减少Y′(ω,t)的绝对值。通过表达式[4.1]获得的重新标度因子往往会是大的值,只要该声音甚至紧接在播放和停止大的声音之后也仍保留在该区间(图8中的87)中即可。结果,即使当当前观测信号源自于近无声声音(背景声音)时,有时候,也可以将背景声音提高大的标度。然而,通过执行基于表达式[4.8]和[4.9]的重新调整,可以防止标度增大。
[0437] 接下来,在步骤S305中,对全死角空间滤波器执行重新标度。重新标度的目的是为了通过下述方式经由稍后描述的频率滤波消除掉突发声音:调整包含在全死角空间滤波器的应用结果中的突发声音和包含在分离矩阵的应用结果中的突发声音之间的标度。
[0438] 图12所示的分离处理单元123逐个帧地执行上述的频繁的重新标度。也就是说,在步骤S303和S305中产生分离矩阵和全死角空间滤波器,该分离矩阵经过作为标度调整的重新标度处理,该标度调整使用作为从观测信号切出的数据单位的帧之中的包含当前观测信号的帧,全死角空间滤波器以相同的方式经过重新标度处理。在步骤S304中,执行使用重新标度的分离矩阵的处理,在步骤S306中,执行使用重新标度的全死角空间滤波器的处理。
[0439] 例如,在图8中所示的配置中,全死角空间滤波器84是这样的滤波器(向量或矩阵):该滤波器形成存在于学习数据块81的区间中的在所有的播放声源方向上的死角波束,并且具有仅仅使突发声音通过的功能,该突发声音即为学习数据块81中的还没有播放声音的方向上的声音。原因在于通过由滤波器形成的死角去除了学习数据块81中的已经播放的声音,只要该声音保持播放而没有改变其位置即可,然而,在突发声音的方向上没有形成死角,由此传送突发声音。
[0440] 在步骤S305中,在对全死角空间滤波器进行重新标度的处理中,通过下面的表达式[7.1]和[7.2](表达式[7.1]中的Y′(ω,t)是在应用表达式[4.9]的重新调整之前的值)来求解重新标度矩阵Q(ω)。
[0441] 数式5
[0442]
[0443]
[0444] B′(ω)=Q(ω)B(ω) ......[7.3]
[0445] Z′(ω,t)=diag(μ1(ω),…,μn(ω))B′(ω)X(ω,t) ......[7.4][0446] 然而,表达式[7.2]中的B(ω)是重新标度之前的全死角空间滤波器,并且是从n个输入产生一个输出的滤波器(稍后将描述计算B(ω)的方法)。此外,表达式[7.1]中的Z(ω,t)是在重新标度之前的全死角空间滤波结果,并且通过下面的表达式[5.5]来计算出。
[0447] 数式6
[0448]
[0449] e1=[0,…,0,1,0,…,0](only the l-th element is 1) ......[5.2][0450]
[0451]
[0452] Z(ω,t)=B(ω)X(ω,t) ......[5.5]
[0453] 这里,Z(ω,t)不是向量,而是标量。此外,Q(ω)是由n个元素形成的行向量(水平方向上长的向量)。通过将Q(ω)与B(ω)相乘(表达式[7.3]),获得重新标度的全死角空间滤波器B′(ω)。B′(ω)是n行和n列的矩阵。
[0454] 在步骤S306中,通过将重新标度的全死角空间滤波器B′(ω)与观测信号相乘(表达式[7.4]),获得重新标度的全死角空间滤波结果Z′(ω,t)。然而,通过表达式[4.8]获得表达式[7.4]中的μk(ω),并且,当重新调整Y′(ω,t)时,表达式[7.4]中的μk(ω)也用于重新调整Z′(ω,t)。
[0455] 全死角空间滤波结果Z′(ω,t)是由n个元素形成的列向量(垂直方向上长的向量),并且,其第k个元素是对Y′k(ω,t)调整了标度的全死角空间滤波结果。
[0456] 参照图8中的处理描述的步骤S305和S306对应于下述处理:在当前时刻获取观测信号X(t)82;产生重新标度的全死角空间滤波器B′(ω)84;以及将观测信号与重新标度的全死角空间滤波器B′(ω)(表达式[7.4])相乘,从而获得重新标度的全死角空间滤波结果Z′(ω,t)。
[0457] 下面的步骤S307至S310是一个循环,意味着针对每一个信道执行步骤S308中的频率滤波。应该注意,这些步骤可以作为并行处理而不是循环执行。
[0458] 在步骤S308中的频率滤波是针对每一个频率将不同的因子与重新标度的分离矩阵应用结果Y′k(ω,t)(向量Y′(ω,t)的第k个元素)相乘的处理。然而,在本发明的实施例中,频率滤波用于从重新标度的分离矩阵应用结果Y′k(ω,t)去除重新标度的全死角空间滤波结果(基本上与突发声音相同)。
[0459] 作为频率滤波的例子,将描述以下三点:
[0460] (1)复数减法
[0461] (2)谱减法
[0462] (3)维纳滤波器
[0463] (1)首先,将描述基于复数减法的频率滤波。这个处理是如下的滤波处理:通过从通过应用分离矩阵产生的分离信号减去用全死角空间滤波器滤波的信号的处理,去除分离信号中包含的与用全死角空间滤波器滤波的信号相对应的信号分量。
[0464] 下面的表达式[8.1]是表示复数减法的表达式。
[0465] 数式7
[0466] Uk(ω,t)=Yk′(ω,t)-αkZk′(ω,t) ......[8.1]
[0467]
[0468] Gk(ω,t) = max{|Yk ′ (ω,t)|-|αkZk ′ (ω,t)|,|βYk ′ (ω,t)|} ......[8.3]
[0469] Gk(ω,t)2 = max{|Yk ′ (ω,t)|2-|αkZk ′ (ω,t)|2,|βYk ′ (ω,t)|2} ......[8.4]
[0470] αk=αf(rk) ......[8.5]
[0471]
[0472]
[0473]
[0474]
[0475]
[0476]
[0477]
[0478]
[0479]
[0480] 在上述的表达式[8.1]中,因子αk是0或更大的实数。通过使用该因子,实现上面在“1.本发明的实施例的配置和处理的简述”的部分中描述的“(3)对各个信道的确定”。
[0481] 也就是说,为了根据突发声音的特性执行不同的处理,确定ICA的各个输出信道是否输出对应于声源的信号,并且,根据其结果执行所述处理之一。
[0482] i)如果确定信号对应于声源,则应用“频繁的重新标度”和“全死角空间滤波器和频率滤波”二者。
[0483] 结果,从所述信道去除了突发声音。
[0484] ii)如果确定信号不对应于声源,则仅仅应用“频繁的重新标度”。结果,从所述信道输出突发声音。
[0485] 这被称为“对各个信道的确定”。
[0486] 如上所述,根据在产生突发声音之前各个信道是否输出对应于声源的信号,调整突发声音中的减少量。
[0487] 存在确定每一个信道的输出是否对应于声源的各种方法。然而,在下面的描述中,采用使用分离矩阵应用结果的功率的方法。也就是说,使用下面的性质:对应于声源的信道具有相对较大的功率;以及不对应于声源的信道具有相对较小的功率。
[0488] 通过表达式[8.5]来计算由上述表达式[8.1]表示的因子αk。在该表达式中,rk是信道k的功率比,α是αk的最大值。功率比是每一个信道(k)的功率与所有的观测声音的总功率或最大声音的功率之比。通过应用表达式[8.6]或[8.7]来计算功率比rk,其中,信道k的功率(音量)由Vk表示。稍后将描述表达式的细节。
[0489] f()被定义为将等于或大于0且等于或小于1的值设置为返回值的函数,即,由表达式[8.10]和图28所示的曲线图表示的函数。函数的目的是为了防止由功率比rk快速地切换减法的存在/不存在(相反,当rmin=rmax时,在功率比超过阈值的点处,快速地切换减法的存在/不存在)。
[0490] 表达式[8.10]中的fmin是0或小的正值。稍后将描述把fmin设置为除0以外的值的效果。
[0491] 通过图12中所示的频率滤波部分128执行步骤S308中的频率滤波。频率滤波部分128执行下述处理:根据分离信号的信道,改变从分离信号去除与用全死角空间滤波器滤波的信号相对应的分量的水平。具体地说,根据分离信号的信道的功率比,改变去除水平。
[0492] 通过表达式[8.6]至[8.9]计算功率比rk,但是在与用于学习分离矩阵的观测信号相同的区间中执行包含在表达式[8.8]和[8.9]中的平均运算<·>t。也就是说,该区间不是图8中所示的处理例子中的包含当前时刻的块87的区间,而是学习数据块81的区间。在这种表达式中,不使用最新的帧数据,不必针对每一帧计算αk和rk,并且,优选的是,在分离矩阵的学习完成的定时执行计算。因此,参照图32的流程图,将在后面的部分中描述计算rk的详细方法。图32示出在图31所示的分离矩阵学习的流程图中的步骤S420的后处理的细节。
[0493] 通过复数减法(表达式[8.1]),还可以去除突发声音。然而,由于这是一种线性滤波,所以难以解决在“现有技术中的问题”中描述的“跟踪滞后和残余声音的折衷”的问题。另一方面,当使用下面描述的非线性频率滤波时,可以解决该折衷问题。
[0494] 上述的表达式[8.2]是频率滤波的一般表达式。也就是说,将通过用绝对值对重新标度的分离矩阵应用结果Y′k(ω,t)进行归一化获得的项(即Y′k(ω,t)/|Y′k(ω,t)|)与增益Gk(ω,t)相乘。根据频率滤波,存在计算增益的各种方法,但是,在下述的谱减算方法(谱减法)中,从谱振幅之差计算增益。
[0495] (2)将描述基于谱减法的频率滤波。
[0496] 基于谱减法的频率滤波处理是这样的滤波处理:基于将用全死角空间滤波器滤波的信号设置为噪声分量的谱减法,通过频率滤波处理,去除在通过应用分离矩阵产生的分离信号中包含的对应于用全死角空间滤波器滤波的所述信号的信号分量。
[0497] 谱减算方法中的表达式正好与上述的表达式[8.3]和[8.4]一样。表达式[8.3]自身是振幅的减法,并且称为幅值谱减法。表达式[8.4]是振幅平方的减法,并且称为功率谱减法。在这两个表达式中,max{A,B}表示将这两个参数中的较大参数设置为返回值的运算。αk是通常称为过度减法(over-subtraction)因子的项。然而,在本发明的实施例中,通过计算表达式[8.5],这一项具有根据“是否输出对应于声源的信号”调整减法量的功能。β称为底限因子(flooring factor),并且是接近于0的小值(例如,0.01)。max{}的第二项防止减法之后获得的增益为0或负值。
[0498] 与复数减法一样,基于表达式[8.5]至[8.10]来执行αk的计算。在表达式[8.10]中,在fmin被设置为小的正值而不是0的情况下,即使当rk<r_min时,频率滤波也具有小的作用,由此在某一种程度上可以去除“残余声音”。
[0499] (3)将描述基于维纳滤波器的频率滤波。
[0500] 维纳滤波器是用于基于事先的SNR计算因子Gk(ω,t)的滤波器,该SNR是目标声音和干扰声音之间的功率比。当给定事先的SNR时,公知的是,就在去除干扰声音的性能方面的平方误差最小化而言,通过维纳滤波器求解的因子是最佳的。关于维纳滤波器的细节,例如,参考如下:
[0501] 日本专利申请No.2007-533331[H18.8.31]
[0502] PCT申请No.WO07/026827[H21.3.12]
[0503] 发明名称:Post Filter for Microphone Array(用于传声器阵列的后滤波器)[0504] 申请人:Japan Advanced Institute of Science and Technology,Toyota Motor Corp.(丰田汽车公司的日本高等科技研究所)
[0505] 发明人:Masato AKAGI、Junfeng LI、Masaaki UECHI和Kazuya SASAKI[0506] 基于维纳滤波器,为了计算该因子,事先的SNR的值是必需的,但是,通常不给出该值。这里,可以使用事后的SNR和基于一帧的事先的SNR代替事先的SNR,所述事后的SNR是观测信号和干扰声音之间的功率比,在所述基于一帧的事先的SNR中,前一帧的处理结果被视为目标声音。因此,提出了通过使用上述的SNR针对每一帧估计事先的SNR的方法,这些方法称为决策导向(Decision Directed)(DD)方法。将参考表达式[8.12]至[8.14](在这些表达式中,上标[post]和[prior]分别表示“事后”和“事先”)描述通过使用DD方法去除突发声音的方法。
[0507] 表达式[8.12]是求解对应于一帧的事后的SNR的表达式。在该表达式中,αk从表达式[8.5]等计算出。然而,在维纳滤波器中,不必执行过度减法,由此可以这样设置:α=1。可替换地,通过设置α<1,还可以减少去除突发声音的效果。接下来,基于表达式[8.13],计算事先的SNR的估计值。在该表达式中,K是遗忘因子,并且使用小于1且接近于1的值。
[0508] 根据事先的SNR的估计值,通过使用表达式[8.14]计算频率滤波的因子Gk(ω,t)。
[0509] 作为频率滤波方法,在上文中,描述:
[0510] (1)复数减法;
[0511] (2)谱减法;以及
[0512] (3)维纳滤波器,
[0513] 但是,还可以采用除这些方法以外的下述方法:
[0514] (4)最小均方误差(MMSE)短时谱振幅(STSA)或者MMSE对数谱振幅(LSA)。
[0515] 关于其细节,请参考如下:
[0516] *“MMSE STSA with Noise Estimation Based on Independent Component Analysis(基于独立分量分析的噪声估计的MMSESTSA)”
[0517] Ryo OKAMOTO、Yu TAKAHASHI、Hiroshi SARUWATARI和Kiyohiro SHIKANO,[0518] Collection of Lecture Notes,Acoustical Society of Japan,2-9-6,pp.663--666,March 2009(讲义集,日本声学会,2-9-6,第663-666页,2009年3月)。
[0519] *日本专利申请No.4172530,噪声抑制方法、设备和计算机程序
[0520] *“Diffuse Noise Suppression by Crystal-Array-Based Post-Filter Design(利用基于晶体阵列的后滤波器设计的扩散噪声抑制)”
[0521] Nobutaka ITO、Nobutaka ONO和Shigeki SAGAYAMA
[0522] 通过根据图27中所示的流程图的分离处理,以比现有技术的分离结果高的精度产生U1(ω,t)至Un(ω,t),作为分离结果。
[0523] 4.线程计算部分中的学习线程的处理
[0524] 并行地操作图12所示的线程控制部分131和利用各个学习线程132-1至132-N的线程计算部分132的处理。因此,基于与线程控制部分不同的流程,运行学习线程。下面将参照图29中的流程图描述线程计算部分中的学习线程的处理。
[0525] 线程计算部分132在启动之后在步骤S391中进行初始化。启动定时是图17的整个流程的步骤S101中的初始化处理的期间,并且,是用于在图19中所示的流程的步骤S152中确保学习线程的处理的定时。
[0526] 在线程计算部分132中,在启动之后,在步骤S391中对学习线程进行初始化。然后,学习线程等待(这个“等待”不同于表示学习线程状态之一的“等待”),直到发生一事件(块处理)为止。这一事件在已经执行下述操作中的任何操作时发生。
[0527] 已经发出状态过渡命令。
[0528] 已经传递帧数据。
[0529] 已经发出结束命令。
[0530] 后续的处理根据哪一事件已经发生而分支(步骤S392)。也就是说,根据从线程控制部分131输入的事件,后续处理分支。
[0531] 如果在步骤S393中确定已经输入状态过渡命令,则在步骤S394中执行相应的命令处理。
[0532] 如果在步骤S393中确定已经接收到的帧数据传递事件的输入,则在步骤S395中,线程计算部分132获取帧数据。接下来,在步骤S396中,线程计算部分132在观测信号缓冲器161(参照图14)中累积获取的帧数据,返回到步骤S392,并且等待下一事件。
[0533] 观测信号缓冲器161(参照图14)具有阵列或堆结构,并且,观测信号要存储在与计数器相同的索引的位置中。
[0534] 如果在步骤S393中确定已经输入结束命令,则在步骤S397中,例如,线程计算部分132执行诸如释放存储器的合适的预终止处理,并且,这一处理结束。
[0535] 通过这种处理,基于线程控制部分131的控制,在每一线程中执行处理。
[0536] 接下来,参照图30的流程图,将给出对下述的命令处理的描述:在图29中所示的流程图中的步骤S394中执行命令处理。
[0537] 在步骤S401中,线程计算部分132根据提供的状态过渡命令分支后续的处理。在以下的描述中,用于“过渡到OO状态”的命令将被表达为“状态过渡命令‘OO’”。
[0538] 如果在步骤S401中提供的状态过渡命令是指示过渡到“等待”状态的“状态过渡命令‘等待’”,则在步骤S402中,线程计算部分132将表示当前状态是“等待”的信息存储到状态存储部分165(参照图14)中,即,过渡到状态“等待”,然后结束命令处理。
[0539] 如果在步骤S401中提供的状态过渡命令是指示过渡到“累积”状态的“状态过渡命令‘累积’”,则在步骤S403中,线程计算部分132将表示当前状态是“累积”的信息存储到状态存储部分165中,即,过渡到状态“累积”,然后结束命令处理。
[0540] 如果在步骤S401中提供的状态过渡命令是指示过渡到“学习”状态的“状态过渡命令‘学习’”,则在步骤S404中,线程计算部分132将表示当前状态是“学习”的信息存储到状态存储部分165中,即,过渡到状态“学习”。
[0541] 此外,在步骤S405中,线程计算部分132执行分离矩阵学习处理。稍后将给出这一处理的细节。
[0542] 在步骤S406中,为了向线程控制部分131通知学习结束,线程计算部分132将学习结束标志168设置为ON,并且结束这一处理。通过设置该标志,线程计算部分132向线程控制部分131通知刚刚已经结束学习。
[0543] 通过这种处理,使每一个线程的状态基于从线程控制部分131提供的状态过渡命令过渡。
[0544] 接下来,参照图31的流程图,将给出对分离矩阵学习处理的例子的描述,该例子是在图30所示的流程图的步骤S405中执行的处理的例子。这是按批次求解分离矩阵的处理,并且可适用于以批次处理的形式的任何算法。然而,利用相对无置换(relatively permutation-free)的方法是必要的。下面将给出对下述例子的描述:该例子利用在由本申请人在先提交的日本未审专利申请公开No.2006-238409“Audio Signal Separating Apparatus/Noise Removal Apparatus and Method(音频信号分离设备/噪声去除设备和方法)”中公开的配置。
[0545] 在步骤S411中,在必要的时候,线程计算部分132的学习计算部分163(参照图14)对在观测信号缓冲器161中累积的观测信号执行预处理。
[0546] 具体地说,在开始学习循环之前,学习计算部分163对在观测信号缓冲器161中累积的观测信号执行诸如归一化或去相关(或预白化)之类的处理。例如,当执行归一化时,学习计算部分163从一块内的帧求解观测信号的标准偏差,并且,利用通过由S表示的标准偏差的倒数形成的对角矩阵,通过下面的表达式[9.1]计算X′=SX。这里,X是从这一块内的所有帧的观测信号和由图8的学习数据块81表示的区间获取的矩阵。
[0547] 数式8
[0548] X′(ω,t)=S(ω)X(ω,t) ......[9.1]
[0549] Y(ω,t)=W(ω)X′(ω,t) ......[9.2]
[0550] W(ω)←R(ω)W(ω) ......[9.3]
[0551] W(ω)←R(ω)W(ω)S(ω) ......[9.4]
[0552]
[0553] R(ω)=diag(λ1(ω),…,λn(ω)) ......[9.6]H
[0554] ∑XX(ω)=t ......[9.7]H
[0555] ∑XX(ω)=[p1,…,pn]diag(λ1,…,λn)[p1,…,pn] ......[9.8]-1/2 H
[0556] P(ω)=diag(λ1,…,λn) [p1,…,pn] ......[9.9][0557] X′(ω,t)=P(ω)X(ω,t) ......[9.10]H
[0558] t=I ......[9.11]
[0559] 同时,去相关是将协方差矩阵变换为单位矩阵的变换。虽然存在几种去相关的方法,但是,这里将给出对使用协方差矩阵的特征向量和特征值的方法的描述。
[0560] 根据累积的观测信号(例如,图8中的学习数据块81),基于表达式[9.7],针对每一个频率点,计算协方差矩阵∑XX(ω)。接下来,当对该矩阵进行特征值展开时,通过使用特征值λ1至λn和特征向量p1至pn,可以如表达式[9.8]所表示的那样对∑XX(ω)进行分解。这里,特征向量与单位向量正交。从特征值和特征向量产生由表达式[9.9]表示的矩阵P(ω),然后,作为去相关矩阵,形成P(ω)。
[0561] 也就是说,当X′(ω,t)表示为将P(ω)与观测信号X(ω,t)相乘的一项(表达式[9.10])时,X′(ω,t)的协方差矩阵满足表达式[9.11]的关系。
[0562] 通过执行去相关作为预处理,可以减少学习中其收敛之前的循环的数目。此外,在本发明的实施例中,可以从特征向量产生全死角空间滤波器(稍后将描述其细节)。
[0563] 在下述表达式中出现的观测信号X还可以表达为已经执行预处理的观测信号X′。
[0564] 在步骤S412中,学习计算部分163从线程控制部分131获取在线程控制部分131的学习初始值保持部分152中保持的学习初始值W,作为分离矩阵的初始值。
[0565] 从步骤S413至S419的处理表示学习循环,重复这些处理,直到W收敛为止,或者,直到中断标志变成ON为止。中断标志是这样的标志:在上述的图24的学习状态处理的流程的步骤S236中,该标志设置为ON。当较晚开始的学习比较早开始的学习早结束时,中断标志变成ON。如果在步骤S413中确定中断标志为ON,则处理结束。
[0566] 如果在步骤S413中确定中断标志为OFF,则该处理前进至步骤S414。在步骤S414中,学习计算部分163确定分离矩阵W的值是否已经收敛。通过使用例如矩阵范数来确定分离矩阵W的值是否已经收敛。计算作为分离矩阵W的范数(所有的矩阵元素的平方和)的||W||和作为ΔW的范数||ΔW||,当这两个范数之比||ΔW||/||W||小于预定的值(例如,1/1000)时,确定W已经收敛。可替换地,可以简单地基于是否已经运行预定次数(例如,50次)的循环来进行确定。
[0567] 如果在步骤S414中确定分离矩阵W的值已经收敛,则该处理前进至稍后描述的步骤S420,并且,处理结束,在步骤S420中执行后处理。也就是说,在分离矩阵W收敛之前执行学习处理循环。
[0568] 如果在步骤S414中确定分离矩阵W的值还没有收敛(或者,在执行循环的次数还没有达到预定的值时),该处理进入步骤S415至S419中的学习循环中。作为针对所有的频率点迭代上述的表达式[3.1]至[3.3]的处理,执行学习。也就是说,为了求解分离矩阵W,在分离矩阵W收敛(或者达到预定次数)之前,对表达式[3.1]至[3.3]进行迭代。这种迭代称为“学习”。分离结果Y(t)由表达式[3.4]表示。
[0569] 步骤S416对应于表达式[3.1]。
[0570] 步骤S417对应于表达式[3.2]。
[0571] 步骤S418对应于表达式[3.3]。
[0572] 由于要针对每一个频率点计算表达式[3.1]至[3.3],所以,通过在步骤S415和S419中针对频率点运行循环,针对所有的频率点求解ΔW。
[0573] 应该注意,作为ICA的算法,可以应用除表达式[3.2]以外的表达式。例如,当执行去相关作为预处理时,可能优选的是,在基于标准正交的约束的梯度方法中,使用下述表达式[3.13]至[3.15]。这里,表达式[3.13]中的X′(ω,t)表示去相关的观测信号。
[0574] 数式9
[0575] Y(ω,t)=W(ω)X′(ω,t) ......[3.13]
[0576]H
[0577] ΔW(ω)={D(ω)-D(ω)}W(ω) ......[3.15]
[0578] 在上述的循环处理结束之后,处理返回到步骤S413,以执行与中断标志有关的确定和步骤S414中的分离矩阵的收敛的确定当中断标志为ON时,处理结束。如果在步骤S414中确认分离矩阵收敛(或者已经达到指定的循环的数目),则处理前进至步骤S420。
[0579] 将参照图32中所示的流程图描述步骤S420中的后处理的细节。
[0580] 在步骤S420中,作为后处理,执行以下处理。
[0581] (1)使分离矩阵对应于归一化之前的观测信号。
[0582] (2)调整频率点之间的平衡(重新标度)。
[0583] 首先,将给出对(1)使分离矩阵对应于归一化之前的观测信号的处理的描述。
[0584] 在作为预处理已经执行归一化的情况下,通过上述处理(图31中的步骤S415至S419)求解的分离矩阵W不用于分离归一化之前的观测信号X,而是用于分离归一化之后获得的观测信号X′。也就是说,即使当将W与X相乘,其结果也不是分离信号。因此,对通过上述处理求解的分离矩阵W(ω)进行校正,以将其变换为用于分离归一化之前的观测信号X(ω,t)的矩阵。
[0585] 具体地说,假设在归一化时应用的矩阵是S(ω),为了使W(ω)与归一化之前的观测信号相关联,可以执行这样的校正:W(ω)←W(ω)S(ω)(表达式[9.1])。
[0586] 同样地,当作为预处理执行去相关时,执行这样的校正:W(ω)←W(ω)P(ω)(P(ω)是去相关矩阵)。
[0587] 接下来,将给出对(2)调整频率点之间的平衡(重新标度)的处理的描述。
[0588] 根据ICA算法,在某些情况中分离结果Y的频率点之间的平衡(标度)可以不同于原始源信号的平衡(例如,日本未审专利申请公开No.2006-238409“Audio Signal Separating Apparatus/Noise Removal Apparatus and Method(音频信号分离设备/噪声去除设备和方法)”)。在这种情况下,有必要在后处理中校正频率点的标度。为了校正标度,从表达式[9.5]和[9.6]计算校正矩阵。这里,表达式[9.5]中的“l”(L的小写字母)是作为投影目标的传声器的索引。当获得校正矩阵时,基于表达式[9.3]校正分离矩阵W(ω)。
[0589] 另外,通过校正如下:
[0590] (1)使分离矩阵对应于归一化之前的观测信号;以及
[0591] (2)调整频率点之间的平衡(重新标度),
[0592] 可以允许通过对其应用表达式[9.4]来立刻执行校正。这样重新标度的分离矩阵存储在图12所示的分离矩阵保持部分133中,并且,在必要的时候,在由分离处理单元123执行的分离处理(前景处理)中参考该分离矩阵。
[0593] 接下来,处理前进至在步骤S453中产生全死角空间滤波器的处理。在产生全死角空间滤波器的方法中,存在下述两种可能的方法:
[0594] (1)从分离矩阵产生;以及
[0595] (2)从观测信号的协方差矩阵的特征向量产生。
[0596] 首先,将给出对“(1)从分离矩阵产生全死角空间滤波器的方法”的描述。
[0597] 假设在步骤S452中重新标度的分离矩阵是W(ω),并且低向量是W1(ω)至Wn(ω),通过上述的表达式[5.1]计算全死角空间滤波器B(ω)。这里,“l”(L的小写字母)是作为投影目标的传声器的索引。“el”表示n维行向量,并且是只有第1个元素是1而其它元素为0的矩阵。
[0598] 当将由表达式[5.1]获得的全死角空间滤波器B(ω)与观测信号X(ω)相乘时,获得结果Z(ω,t)(表达式[5.4]),作为全死角空间滤波结果。
[0599] 表达式[5.3]示出了为什么这样计算出的全死角空间滤波器B(ω)用作全死角空间滤波器的原因。
[0600] 在表达式[5.3]中,
[0601] Wk(ω)X(ω,t)
[0602] 是分离矩阵应用结果的第k个信道。
[0603] 在上面参照图32描述的分离处理流程的步骤S452中的分离矩阵的重新标度处理中,对分离矩阵进行重新标度。这里,当针对所有的信道对分离矩阵应用结果进行求和时,结果基本上等于Xl(ω,t),即,投影目标传声器的观测信号。
[0604] 因此,可以期望表达式[5.3]的左边接近于0。此外,通过表达式[5.1]的全死角空间滤波器B(ω),可以将表达式[5.3]的左边改变为表达式[5.4]的右边。具体地说,B(ω)可以被认为是从观测信号X(ω,t)产生接近于0的信号的滤波器,即,全死角空间滤波器。
[0605] 当分离矩阵的收敛不充分时,从分离矩阵产生的全死角空间滤波器具有甚至在某一种程度上使学习数据的区间中包含的声源通过的特性。例如,首先,在参照图7描述的现有技术中,在从时间t2至t3的区间75中,分离矩阵不收敛。这里,在某一种程度上还输出突发声音,但是,从该区间中的分离矩阵产生的全死角空间滤波器也在某一种程度上使突发声音通过。这样,存在在图9中的从时间t2至t3中的区间95。然而,由于突发声音通过图9中所示的从时间t2至t3的区间95、以及图7中所示的从时间t2至t3的区间75,所以通过频率滤波消除了突发声音。因此,在图9中所示的(c1)处理结果1中,在对应于从时间t2至t3的区间95的区间中,突发声音也消失。
[0606] 首先,将给出对“(2)从观测信号的协方差矩阵的特征向量产生全死角空间滤波器的方法”的描述。
[0607] 当去相关用作参照图31描述的分离矩阵的学习处理的步骤S411中的“预处理”时,已经对观测信号的协方差矩阵完全执行了特征分解。也就是说,如下面的表达式[6.1](与表达式[9.8]相同)所示,通过使用特征值λ1至λn和特征向量p1至pn表示观测信号的协方差矩阵∑xx(ω)。
[0608] 数式10
[0609] ∑XX(ω)=[p1,…,pn]diag(λ1,…,λn)[p1,…,pn]H ......[6.1][0610] λk:特征值(降序) pn:特征向量
[0611] B(ω)=pnH ......[6.2]
[0612] 这里,所有的特征值是0或更大,并且按递减的顺序排列。也就是说,满足下述条件:
[0613] λ1≥λ2≥…≥λn≥0。
[0614] 在这种情况下,对应于最小特征值λn的特征向量pn具有全死角空间滤波器的特性。因此,当如表达式[6.2]中一样设置全死角空间滤波器B(ω)时,可以与“(1)从分离矩阵产生”中一样使用全死角空间滤波器B(ω)。
[0615] 这种方法能够通过与通过甚至除ICA以外将时间频率域中的观测信号与向量或矩阵相乘分离声源的方式组合来减少上述的“残余声音”。
[0616] 这样产生的全死角空间滤波器存储在图12所示的全死角空间滤波器保持部分134中,并且,在必要的时候,在由分离处理单元123执行的分离处理(前景处理)中参考该全死角空间滤波器。
[0617] 到此为止给出的对步骤S453中的产生全死角空间滤波器的处理的描述结束了。
[0618] 接下来,将描述步骤S454中的“计算功率比”的处理。例如,在上面参照图27描述的分离处理的步骤S308的“频率滤波”处理中参考功率比。然而,由于用于计算功率比的观测信号与学习数据的区间(例如,图8中所示的学习数据块81)相同,所以,当在学习结束时立即执行功率比计算自身时,该值在下一次更新分离矩阵之前保持有效。
[0619] 在计算功率比之前,首先,通过使用上述的表达式[8.8]或[8.9],针对每一个信道计算功率(区间中的元素的平方和)。然而,分离矩阵Wk(ω)是在步骤S452中重新标度的分离矩阵,在学习数据的区间(例如,图8中所示的学习数据块81)中执行平均运算<·>t。
[0620] 通过应用上述表达式[8.6]、[8.7]和[8.11]中的任何表达式来执行功率比计算。信道k的功率(方差)由Vk表示,通过对其应用上述表达式[8.6]、[8.7]和[8.11]中的任何表达式来计算功率比rk。这三个表达式的分母不同。当在同一区间中比较各信道中的功率时,表达式[8.6]的分母是最大值。表达式[8.7]的分母是预先计算为Vmax的、在输入非常大的声音时获得的功率。表达式[8.11]的分母是各信道中的功率Vk的平均值。关于使用哪一个表达式的确定取决于使用环境而不同。例如,如果使用环境相对比较寂静,则优选使用表达式[8.7],如果在使用环境中背景噪声相对比较大,则优选使用表达式[8.6]。
与此不同的是,当可以通过使用表达式[8.11]将rmin和rmax设置为满足rmin≤1≤rmax时,该操作在宽范围的环境中相对比较稳定。原因在于,由于存在至少一个不应用频率滤波的信道和至少一个应用频率滤波的信道,所以不存在这样的情况:去除了突发声音,或者,当不应该在所有的信道上保留有突发声音时,在所有信道上保留有突发声音。
[0621] 对应于这样计算的信道的功率比rk存储在图12所示的功率比保持部分135中,并且,在必要的时候,在由分离处理单元123执行的分离处理(前景处理)中参考该功率比。也就是说,通过使用基于功率比的函数(表达式[8.10]和图28),在针对每一个信道确定频率滤波的执行模式(图27中的步骤S308)时,使用该功率比。
[0622] 到此为止给出的对步骤S454中的计算功率比的处理的描述结束了。
[0623] 5.本发明的实施例的信号处理设备的其它例子(变型例)
[0624] 接下来,将描述与上述例子不同的变型例。
[0625] 5-1.变型例1
[0626] 上述例子描述了使用基于功率比的函数(表达式[8.10]和图28)的方法作为确定对每一个信道应用频率滤波的模式的方法。
[0627] 作为不同的可能的方法,还存在“对除下述一信道以外的信道应用频率滤波:通过比较各信道中的分离矩阵应用结果的功率,该信道的功率最小”的方法。也就是说,总是对于突发声音的输出确保最小功率信道。由于很可能最小功率信道不对应于任何声源,所以甚至在这样简单的方法中也可以使用该信道。
[0628] 然而,为了防止输出突发声音的信道频繁地改变(例如,在正播放突发声音时改变),发明设计是必要的。这里,由此,描述下述两点:
[0629] (1)在功率比的计算中进行平滑化;以及
[0630] (2)在初始学习值中反映全死角空间滤波器。
[0631] (1)在功率比的计算中进行平滑化
[0632] 首先,将描述在功率比的计算中进行平滑化。
[0633] 基于如下所示的表达式[10.1],计算每一个信道的功率。
[0634] 数式11
[0635]
[0636] 0≤γ≤1 ......[10.2]
[0637]
[0638] W(ω)=W′(ω)-diag(α′1,…,α′n)B′(ω) ......[10.4][0639]
[0640] W(ω) = normallze(W ′ (ω)-diag(α ′ 1, …,α ′ n)B ′ (ω)) ......[10.6]
[0641] W(ω)← μW(ω)+(1-μ)[normalize(W ′(ω)-diag(α ′1, …,α ′ n)B′(ω))]
[0642] ......[10.7]
[0643] 当基于表达式[10.1]计算每一个信道的功率时,可能会存在功率基本上相同的多个输出信道。在这种情况下,最小功率信道往往会频繁地改变。例如,当观测信号基本上是无声的时,所有的输出信道也基本上是无声的。也就是说,所有的输出功率基本上变成相同,并且,根据其间的小的差异,确定最小功率信道。因此,可能会发生最小功率信道频繁地改变的现象。
[0644] 为了防止该现象,通过表达式[10.3]而不是上述的表达式[8.5]来计算减少量(或过度减法因子)αk。然而,与表达式[8.5]中一样,αmin是0或接近于0的正值,α是αk的最大值。也就是说,几乎不对最小功率信道应用频率滤波,并且,对其它信道原样地应用频率滤波。应该注意,通过将αmin设置为接近于0的正值,甚至在确保用于突发声音的信道上,也可以在某一种程度上减少“残余声音”(参考“现有技术的问题”)。
[0645] (2)将全死角空间滤波器反映到初始学习值
[0646] 接下来,将给出对将全死角空间滤波器反映到初始学习值的方法的描述。通过仅仅对最小功率信道不应用频率滤波(或者,通过几乎不对其应用频率滤波),仅仅在该信道上输出突发声音。另一方面,当连续地播放突发声音时,在分离矩阵中反映这种情形,并且,即使没有频率滤波的操作,也仅仅在一个信道上输出突发声音。例如,图7示出(b2)分离结果2的信道。由此,有必要设计使这两种情况下的信道相互一致的方式。否则,可能会发生在正播放突发声音的同时改变输出信道的现象。
[0647] 为了甚至之后在没有应用频率滤波的信道上连续地输出突发声音(为了防止信道改变),优选的是,应该在下一次学习的初始值中反映关于“对哪一个信道应用频率滤波(或者不应用频率滤波)”的信息。下面将描述该方法。
[0648] 在上述的例子中,在参照图25描述的“分离矩阵更新处理”的步骤253中(即,在学习结束之后立即)执行对初始学习值的设置。然而,在本变型例中,当在参照图31描述的“分离矩阵学习处理”的步骤S412中设置分离矩阵W的初始值时(即,紧接在下一次学习之前)执行设置。原因在于,在初始学习值中反映正好在开始学习之前的最新的分离矩阵和全死角空间滤波器的值(参照图12中的从分离矩阵应用部分126和全死角空间滤波器127到线程控制部分131的箭头)。
[0649] 为了在参照图31描述的“分离矩阵学习处理”的步骤S412中计算分离矩阵W的初始值,对所有的频率点执行上述的表达式[10-4]。这里,表达式[10-4]的左边的W(ω)表示存储为图13所示的线程控制部分131的初始学习值保持部分152和图14所示的线程计算部分132的分离矩阵保持部分164中的初始学习值的值。另外,其右边的W′(ω)和B′(ω)分别表示在频繁的重新标度之后获得的分离矩阵和全死角空间滤波器。与表达式[10.3]中的αk相同的值可以用作α′k,类似于表达式[10.5],可以使用不同的值。例如,当谱减法用作频率滤波时,在表达式[10.3]中进行这样的设置:α=1.5,在表达式[10.5]中进行这样的设置:α′=1.0(原因在于,尽管可以通过在谱减法中设置α>1来获得过度减法的效果,但是在通常的减法中优选的是α=1)。
[0650] 当进行这样的设置:α′=1且α′min=0(或者接近于0的正值)时,通过表达式[10.4]计算的分离矩阵W(ω)具有如下的特性:最小功率信道输出突发声音,并且其它信道抑制突发声音。因此,通过将这种值设置为初始学习值,甚至在学习之后,突发声音也很可能在同一信道上连续地输出。
[0651] 在必要的时候,代替表达式[10.4],可以执行表达式[10.6]中的运算。在这个表达式中,“normalize()”表示将括号内的矩阵中的每一行向量的范数归一化为1的运算。
[0652] 此外,当学习线程之间的学习时间有可能重叠(例如,在图5中,学习时间57和学习时间58临时重叠)时,通过在初始学习值中反映除最新的分离矩阵以外的分离矩阵,使输出声源的信道稳定化(关于其原因,参考日本未审专利申请公开No.2008-147920)。在本变型例中,为了在初始学习值中反映除最新的分离矩阵以外的分离矩阵,使用表达式[10.7]而不是表达式[10.6]。该表达式的右边的W(ω)是在前一时间计算的初始学习值,并且存储在图13所示的初始学习值保持部分152中。μ是遗忘因子,并且具有等于或大于
0且等于或小于1的值。
[0653] 预先与表示基于本变型例的确定方法的表达式[8.1]至[8.10]相比,仅有在下述情况下出现麻烦:在正好连续地播放n个声源(n与传声器的数目相同)的状态中新播放突发声音。也就是说,尽管通过在n-1个输出信道上的频率滤波去除突发声音,但是,对功率最小的信道不应用频率滤波,由此,叠加突发声音并输出突发声音(甚至在这种情况下,与现有技术相比,n-1个信道也具备优点。)
[0654] 另一方面,当在播放突发声音之前的声源的数目小于n时,预先可以期望将从哪一个信道输出突发声音。由此,在主要突发声音用作目标声音的应用中(例如,有时候在正播放音乐的环境中通过语音输入命令),存在这样的优点:容易指定ICA的多个输出信道中的哪一个输出信道是目标声音。
[0655] 5-2.变型例2
[0656] 与除ICA以外的线性滤波的组合
[0657] 在上述的例子中,全死角空间滤波器和频率滤波(减法)与实时ICA组合,而且还可以与除ICA以外的线性滤波处理组合。这样,可以减少“残余声音”。这里,将给出对与线性滤波组合的情况的配置例子的描述,并且,然后给出对最小方差波束形成器(MVBF)用作线性滤波的具体例子的情况的处理的描述。
[0658] 图33是示出“全死角空间滤波器和频率滤波”和线性滤波组合的情况的配置例子的示图。通过图33所示的配置执行的处理基本上与通过图12所示的分离处理单元123执行的观测信号分离处理(前景处理)相同。
[0659] 通过提供产生和应用某一线性滤波器的系统(傅里叶变换部分303→线性滤波器产生和应用部分305)、以及产生和应用全死角空间滤波器的系统(傅里叶变换部分303(全死角空间滤波器产生和应用部分304),对每一个应用结果执行频率滤波(减法)。从线性滤波器产生和应用部分305到全死角空间滤波器产生和应用部分304的虚线表示在必要的时候对全死角空间滤波器的应用结果执行重新标度(将全死角空间滤波结果的标度调整为线性滤波结果的标度)。
[0660] 这里描述的线性滤波是指通过提供分离矩阵W(ω)作为矩阵或向量并将观测信号向量X(ω,t)与W(ω)相乘来分离、提取和去除信号的处理(即,就分离结果而言:Y(ω,t)=W(ω)X(ω,t))。
[0661] 在下文中,将给出对最小方差波束形成器用作线性滤波的情况的描述。最小方差波束形成器是在混合有目标声音和干扰声音的环境中通过使用关于目标声音的方向的信息来提取目标声音的技术之一,并且是一种称为自适应波束形成器(ABF)的技术。
[0662] 关于其细节,例如,参考下述文献:
[0663] “Measurement of Sound Field and Directivity Control(声场的测量和方向性控制)”Nobutaka ONO,Shigeru ANDO
[0664] 22-th Sensing Forum Document,pp.305-310,September,2005.http://hil.t.u-tokyo.ac.jp/publications/download.php?bib=Ono2005SensingForum09.pdf[0665] 在下文中,参照图34,简单地描述最小方差波束形成器(MVBF),然后,将描述全死角空间滤波器和频率滤波的组合。如图34所示,在混合目标声音354(声源的数目是1)和干扰声音355(声源的数目是1或更多)的情况中,通过n个传声器351至353,观测混合这两种声音的信号。与上述的表达式[2.2]中一样,由X(ω,t)表示从观测信号产生的向量。
[0666] 给出作为从声源传递到传声器的函数(脉冲响应)的H1(ω)至Hn(ω),并且,由H(ω)表示以其为元素形成的向量。向量H(ω)由下述表达式[11.1]定义。
[0667] 数式12
[0668]
[0669] D(ω)=[D1(ω),…,Dn(ω)] ......[11.2]
[0670] Y(ω,t)=D(ω)X(ω,t) ......[11.3]
[0671] D(ω)H(ω)=1 ......[11.4]
[0672]
[0673]
[0674]
[0675]
[0676]
[0677]
[0678] B′(ω)=Q(ω)B(ω) ......[11.11]
[0679] Z′(ω,t)=B′(ω)X(ω,t) ......[11.12]
[0680] 向量H(ω)称为导向向量(steering vector)。在作为线性滤波的具体例子的最小方差波束形成器(MVBF)中,即使当不使用合适的传递函数时,如果H1(ω)与Hn(ω)的比例是正确的,仍可以提取目标声音。由此,导向向量可以从目标声音的声源方向或位置计算出,并且,(在完全停止干扰声音的情况下)在仅仅正在播放目标声音的情况下,还可以从区间中的观测信号估计出。
[0681] 如图34所示,通过滤波器358获得的将观测信号X1(ω,t)至Xn(ω,t)与滤波器因子(D1(ω)到Dn(ω))相乘的和表示为分离结果Y(ω,t)359。通过使用由作为其元素的滤波器因子形成的向量D(ω)(表达式[11.2]),可以将分离结果Y(ω,t)359由表达式[11.3]表示。与ICA不同,输出是1个信道,即,Y(ω,t)是标量。
[0682] 通过表达式[11.5]求解作为最小方差波束形成器(MVBF)的滤波器的D(ω)。在这个表达式中,∑XX(ω)被定义为观测信号的协方差矩阵,并且可以与ICA中一样从表达式[4.4]中的运算获得。应该注意,在“使从目标声音354得到的声源原样地保留”的约束2
(对应于表达式[11.4])下,通过解决用于求解使Y(ω,t)的方差<|Y(ω,t)|>最小化的MVBF滤波器D(ω)的问题来得到表达式[11.5]。通过表达式[11.5]计算出的MVBF滤波器D(ω)使目标声音方向上的增益保持为1,并且在每一个干扰声音方向上形成死角波束。
[0683] 然而,在使用MVBF提取声源的情况下,在ICA中存在“残余声音”的问题。也就是说,当干扰声音的声源的数目等于或大于传声器的数目时,或者,当干扰声音不是方向性的时(即,当干扰声音不源自于点声源时),难以通过死角消除干扰声音,由此,提取能力劣化。此外,由于传声器的排列而导致某一频率带的提取的精度可能劣化。
[0684] 此外,由于计算成本的限制,可能无法对每一帧执行滤波器的更新,而是,仅仅可以按照每多个帧一次的频率执行滤波器的更新。在这种情况下,还发生“跟踪滞后”的现象。例如,当按照每10帧一次的频率执行滤波器的更新时,在播放突发声音之后以最大9帧的间隔,声音被输出而没有被去除。
[0685] 另一方面,通过根据本发明的实施例将全死角空间滤波器和频率滤波与MVBF组合,可以处理“残余声音”和“跟踪滞后”。此外,通过对协方差矩阵执行特征分解,可以计算全死角空间滤波器,而不增加计算成本。在下文中将描述该方法。
[0686] 通过上述的表达式[4.4],针对每一帧计算观测信号的协方差矩阵。然后,根据MVBF滤波器的更新的频率,对协方差矩阵执行特征分解(上述的表达式[6.1])。类似于与ICA的组合的情况,全死角空间滤波器是对应于最小特征值的特征向量的转置(表达式[6.2])。
[0687] 当使用该特征分解结果时,可以从不包含逆矩阵的简单的表达式计算MVBF滤波器。原因在于,当使用从上述的表达式[9.9]计算的去相关矩阵P(ω)时,观测信号的协方差矩阵可以被写成表达式[11.7],由此,MVBF滤波器可以被写成表达式[11.8]。换句话说,当特征分解用作求解表达式[11.5]中的观测信号的协方差矩阵的方式时,同时获得全死角空间滤波器。
[0688] 使这样计算的全死角空间滤波器B(ω)经过重新标度(将全死角空间滤波结果的标度调整为MVBF滤波结果的标度的处理)。通过将全死角空间滤波器B(ω)与由表达式[11.9]计算的因子Q(ω)相乘来执行重新标度(表达式[11.11])。基于表达式[11.12],执行重新标度的全死角空间滤波器的应用结果Z′(ω,t)。由于MVBF侧输出是1个信道,所以Z′(ω,t)也是1个信道(即,Z′(ω,t)是标量)。
[0689] 在全死角空间滤波结果(表达式[11.12])和这样产生的MVBF结果(表达式[11.3])之间执行频率滤波(广义上的减法)。据此,从MVBF结果去除了“残余声音”。此外,由于针对由多个帧构成的每一组更新MVBF滤波器,所以,即使当发生“跟踪滞后”时,可以去除突发声音。
[0690] 6.基于根据本发明实施例的信号处理设备的配置的优点的概述
[0691] 在下文中,将概括性地描述基于根据本发明实施例的信号处理设备的配置的优点。基于根据本发明实施例的信号处理设备的配置的优点如下。
[0692] (1)在使用独立分量分析的实时声源分离系统中,不仅产生分离矩阵应用结果,而且产生全死角空间滤波结果,在这两个结果之间执行频率滤波或减法,从而可以去除突发声音。
[0693] (2)通过改变应用频率滤波的强度(或者减法量),根据是否在产生突发声音之前输出对应于声源的信号,
[0694] a)可以从正在输出对应于声源的信号的信道去除突发声音,并且
[0695] b)可以从没有正输出对应于声源的信号的信道输出突发声音。
[0696] (3)通过针对最短的每一帧对分离矩阵执行重新标度,可以减少在输出突发声音时产生的失真。
[0697] 上面已经参考具体例子详细地描述了本发明。然而,显而易见的是,在不脱离本发明的范围的情况下,本领域的技术人员能够对各个实施例进行各种修改和替换。也就是说,已经通过举例的方式公开了本发明,但是,不应该对本发明进行限制性的解释。应该参考所附的权利要求确定本发明的范围。
[0698] 本说明书中描述的一系列处理可以通过硬件、软件或者二者的组合配置来执行。当这些处理通过软件执行时,通过将记录处理序列的程序装入嵌于专用硬件中的计算机内的存储器中,或者,通过将该程序装入能够执行各种处理的通用计算机,可以执行这些处理。例如,可以将程序预先记录在记录介质上。除了将程序从记录介质装入计算机以外,可以经由诸如LAN(局域网)或互联网的网络接收程序并将该程序装入诸如硬盘的内置记录介质中。
[0699] 本说明书中描述的各种处理不仅可以如本描述中出现的那样按照时间顺序依次地执行,而且可以根据执行这些处理的装置的通量或者在必要的时候并行地或者独立地执行。另外,本说明书中使用的术语“系统”是指由多个装置构成的逻辑组件,并不限于各构成装置位于同一壳体内的系统。
[0700] 本申请包含与2009年11月20日提交到日本专利局的日本在先专利申请JP2009-265075中公开的主题相关的主题,该日本在先专利申请的全部内容通过引用的方式并入本文中。
[0701] 本领域的技术人员应该理解,根据设计要求和其它因素,可以进行各种修改、组合、子组合和替换,只要它们在所附的权利要求或其等同物的范围内即可。