一种基于多维声波特征的键击识别方法与流程

文档序号:14736083发布日期:2018-06-19 20:31阅读:144来源:国知局
一种基于多维声波特征的键击识别方法与流程

本发明涉及键击识别技术领域,尤其涉及一种基于多维声波特征的键击识别方法。



背景技术:

目前,键击识别的发展如火如荼。键击识别指的是不管用户使用的键盘的格局与模式,都可以通过某种间接的手段而非直接的观察识别出用户在键盘上通过敲击的进行的输入的内容。从应用和用户生活便利性的角度来说,键击识别具有很广泛的应用和巨大的潜力。不可否认,大部分人对传统的物理键盘的熟悉程度和接收程度是新型键盘所无法取代的。并且,传统的物理键盘的一些内在的一些不可改变的属性仍使其具有一定的市场价值。但是,传统的这种人机交互方式终究要被时代逐步改进,甚至淘汰。笨重、易于破损很明显的阻碍了其在市场,尤其是移动市场的发展。而这些都会促进人们加快脚步进一步研究虚拟键盘的开发。同时,与目前的移动设备进行交互也存在着问题。目前的移动技术很发达。微型电路以及显示促使移动设备变得越来越小,小到了邮票大小的程度,但问题是人类的手和手指并没有相应的也变小。而且移动设备的小型化也不可避免的带来了性能上的这折中与牺牲。

以上这些都在说明将键击识别应用于虚拟键盘的开发是有很大的现实意义和应用场景的。虚拟键盘可以在保证保留传统物理键盘内在而优越的性能的同时去掉了其笨重的特点。而我们在构建虚拟键盘时,需要考虑键盘的格局、键盘上键的个数、进行输入的手指的个数、手指和键之间的对应关系、手指和键的转换时间、用户对键盘的熟悉程度、反馈机制、预测的带宽和视觉实现等参数化的影响因素。

键击识别领域主流的三种技术分别是指纹匹配(FingerPrinting),测距(Ranging),图像分析(Vision Analysis)。指纹匹配指的是特征匹配。一些无形的信号,比如声波信号、WiFi信号、电磁波信号、红外线信号、现有的移动设备产生的振动信号都可以用来获取特定敲击时间的模式从而产生具有可区分性的特征,因为这些信号本身具有不同的特点。提取的特征及指纹与预先训练好的训练集坐标进行匹配从而获取对应的键。统计学、信号处理技术、机器学习技术等相关技术常应用在这里。测距主要将通过相邻键之间的时间间隔或者一个键对于不同接收端的时间间隔而测量到的物理测量结果匹配到特定的几何学参数上,比如相对距离,相对方向。图像分析是利用光信号的发射、反射、散射进行键击识别的一种技术。键击识别领域主流的优化手段是键击探测之前的去噪处理、之后的基于用户反馈的增长式学习模式,以字典和语法模型为基础的错误更改、利用多个麦克风来提高空间多样性等都是常用的优化手段。



技术实现要素:

本发明的目的在于通过一种基于多维声波特征的键击识别方法,来解决以上背景技术部分提到的问题。

为达此目的,本发明采用以下技术方案:

一种基于多维声波特征的键击识别方法,其包括如下步骤:

S101、利用智能手机的麦克风录取周围用户在虚拟键盘上的敲击输入事件;

S102、根据麦克风录取到的声音信号,利用基于声波的指纹匹配的键击识别方法对录取到的键击进行匹配、识别即打上类标;

S103、针对麦克风录取到的声音信号,利用基于键内时间信息的方法对键击进行无监督聚类,交叉验证输出对应的键的侯选集;

S104、根据键间隔时间信息对键击识别结果进行排除和更改;

S105、将最终的键击识别结果以可视化的形式反馈给用户。

特别地,所述步骤S105还包括:用户根据真实的输入意图判断所述键击识别结果是否正确,从而更新类标,并依据更新的类标更新训练集、训练分类器。

特别地,所述步骤S101包括:利用智能手机的两个内嵌麦克风录取周围用户在虚拟键盘上的敲击输入事件。

特别地,所述步骤S102中基于声波的指纹匹配的键击识别方法包括:基于麦克风录取的声音信号的能量在滑动窗口内累加获得的能量和和预设能量阈值进行比较来探测键击的开始;所述滑动窗口内累加的特征包括声音信号时域内的原始信号、经过FFT(离散傅氏变换的快速算法)处理后的频域信号。

