本发明涉及信号处理领域,具体地,涉及基于环境声分离的车载语音提取方法及系统。
背景技术:
生活中噪声无处不在,语音分离的目的是要从含有噪声的信号中将需要的声音分离出来,进而提高其质量。因此语音分离可广泛应用于助听器、移动通讯等领域。
人类的听力系统可以在复杂的噪声环境下,轻松地区分出感兴趣的语音,屏蔽掉周围的噪声,但是随着计算机飞速的发展以及生活水平的提高,人们希望移动通讯里的声音越来越清楚,戴有助听器的人们也能清楚的听见想要听的声音,此时就需要机器也能拥有像人一样的语音分离的能力。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于环境声分离的车载语音提取方法及系统。
根据本发明提供的基于环境声分离的车载语音提取方法,包括如下步骤:
步骤s1:将预处理后的待分解声音信号进行分解生成多个本征模态函数分量;
步骤s2:将所述本征模态函数分量与多个声源对应的原始声音信号进行关联,所述原始声音信号包括语音;
步骤s3:将多个与所述语音相关联的本征模态函数分量进行重构生成目标语音信号。
优选地,在步骤s2在将所述本征模态函数分量与多个声源对应的声音信号进行关联时生成相关系数,所述相关系数表征本征模态函数分量与声音信号的相似度;
将所述本征模态函数分量与其对应的最大相关系数的声音信号进行关联。
优选地,所述步骤s1具体为:通过变分模态分解方法和瞬时频率均值法对经由a/d模数转换器和dsp处理后的待分解声音信号进行分解。
优选地,所述变分模态分解方法用于对待分解声音信号通过迭代搜寻变分模型的最优解来实现对于待分解声音信号的自适应分解,分解出本征模态函数分量。
优选地,所述瞬时频率均值法用于计算本征模态函数分量的数目k;
当对待分解声音信号通过变分模态分解方法进行预分解时,当瞬时频率均值减小时确定k值。
优选地,所述待分解声音信号对应的语音模拟信号通过设置在汽车厢内、汽车发动机旁以及汽车前窗玻璃下侧的传感器采集。
优选地,所述待分解声音信号为离散的数字信号;所述a/d模数转换器,用于将所述语音模拟信号转换成待分解声音信号;
通过dsp中tms320vc5402芯片对待分解声音信号进行存储器的读写操作。
优选地,所述变分模态分解方法具体为将输入的待分解声音信号f1分解成为若干本征模态函数(intrinsicmodefunction,imf)分量uk,所述本征模态函数分量包括待分解声音信号的局部特征信号,并定义成带宽受限的调幅调频信号,用公式(1)表示为:
ak(t)为uk(t)的瞬时幅值,
设uk(t)具有中心频率和有限带宽,约束条件为每个本征模态函数分量的估计带宽最小,且所有本征模态函数分量之和等于输入信号,则约束模型表示为
式中,k表示本征模态函数分量的数量,f为输入信号,{uk}={u1,u2,u3,…,uk}表示分解得到的k个有限带宽的本征模态函数分量,{wk}={w1,w2,w3,…wk}表示各个本征模态函数分量的中心频率,j为虚数单位,δ(t)为冲激函数,
优选地,所述瞬时频率均值法的实施步骤为:
对所述待分解声音信号进行变换:
式中,pv表示柯西主值,x(τ)与y(t)互为共轭,x(τ)是经过对待分解声音信号f1进行希尔伯特(hibert)变换得到的,y(t)为利用柯西主值得到的与x(τ)互为共轭关系的反变换,τ为变量,c(τ)为待解声音信号f1,x(τ)为将x(t)带入值,t为时间;
通过x(t)、y(t)得到新的时间序列z(t):
z(t)=x(t)+y(t)j=a(t)eθ(t)j(7)
式中a(t)为瞬时幅值,θ(t)表示相位,j为虚数单位;
计算瞬时频率均值:
瞬时频率f(t)计算公式为
得到瞬时频率均值resf
本发明提供的基于环境声分离的车载语音提取系统,包括如下模块:
信号分解模块,用于将预处理后的待分解声音信号进行分解生成多个本征模态函数分量;
信号关联模块,用于将所述本征模态函数分量与多个声源对应的原始声音信号进行关联,所述原始声音信号包括语音;
信号重构模块,用于将多个与所述语音相关联的本征模态函数分量进行重构生成目标语音信号。
与现有技术相比,本发明具有如下的有益效果:
本发明中通过将声音信号进行分解生成多个本征模态函数分量,然后多个声源对应的原始声音信号进行关联,经与所述语音相关联的本征模态函数分量进行重构生成目标语音信号,从而实现语音的准确分离。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例中待分解声音信号采集的工作流程图;
图2为本发明实施例中汽车安装上传感器的示意图;
图3为本发明实施例中对语音模拟信号预处理的流程图;
图4为本发明实施例中本征模态函数分量的数目选取的步骤流程图;
图5为本发明实施例中待分解声音信号进行分解的步骤流程图;
图6为本发明实施例中基于环境声分离的车载语音提取方法的步骤流程图;
图7为本发明实施例中基于环境声分离的车载语音提取系统的模块示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
图1为本发明实施例中待分解声音信号采集的工作流程图,如图1所示,首先尽可能多地收集语音,携带语音坐在车上,在不同的车载环境下播放并再次收集语音,为训练做好准备。其中,不同车载环境分别指的是:汽车启动但并未出发、汽车出发后平稳行驶并且车内无其他声音、汽车平稳行驶并且车内有其他声音(例如聊天声音、车载广播声音等)、汽车出发后刹车、汽车停车。
图6为本发明实施例中基于环境声分离的车载语音提取方法的步骤流程图,如图6所示,本发明提供的基于环境声分离的车载语音提取方法,包括如下步骤:
步骤s1:对于预处理后的待分解声音信号进行分解生成多个本征模态函数分量;
步骤s2:将所述本征模态函数分量与多个声源对应的原始声音信号进行关联,所述原始声音信号包括语音;
步骤s3:将多个与所述语音相关联的本征模态函数分量进行重构生成目标语音信号。
在本发明一实施例中,在步骤s2在将所述本征模态函数分量与多个声源对应的声音信号进行关联时生成相关系数,所述相关系数表征本征模态函数分量与声音信号的相似度;
将所述本征模态函数分量与其对应的最大相关系数的声音信号进行关联。
在本发明一实施例中,所述步骤s1具体为:通过变分模态分解方法和瞬时频率均值法对经由a/d模数转换器和dsp处理后的待分解声音信号进行分解。
在本发明一实施例中,所述变分模态分解方法用于对待分解声音信号通过迭代搜寻变分模型的最优解来实现对于待分解声音信号的自适应分解,分解出本征模态函数分量。
在本发明实施例在,所述变分模态分解方法(vmd)采用循环筛分剥离的方式处理待分解声音信号,将待分解声音信号的分解过程转移到变分框架里,通过迭代搜寻变分模型的最优解来实现对于待分解声音信号进行自适应分解,分解出各个声音片段,以便于后续对语音信号的处理。
所述变分模态分解方法的实质是将输入的待分解声音信号f1分解成为若干本征模态函数(intrinsicmodefunction,imf)分量uk,imf分量包含原待分解声音信号的局部特征信号,并定义成带宽受限的调幅-调频(am-fm)信号,用公式(1)表示为:
ak(t)为uk(t)的瞬时幅值,
设uk(t)具有中心频率和有限带宽,约束条件为每个imf分量的估计带宽最小,且所有imf分量之和等于输入信号,则约束模型表示为
式中,k表示imf分量的数量,f为输入信号,{uk}={u1,u2,u3,…,uk}表示分解得到的k个有限带宽的imf分量,{wk}={w1,w2,w3,…wk}表示各个imf分量的中心频率,j为虚数单位,δ(t)为冲激函数,
为了解决(2)式的约束性变分问题,引入惩罚因子α和lagrange算子λ(t),将式(2)变为非约束性变分问题,得到扩展的lagrange表达式l({uk},{wk},λ)为:
式中,α为惩罚参数,λ(t)为lagrange算子,δ(t)为冲激函数,f(t)为原信号,利用交替方向乘子算法交替更新各imf分量及中心频率,可求得上式增广拉格朗日函数的鞍点,即为所求问题的最优解,从而实现对待分解声音信号的分解。
其中,对于模态信号uk和中心频率ωk的更新,采用公式(4)(5):
式中,ω表示模态的中心频率;
在本发明实施例中,所述瞬时频率均值法用于计算本征模态函数分量的数目k;
通过对待分解声音信号通过变分模态分解方法进行预分解,当瞬时频率均值减小时确定k值。
由于vmd方法分解待分解声音信号f1时,k值过小会出现欠分解现象,而k值过大会有过分解现象,会导致瞬时频率断断续续,因此k值的选取至关重要,本发明实施例中采用瞬时频率均值法确定k值。所述瞬时频率均值法的实施步骤为:
(1)对所述待分解声音信号正反变换
式中,pv表示柯西主值,x(τ)与y(t)互为共轭,x(τ)是经过对待分解声音信号f1进行希尔伯特(hibert)变换得到的,y(t)为利用柯西主值得到的与x(τ)互为共轭关系的反变换,τ为变量,c(τ)为待解声音信号f1,x(τ)为将x(t)带入值,t为时间;
(2)利用x(t)、y(t)得到新的时间序列z(t)
z(t)=x(t)+y(t)j=a(t)eθ(t)j(7)
式中a(t)为瞬时幅值,θ(t)表示相位,j为虚数单位
(3)计算瞬时频率均值
瞬时频率f(t)计算公式为
得到瞬时频率均值resf
为判断环境声分离的准确性,本发明实施例中采用求解互相关系数作为依据,互相关系数法能够定量的表示两个变量之间的相互依赖程度,计算每个imf分量与原始对应信号的互相关系数ρxy,用到的公式是:
式中,xn、yn分别为imf分量和原始声音信号,
图4为本发明实施例中本征模态函数分量的数目选取的步骤流程图,如图4所示,首先对待分解声音信号f1进行预分解,令k从小到大取值,初始化k=2,惩罚因子α和带宽使用默认值,即α=2000,τ=1e-7;然后对各imf分量进行希尔伯特变换(hiberttransform),再求出瞬时频率均值;最后比较各瞬时频率均值,当出现明显减小时所对应的k值就是所要求解的模态数目。
在本发明实施例中,所述待分解声音信号对应的语音模拟信号通过设置在汽车厢内、汽车发动机旁以及汽车前窗玻璃下侧的传感器采集。
图2为本发明实施例中汽车安装上传感器的示意图,如图2所示,在汽车厢内安装传感器s1,用来录制车厢内的声音,包括人说话声音、车载广播声音等;在汽车发动机旁安装传感器s2,用来录制汽车发动机的声音;在汽车前窗玻璃下侧安装传感器s3,用来录制环境声。
在本发明实施例中,所述待分解声音信号为离散的数字信号;所述a/d模数转换器,用于将所述语音模拟信号转换成待分解声音信号;
通过dsp中tms320vc5402芯片对待分解声音信号进行存储器的读写操作。
所述a/d模数转换器是一个将模拟信号转变为数字信号的元件,采样频率可以是8k,16k,…,采样频率最高到500k,最理想的采样频率是44.1k,本发明实施例中采用型号为tlc320ad50c的芯片,可以同时进行接收和发送任务。
所述tms320vc5402芯片编程实现对存储器的读写功能,次芯片包含在dspc5000系列中,属于定点dsp,主要适用于通信、ip、助听器等相关产品,此系列低功耗、小封装,处理速度一般在80mips-400mips。
图3为本发明实施例中对语音模拟信号预处理的流程图;如图3所示,将待分解声音信号通过a/d转换器和dsp进行预处理过程。将传感器s1、将传感器s2、将传感器s3录制的声音以及图1中语音声音首先经过a/d模数转换器处理,将语音模拟信号转换成离散的数字信号,存储在flash存储器中;dsp主要通过外部存储器接口来访问片外存储器。所述tms320vc5402芯片的ps和ds引脚通过逻辑开关来分别控制flash和sram的使能端,由rw和mstrb来控制位通过逻辑电路分别控制读和写,通过编程来完成具体的功能。
图5为本发明实施例中待分解声音信号进行分解的步骤流程图,如图5所示,在求得k后,利用vmd方法将输入的待分解声音信号f1分解成为若干个本征模态函数imf分量uk,然后通过迭代的方法计算变分模型的最优解从而确定每个imf的中心频率(带宽),从而实现分离原始信号成为k个imf分量的目的。最后对含有不同信号的imf分量进行重组,成为u1,…,uk这k个信号,也就完成了分离信号的任务。
将上述处理后的信号u1,…,uk分别与图3中的语音、传感器s2录制的发动机语音信号、传感器s3录制的环境声信号预处理后的信号分别做互相关,得出互相关系数,比较相关系数,相关系数越大,说明相似度高,可以确定各分离信号的所属类型,并提取出与其语音相关的imf分量重构语音信号。
图7为本发明实施例中基于环境声分离的车载语音提取系统的模块示意图,如图7所示,本发明提供的基于环境声分离的车载语音提取系统,包括如下模块:
信号分解模块,用于将预处理后的待分解声音信号进行分解生成多个本征模态函数分量;
信号关联模块,用于将所述本征模态函数分量与多个声源对应的原始声音信号进行关联,所述原始声音信号包括语音;
信号重构模块,用于将多个与所述语音相关联的本征模态函数分量进行重构生成目标语音信号。
在本发明实施例中,采用vmd算法常用到故障诊断问题中,是在经验模态分解(emd)以及集合经验模态分解(eemd)的基础上提出的,很好的解决了模态混叠现象,分解方式也由emd以及eemd的递归分解变为vmd的迭代求解,来实现信号的自适应分解,表现出较好的鲁棒性。
本发明实施中分离车载语音环境声音,是希望可以通过vmd算法以及瞬间频率均值法来分离出人声、汽车发动机的声音以及其他声音,以便可以用于其他领域,比如根据汽车发动机的声音来判断汽车的故障所在,或者根据分离出来的车载空调的声音判断汽车的空调制冷效果等等。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。