具体实施方式
本发明实施例充分考虑到录音距离对目标声音特性造成的影响,根据录音距离远近提出两种不同的录音控制技术,下面结合附图进行详细说明。
一、近讲模式
近讲模式也可称为口述模式,即录音距离比较近,声音采集单元的灵敏度可以设置的较低,例如采访或自述时进行的录音。这时,声波到达录音装置的声音采集单元时为球面波,球面波的声波强度与距离的平方成反比,一般情况下,录音装置具备两个或两个以上的声音采集单元,如果不同声音采集单元采集到的声音的强度比值满足球面波特性,则可以据此判定目标声音存在,应该启动录音。而球面波的特性和声源距离以及采集单元之间的间距相关,因此在设定声强比判定阈值时,需要根据为近讲模式设定的最大录音距离或常规录音距离,以及各个声音采集单元之间的距离确定。
如图1所示,以录音设备具备的两个声音采集单元为例,两个声音采集单元的间距为3cm,近讲的常规录音距离为10cm,录音设备例如图示的录音笔,两个声音采集单元例如图示的麦克风Mic1和Mic2,则:
声源距离Mic1的距离r1=10cm;
声源距离Mic2的距离r2=13cm;
假设两个声音采集单元录到的声音强度为P1和P2,则如公式1所示:
考虑到如果声源距离录音笔的最远距离大于10cm,则这个比值Pr会降低,反之会升高。进一步考虑到录音笔的摆放方向并不能像图1所示,和声源处于一条直线上,如果摆放斜了,那么声源到两个声音采集单元的距离差将小于3cm,则近讲的有效距离就会缩短,因此,声音强度的判决阈值小于1.69,根据经验可以将判决阈值设定为1.3,以判定是否存在近讲目标声音声源,从而实现近讲目标声音检测。
为增加声强检测的准确性,本发明实施例还可以采用一阶低通滤波对Pr做平滑处理,具体方法为:
Prn’=Prn-1’*alfa+Prn*(1-alfa)
其中Prn为第n次采集的声强值,Prn-1’根据第n-1次采集的声强值进行一阶低通滤波后获得的声强均值,Prn’为根据第n次采集的声强值进行一阶低通滤波后获得的声强均值,alfa为0~1之间的加权系数,可以为0.9、0.8或其它值,本发明实施例不加限定。本领域技术人员还可以采用其它滤波方法进行平滑处理,这里不再一一详细说明。
基于上述原理,当给定近讲模式的常规录音距离或最远录音距离,并且已知各录音单元之间间距的情况下,可以确定声强比阈值Threshold,当检测到的任意两个声音采集单元采集的同一帧声音信号的声强比Pr大于Threshold时,就可以判定为有近讲目标声音出现,需要将各声音采集单元采集的当前帧目标声音数据存储为录音数据,当上述条件从开始不满足的起始帧至当前帧的持续时间到达设定沉默时长时,可以判为无目标声音,停止将各声音采集单元采集的当前帧目标声音数据存储为录音数据。
本领域技术人员根据经验值可以设定声强比的判决阈值,也可以根据近讲模式的常规录音距离或最远录音距离,以及各录音单元之间间距进行合理推算,下面给出两种具体计算方法,设录音设备包括多个声音采集单元。
第一种计算根据设定的最远录音距离确定,具体包括如下步骤:
确定各声音采集单元两两组合后形成的I组声音采集单元组;
对其中每一组声音采集单元,根据公式1确定:Zi=(R+di)2/R2,其中:Zi为第i组声音采集单元对应的最小声强比阈值,R为录音设备的最远录音距离,di为第i组声音采集单元中的两个声音采集单元之间的间距;
确定所述第一判决阈值为:大于等于Z1~ZI中最小值或小于等于其中最大值的任意值。
上述方法中,利用公式1,可以根据最远录音距离计算出每一组声音采集设备的最小声强比,然后将声强比判决阈值设定为:大于等于Z1~ZI中最小值或小于等于其中最大值的任意值。较佳的,声强比判决阈值设定为:Z1~ZI的平均值。本领域技术人员还可以根据Z1~ZI,通过试验方法确定B'的具体取值,这里不再一一详细说明。
根据第一种计算方法,还可以进一步确定装置的最远录音距离R为公式B'=(R+di)2/R2的大于零的解。
第二种计算根据设定的常规录音距离确定,具体包括如下步骤:
确定各声音采集单元两两组合后形成的I组声音采集单元组;
对其中每一组声音采集单元,根据公式1确定:Bi=(r+di)2/r2,其中:Bi为第i组声音采集单元对应的常规声强比阈值,r为录音设备的常规录音距离,di为第i组声音采集单元中的两个声音采集单元之间的间距;
确定B为所述B1~BI的平均值;
确定所述第一判决阈值B'为大于1小于B的值。
根据本发明实施例技术方案的原理,最远录音距离的判决阈值应该小于常规录音距离的判决阈值,因此取B'为大于1小于B的值,当然,B也可以是B1~BI中的最大值或最小值,较佳的B'为:1和B的平均值。本领域技术人员还可以根据B1~BI,通过试验方法确定B'的具体取值,这里不再一一详细说明。
根据上述原理,在录音设备中设定近讲模式,当用户选择近讲模式录音时,根据设定的声强比阈值判定是否录音,由于声强比阈值的设定充分考虑了近讲声源的球面波特性和录音距离,从而提高了录音控制的可靠性。
根据上述原理,当近讲模式的最远录音距离确定后,如果在近讲模式的最远录音距离之外进行录音,则本发明实施例称之为远讲模式录音。
对于远讲模式下的目标声音的检测,本发明实施例也提出了相应的检测方法,下面进行详细说明。
二、远讲模式
本发明实施例考虑到录音设备远离声源时,声波信号的到达各录音采集设备时基本上成为平面波,各声音采集单元采集的声音信号强度与距离的相关性可以忽略,而声音的信噪比特性可以用于判决声音是否存在,因此本发明实施例提出一种在远讲模式下,利用信噪比来估计目标声音存在概率的录音控制技术。
如图2所示,为远讲目标声音检测原理示意图,对于各声音采集单元采集的多路信号取平均,利用信号平均值进行分析可以减少运算量。其中:
Avg模块就是将两路信号取平均的操作,获得平均信号Sf,然后信号经过分析窗平滑后,利用傅立叶变换FFT,将信号从时域变换到频域,假定频域信号用Y[k]表示,对Y[k]进行信噪比估计,首先要估计背景噪声的方差。背景噪声通常是不稳定且时变的,这就要求噪声估计算法能够实时跟踪背景噪声的变化,首先假设信号的能量要大于噪声的能量,这个假设在一般的应用场合都能满足,于是噪声估计的基本原理就是在目标声音存在概率较小的时候,通过不断搜索最小能量,来估计噪声方差,具体方法包括如下步骤:
1、首先得到Sf每条谱线的谱能量,并进行平滑处理;
平滑处理包括用汉宁窗作区域平滑和用一阶递推平均处理方法进一步做时间上的平滑处理,其中,用汉宁窗作区域平滑为:
其中b代表汉宁窗,汉宁窗的宽度为2W,W可以取1。
用一阶递推平均处理方法进一步做时间上的平滑处理为:.
S[i]=αsS[i]+(1-αs)Sf[i]
其中αs满足0<αs<1
2、搜索平滑处理后的信号S[i]每条谱线的局部最小能量Smin[i];
这个局部最小值的搜索可以用快降慢升的递推简化算法实现,即:
如果S[i]>Smin[i],则Smin[i]=Smin[i]*alfa+S[i]*(1-alfa)
如果S[i]<=Smin[i],则Smin[i]=Smin[i]*beta+S[i]*(1-beta)
其中alfa和beta都是0~1之间的数,为了体现快降慢升的特点,一般alfa>beta;
3、对每一条谱线,分别将Smin[i]作为噪声方差,而S[i]为噪声加目标声音的方差。即目标声音方差为:
Sv[i]=S[i]-Smin[i]
则第i个谱线上的信噪比为:
SNR[i]=Sv[i]/Smin[i]
所有谱线的SNR[i]的平均信噪比为:
SNR=Average(SNR[i]),i=0—fftsize/2
上述信噪比估计技术为本领域技术人员所熟知,本领域技术人员还可以采用其它的信噪比估计技术获得多个信号的平均信噪比,本发明实施例中,当根据多个信号采集单元采集到的信号获得的平均信噪比大于1,或者比1稍大的数,例如1.1或1.2时,或者信号质量非常好,信噪比非常大,达到几十或几百时,可以判决远讲声源的存在,开始录音。在远讲模式下,根据不同的录音质量要求,可以将信噪比的判决阈值设定为大于1的数,一般不超过1.5即可。
三、录制备用数据
本发明实施例还进一步考虑到启动录音之前有可能会错过一些有用的声音数据,因此在录音设备被启动或者每一次暂停录音后,后循环录制一段备用数据,备用数据为各声音采集单元在当前帧之前的设定备用时长内采集到的目标声音数据;以及每一次启动录音时,还将之前录制的备用数据存储为当前帧之间的录音数据。为实现备用数据的录制,本发明实施例提供一种具体实现方式:
首先,根据设定的备用时长,申请相应存储量的回滚内存,其中:
在回滚内存中,每一个声音采集单元采集的各帧声音数据,可以存储为一个循环链表结构,该循环链表结构的每个节点可以用一个如下的结构体表示:
Node表示这个节点的结构体名称,Data1[L]为Mic1采集的某一帧信号,Data2为Mic2采集的某一帧信号。NextNode为指向下一帧信号,即下一个节点的指针。其中L为帧长。
假设,信号的采样率为8k,帧长L为128,则,如果希望回滚内存中暂存0.5s的数据,则大概需要暂存32帧。即可以设置循环链表中有32个节点,并定义为:Node1,Node2,…,Node32,然后初始化时将32个节点串联起来,形成循环链表,即:
Node1->NextNode=Node2;
Node2->NextNode=Node3;
Node31->NextNode=Node32;
Node32->NextNode=Node1;
假设NodeCurrent为当前节点,则每来一帧信号,需要做:
将Mic1采集的信号赋给NodeCurrent.Data1
将Mic2采集的信号赋给NodeCurrent.Data2
NodeCurrent=NodeCurrent->NextNode
通过这种方法,对于每一个信号采集单元,可以始终在回滚内存中保留最新的0.5s的数据。以备需要的时候使用。
如果上一帧处于暂停录音状态,而当前帧判决结果为有目标声音,则启动录音,并连接回滚内存模块,将录音起始点回滚到回滚内存的数据起始位置。假设起始位置的节点位NodeHead,则可根据回滚内存的当前节点NodeCurrent,通过NodeHead=NodeCurrent->NextNode得到起始节点。然后将整个循环列表里的节点里的数据全部录制下来。这样就可以将目标声音起始段的一部分本来要丢掉的数据,通过回滚的方式找回来。回滚的备用时间长度,可以通过设置节点个数来控制。
基于上述原理,可以在录音设备中设置近讲和远讲两种模式,根据用户的选择,采用对应的控制方法判断是否启动录音,也可以在专用的近讲录音设备或者远讲录音设备中采用其中对应的控制方法控制录音。
如图3所示,本发明实施例提供的近讲模式录音控制方法包括如下步骤:
S300、录音设备开机;
S301、录制备用数据并保存在缓存中;
S302、获得每一个声音采集单元采集到的当前帧目标声音数据,并确定每一个当前帧目标声音数据对应的目标声音信号强度;
S303、判定第一设定条件是否满足;
S304、当第一设定条件满足时录音;
当其中两个声音信号强度的比值大于第一判决阈值的第一设定条件满足时录音,包括:将各声音采集单元采集的当前帧目标声音数据存储为录音数据,如果缓存中录制有备用数据,则还将备用数据存储为录音数据,并停止步骤S301;
S305、当第一设定条件不满足时,判断第一设定条件从开始不满足的起始帧至当前帧的持续时间是否到达设定沉默时长;
当第一设定条件从开始不满足的起始帧至当前帧的持续时间未到达设定沉默时长时,继续步骤S304录音,否则执行步骤S306暂停录音,包括:停止将各声音采集单元采集的当前帧目标声音数据存储为录音数据,并触发步骤S301执行,将数据录制为备用数据,保存在缓存中。
第一设定条件即为近讲模式判定条件,即两个声音信号强度的是否比值大于针对近讲模式设定的声强比判决阈值,具体确定方法如前,这里不再重复描述。
设定沉默时长为无目标声音状态持续的最长时间,可以利用一个计数器进行检测,只有当无目标声音状态持续一段时间后,才暂停录音。这样做的原因是,人说话一般都有目标声音间歇期,因此,较短的目标声音间歇期应该给与保留。因此,设定无目标声音状态的持续时间例如3s,3s后,如果仍然判定为无目标声音,则暂停录音。无目标声音状态计数器在每次判定为有启动录音都归0。
如图4所示,本发明实施例提供的远讲模式录音控制方法包括如下步骤:
S400、录音设备开机;
S401、录制备用数据并保存在缓存中;
S402、获得每一个声音采集单元采集到的当前帧目标声音数据,并根据各当前帧目标声音数据确定当前帧信号的平均信噪比;
S403、判定平均信噪比大于第二判决阈值的第二设定条件是否满足;
S404、当第二设定条件满足时录音;
当其中两个声音信号强度的比值大于第二判决阈值的第二设定条件满足时录音,包括:将各声音采集单元采集的当前帧目标声音数据存储为录音数据,如果缓存中录制有备用数据,则还将备用数据存储为录音数据,并停止步骤S401;
S405、当第二设定条件不满足时,判断第二设定条件从开始不满足的起始帧至当前帧的持续时间是否到达设定沉默时长;
当第二设定条件从开始不满足的起始帧至当前帧的持续时间未到达设定沉默时长时,继续步骤S404录音,否则执行步骤S406暂停录音,包括:停止将各声音采集单元采集的当前帧目标声音数据存储为录音数据,并触发步骤S401执行,将数据录制为备用数据,保存在缓存中。
第二设定条件即为远讲模式判定条件,即当前帧信号的平均信噪比是否大于针对远讲模式设定的信噪比判决阈值,具体确定方法如前,这里不再重复描述。
如果录音设备同时设置了可选在近讲模式和远讲模式,则根据用户的选择,在开机后先判定录音模式,然后根据用户选择的录音模式,进入图3或图4所示的控制流程。
如图5所示,本发明实施例还提供一种可以根据近讲模式控制录音的录音设备,包括至少两个声音采集单元501(5011、5012…501n),还包括:
第一阈值存储单元502,用于存储第一判决阈值,第一判决阈值根据录音设备的录音距离和各声音采集单元之间的间距确定;
录音数据存储单元503,用于存储录音数据;
录音控制单元504,用于从第一阈值存储单元获得第一判决阈值,并在接收到每一个声音采集单元采集到的当前帧目标声音数据,确定每一个当前帧目标声音数据对应的目标声音信号强度,以及当其中两个声音信号强度的比值大于第一判决阈值的第一设定条件满足时,将各声音采集单元采集的当前帧目标声音数据存储到存储单元,当第一设定条件从开始不满足的起始帧至当前帧的持续时间到达设定沉默时长时,停止将各声音采集单元采集的当前帧目标声音数据存储为录音数据。
该录音设备还可以根据设定的参数获得第一判决阈值,则该录音设备进一步还可以包括:
第一判决阈值确定单元505,用于确定第一判决阈值为大于等于Z1~ZI中最小值或小于等于其中最大值的任意值,并将确定的第一判决阈值存储到第一阈值存储单元中,其中Zi为任意两个声音采集单元组合后,第i组声音采集单元对应的最小声强比阈值,Zi=(R+di)2/R2,R为录音设备的最远录音距离,di为第i组声音采集单元中的两个声音采集单元之间的间距;或者用于确定第一判决阈值B'为大于1小于B的值,B为B1~BI的平均值,Bi为任意两个声音采集单元组合后,第i组声音采集单元对应的常规声强比阈值,Bi=(r+di)2/r2,r为录音设备的常规录音距离。
如果该录音设备进一步还可以根据远讲模式控制录音,则还包括:
第二判决阈值存储单元506,用于存储第二判决阈值,第二判决阈值大于1;
模式设置单元507,用于接收用户的录音模式设置指示信号,并输出给录音控制单元,录音控制单元根据接收的录音模式设置指示信号确认当前录音模式为最远录音距离为R的第一模式时,在接收到每一个声音采集单元采集到的当前帧目标声音数据后继续确认第一设定条件是否满足;否则从第二判决阈值存储单元获得第二判决阈值,根据各当前帧目标声音数据确定当前帧信号的平均信噪比,并当平均信噪比大于第二判决阈值的第二设定条件满足时,将各声音采集单元采集的当前帧目标声音数据存储为录音数据,当第二设定条件从开始不满足的起始帧至当前帧的持续时间到达设定沉默时长时,停止将各声音采集单元采集的当前帧目标声音数据存储为录音数据。
如果该录音设备还进一步可以录制备用数据,则还包括:
缓存单元508,用于缓存录制的备用数据,录音控制单元在确定录音设备被启动或者暂停录音后,还用于根据设定的备用时长,将各声音采集单元在当前帧之前的设定备用时长内采集到的目标声音数据作为备用数据存储到缓存单元中,并在启动录音时,将缓存单元中存储的备用数据作为启动前的录音数据转存到录音数据存储单元中。
当然,如果是专用远讲模式录音设备,则可以只包括:至少两个声音采集单元501(5011、5012…501n)、录音数据存储单元503、第二判决阈值存储单元506和录音控制单元504,录音控制单元504根据远讲模式录音控制方法控制录音。专用远讲模式录音设备还进一步可以录制备用数据时,则可以进一步包括缓存单元508。
本发明实施例提出的录音控制方法,改进了目前的声控录音中仅仅采用能量阈值的方法,而是根据近讲和远讲两种类别,分别应用适合的目标声音检测算法。在近讲方式下,采用两个声音采集单元之间的声强比作为是否录音的判决依据;而在远讲方式下,采用信噪比估计目标声音的存在概率,使得录音控制技术在低信噪比下仍然有较好的判断准确性。进一步还提出录制一段时间备用数据的技术,确保不丢失目标声音开始阶段的数据,进一步提高了录音准确性。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。