特别地,所述基于麦克风录取的声音信号的能量在滑动窗口内累加获得的能量和和预设能量阈值进行比较来探测键击的开始,包括:预先根据键击的声波特征提取出时域内的特征即参考特征,将捕获到的信号在以智能手机采样频率相符合并满足Nyquist定律的时间窗口内,与参考特征进行cross-correlation(互相关),对cross-correlation的值的进行处理,根据处理结果探测键击的开始。其中,cross-correlation算法是信号处理的基本操作之一,两组信号x(n)和y(n)的互相关运算,相当于将x(n)保持不动,y(n)左移m个抽样点后,两个序列逐点相乘的结果。

特别地,所述步骤S102包括:在探测到键击开始之后,对声波特征进行分离和提取;在声波特征提取之后,生成训练集,并对新捕获并分离的特征利用分类器进行分类、匹配;其中,声波信号的声波特征包括振幅谱密度(Amplitude Spectrum Density,ASD);所述分类器采用K-NN分类器。其中,信号的ASD特征是指:假设采样的离散信号序列为a(t)(t=0,1,2,…,T),则经过FFT运算后的值FFT(a(t))被称为信号的ASD特征。

特别地,所述步骤S102包括:在探测键击的开始之前,滤去智能手机的触屏键盘上由于用户在触屏上的操作以及周围人的说话声或其噪音造成的麦克风感知到的声波震动。

特别地,所述步骤S102包括:对窗口内的原始声波信号利用低通滤波计算器振幅包络之后,计算其振幅包络的斜率值,将得到的斜率值与预设值进行比较,判断是否是人的噪音,若不是,则进行键击探测。

特别地,所述步骤S103中利用基于键内时间信息的方法对键击进行无监督聚类,交叉验证输出对应的键的侯选集,包括:麦克风录取到的声音信号对应一组基于到达时间差(Time Difference of Arrival,TDoA)的双曲线,一组基于TDoA的双曲线对应一次敲击输入事件,一次敲击事件产生的TDoA的测量结果将在对应的键盘上产生若干对应键即一个候选集;以能力差形成的圆与TDoA形成的双曲线相交范围对应的键为候选集,并对每个候选集集合中的每个键击打上相应的键的类标。

本发明提出的基于多维声波特征的键击识别方法利用智能手机的麦克风录取周围用户在虚拟键盘上的敲击输入事件;根据麦克风录取到的声音信号,利用基于声波的指纹匹配的键击识别方法对录取到的键击进行匹配、识别即打上类标;针对麦克风录取到的声音信号,利用基于键内时间信息的方法对键击进行无监督聚类,交叉验证输出对应的键的侯选集;根据键间隔时间信息对键击识别结果进行排除和更改;将最终的键击识别结果以可视化的形式反馈给用户。本发明识别率高,识别速度快,错误率低。

附图说明

图1为本发明提供的基于多维声波特征的键击识别方法流程图;

图2为本发明提供的用户敲击键盘产生的键击识别的一般特征示意图;

图3为本发明提供的信号互相关的值示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容,除非另有定义,本文所使用的所有技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例,不是旨在于限制本发明。

请参照图1所示,图1为本发明提供的基于多维声波特征的键击识别方法流程图。

本实施例中基于多维声波特征的键击识别方法具体包括如下步骤:

S101、利用智能手机的麦克风录取周围用户在虚拟键盘上的敲击输入事件。

S102、根据麦克风录取到的声音信号,利用基于声波的指纹匹配的键击识别方法对录取到的键击进行匹配、识别即打上类标。

S103、针对麦克风录取到的声音信号,利用基于键内时间信息的方法对键击进行无监督聚类,交叉验证输出对应的键的侯选集。

S104、根据键间隔时间信息对键击识别结果进行排除和更改。

S105、将最终的键击识别结果以可视化的形式反馈给用户。

具体的,基于声波的指纹匹配的键击识别方法主要可以分为以下两个步骤:键击探测和键匹配。键击探测前的特征定义、预先训练、去噪以及匹配之后的特征提取、基于字典的容错、基于反馈的增长式学习等都是辅助的优化手段。

键击本身产生的声波信号都有其固定而内在的开始模式。不同方法对其共有模式处理和利用的手段不同导致了不同的识别效果。键击声波信号的特征对于保证计算复杂度的同时,从原始的声音信号流中准确定位到键击的起始点以及对键击进行提取分离具有重要意义。所以,声波键击信号的基本特征作为基础信息对后面的步骤影响较大。

图2展示了用户敲击键盘产生的键击识别的一般特征,图中横轴为时间序列帧,纵轴为振幅,201为按压峰,202为释放峰。典型的键击声波在时间域内由一个Press Peak(也叫Push Peak)和一盒Release Peak构成,分别对应着用户按下键的瞬间和松开键的瞬间,两种中间有一段相对安静的时间间隔。一般而言,从Press Peak到Release Peak的间隔时间大约是100ms。当将Press Peak放大来看,其可进一步分为Touch Peak和Hit Peak,分别对应着用户的手指触摸到键和之后的手指联合着键一起撞击键盘的支持平面所产生声波上的震动。Touch Peak和Hit Peak之间也有一段安静的时间间隔。

在本实施例中基于麦克风录取的声音信号的能量在滑动窗口内累加获得的能量和和预设能量阈值进行比较来探测键击的开始;所述滑动窗口内累加的特征包括声音信号时域内的原始信号、经过FFT(离散傅氏变换的快速算法)处理后的频域信号。但是根据本发明在android开发平台上的初步对比实验的结果的启发,觉得利用cross-correlation来进行键击识别将获得更好的性能。具体为,预先根据键击的声波特征提取出时域内的特征即参考特征(Reference Signal),将捕获到的信号在以智能手机采样频率相符合并满足Nyquist定律的时间窗口内,一般为2240帧,与参考特征进行cross-correlation(互相关),对cross-correlation的值的进行处理,根据处理结果探测键击的开始。Nyquist 定律即指抽样定理,是工程师在模拟信号的数字化中遵循的原则。其中,cross-correlation算法是信号处理的基本操作之一,两组信号x(n)和y(n)的互相关运算,相当于将x(n)保持不动,y(n)左移m个抽样点后,两个序列逐点相乘的结果。如图3所示,本图为两个麦克风接收到的信号进行自相关运算的结果,在t=1020处出现波峰,意味着两个信号的TDoA值为1020。

在探测到键击开始之后,对声波特征进行分离和提取;在声波特征提取之后,生成训练集,并对新捕获并分离的特征利用分类器进行分类、匹配;其中,声波信号键击识别领域内声波信号的主流声波特征包括振幅谱密度(Amplitude Spectrum Density,ASD);所述分类器采用K-NN分类器。

那么基于不同特征的特点和应用范围提取怎么样的特征会对特征分类和提取产生较大的影响。ASD就是对原始信号进行FFT(离散傅氏变换的快速算法)处理,其由时域信号转换为频域信号。当然,提前的去噪处理如低通滤波和之后再频率范围选择优化都会在FFT的基础上对整体的准确识别率产生提高。针对分类器的选择,本发明在进行了初步的交叉对比试验之后,将选取以欧几里得距离为相似度测量的标准,采用K-NN分类器(K-NN分类器是电子信息分类器算法的一种)进行分类。

在本实施例中键击探测之前的去噪处理、之后的基于用户反馈的增长式学习模式,以字典和语法模型为基础的错误更改、利用多个麦克风来提高空间多样性等都是本发明采用的优化手段。首先,在探测键击的开始之前,滤去智能手机的触屏键盘上由于用户在触屏上的操作以及周围人的说话声或其噪音造成的麦克风感知到的声波震动。具体为,采用传感器融合技术滤去针对android的触屏键盘上由于用户在触屏上的操作以及周围人的说话声或其他明显的噪音等造成的麦克风感知到的声波震动。这种传感器融合技术利用了现有的智能手机上的优良硬件基础,同时,大大降低了系统的计算负担。而基于对人的声音特征(Human Speech)以及键击的声音特征,在探测之前,对窗口内的原始声波信号利用低通滤波计算器振幅包络之后,计算其振幅包络的斜率值,将得到的斜率值与预设值进行比较,判断是否是人的噪音,若不是,则进行键击探测。

本发明也将采用基于用户反馈的增长式学习来进一步更新训练集的类标从而提高整体的识别率。

麦克风录取到的声音信号对应一组基于TDoA(Time Difference of Arrival,到达时间差)的双曲线,一组基于TDoA的双曲线对应一次敲击输入事件,一次敲击事件产生的TDoA的测量结果将在对应的键盘上产生若干对应键即一个候选集;以能力差形成的圆与TDoA形成的双曲线相交范围对应的键为候选集,并对每个候选集集合中的每个键击打上相应的键的类标。具体的,键内时间信息值得是由声源产生的震动声波信号达到多个接收端的时间信息。由于本实施例的实现环境是一部android智能手机,故接收端是两个android智能手机的接收端。利用多组双接收端将会产生更多组的基于TDoA的双曲线从而得到更好的定位结果。然后由于本发明的硬件实现环境,所以只有两个接收端,故只有一组基于TDoA的双曲线。由于只有一组基于TDoA的双曲线,有一次敲击事件产生的TDoA的测量结果将在对应的键盘上产生多个对应键,即一个候选集。同时,由于测量误差的存在,这个候选集将会扩大。以能力差形成的圆与TDoA形成的双曲线相交范围(由于误差的存在,形成的是一个相较区域,而非相交点)对应的键为候选集,并对每个候选集集合中的每个键击打上相应的键的类标。

最后,本发明利用键间隔时间进行优化。相关研究证实了键间隔时间以造成信息泄露的方式形成安全隐患。即相邻键击的时间间隔可以造成1.2字节的信息泄露,其背后的原理在于不同键之间的时间间隔与其在键盘上的位置,用户用于输入的手、手指、收入模式有一定的关联关系。

值得一提的是,根据键击声波时间域内的基本特征,在进行初步对比实验的基础上利用cross-correlation来进行键击探测,其中的参考特征是提前录制好的,存储在android智能手机存储卡上。基于捕获到的窗口内的声波信号与参考信号做出cross-correlation的结果上进行分析、判断出是否出现键击。所以,关键就在对cross-correlation的结果进行的分析。通过计算峰值附近窗口大小内的L2-norm的值与峰值前若干帧之前的被认为只含有噪音的点的窗口大小内的L2-norm的值就可以判断出是否存在键击。如果前者与后者的比值超过了一个预订的阈值,那么就认为是一次键击。

计算声源信号到达本系统中用到的android智能手机的两个麦克风的TDoA的具体的方法为GCC-PHAT。由于实验中使用的android智能手机有2个麦克风,不失一般性地,以顶部的麦克风接收到的声波信号作为参考信号(ReferenceSignal)。而滑动信号(Sliding Signal)是底部麦克风捕捉到的数据。正则化的cross-correlation(互相关)的计算如下面的公式所示:

其中,x1(t)为麦克风1采样的信号序列,为其平均值,x2(t)为麦克风1采样的信号序列,为其平均值,t0为两组信号的时延,CC(t0)为当前时延下两组信号的互相关值。在计算出的结果中,若CC(t0)在t0=tcc处产生峰值,则令tcc为两组信号TDoA的值,即:

然后,本发明利用能量差结合TDoA来进行定位。

假设敲击键盘产生的源信号是s(t),t代表时间,考虑到声波传递的平方反比定理,第i个麦克风接收到信号可以记作:

其中,di代表第i个麦克风与信号源的距离,∈i(t)代表背景噪声。

假设键盘敲击事件在时间窗口[0,W]内均有信号产生,则第i个麦克风在此期间接收到的能量可表达为:

其中,第二个等号是将公式(3)带入的结果。

考虑只有两个麦克风的情况,很容易得到:

其中,Ei(i=1,2)的定义见公式(4),di代表第i个麦克风与信号源的距离,是均值为0的随机变量。

假设被敲击的键位的坐标是(x,y),两个麦克风的坐标分别为(x1,y1)和(x2,y2)。恨据di的定义,可得到:

将公式(6)于(5)结合进行运算,可以得到:

其中,各符号的定义见上文。

根据公式(2),两组信号的TDoA为tcc,即:

其中,c代表声音在空气中传播的速度。

在实际计算时建立的空间坐标系中,麦克风的位置由人为摆放,即(x1,y1)和(x2,y2)已知,需求解(x,y),则公式(7)和公式(8)代表的两组曲线的交点位置即为用户所敲击的按键。

基于上述两个主要步骤的结合,并考虑到进行TDOA的计算和能量差的计算时存在的测量误差,对于一个特定的键,可以得到理想的TDoA的值和能量差的值的可能的取值范围。这样,在接收到一个由特定声源产生的声波信号的时候,将其与这些计算好的理论值进行比较选择最有可能的结果的键作为输出。

以上结果显示,键击之间的延时是可以造成一定程度的信息泄露以来推测用户的输入。在本发明中,假定键击间隔延时服从高斯分布,并采用隐马尔科夫模型和n-Viterbi算法来缩小候选集的范围从而提高本发明的识别性能。

以上结果显示,键击之间的延时是可以造成一定程度的信息泄露以来推测用户的输入。在本发明中,假定键击间隔延时服从高斯分布,并采用隐马尔科夫模型和n-Viterbi算法来缩小候选集的范围从而提高本发明的识别性能。

本领域普通技术人员可以理解实现上述实施例中的全部部分是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1