发明名称 一种基于声音的手势识别方法
摘要 本发明公开了一种基于声音的手势识别方法,利用常见的麦克风与音响,作为接收信号与发射信号的硬件支持,音响产生人耳不易察觉的高频音,由麦克风接收来自肢体运动中返弹回来的音频信号,借助返回音频信号的物理现象多普勒效应,进行频谱分析,将获取的肢体动作的信息定义为相应的一些逻辑信号,并借助这些逻辑信号控制计算机的很多操作。本发明提供的技术以及相关的设计,在计算机控制方面提供了一种全新的人机交互方式,能够给计算机用户带来有趣的用户体验与交互感受。
申请公布号 CN103885744B 申请公布日期 2017.04.19
申请号 CN201310206928.0 申请日期 2013.05.30
申请人 美声克(成都)科技有限公司 发明人 刘鑫;刘西耀;邹长俊;刘东权
分类号 G06F3/16(2006.01)I;G06F3/0487(2013.01)I 主分类号 G06F3/16(2006.01)I
代理机构 代理人
主权项 一种基于声音的手势识别方法,包括以下步骤:a)处理由麦克风接收到返回的音频信号,利用带通滤波器过滤掉不关心的频带的信号,使用窗口函数减少频谱泄露的影响,采取快速傅里叶变换获得频域信号,并处理为分贝数据存储在采样队列Queue1当中;b)从采样队列Queue1中获取频谱分析窗口队列w<sub>1</sub>,计算公式为:<img file="FDA0001216006030000011.GIF" wi="1261" he="71" />其中:Queue1是由步骤a)获得的采样队列;f<sub>0</sub>是音频信号的中心频率;f<sub>shift</sub>是频率变化的最大值;f<sub>min</sub>是频谱信号最小分辨率;x表示窗口队列w1中的离散信号序号;c)从频谱分析窗口队列中获取最大频率偏移f<sub>shift</sub>的左均值W<sub>left</sub>和右均值W<sub>right</sub>:<img file="FDA0001216006030000012.GIF" wi="758" he="222" /><img file="FDA0001216006030000013.GIF" wi="718" he="223" />d)模拟定义逻辑的周期T<sub>simulate</sub>,如果T<sub>simulate</sub>过长,用户会有明显的延迟感,会使得人机交互感很差,但是T<sub>simulate</sub>过短,采样数据不能及时更新,会产生大量的误操作;将由于信号采样频率与采集信号处理分析频率之间的差异造成必然误差率定义为必然误差率R<sub>error</sub>,T<sub>simulate</sub>的表达式为:<maths num="0001"><math><![CDATA[<mrow><msub><mi>T</mi><mrow><mi>s</mi><mi>i</mi><mi>m</mi><mi>u</mi><mi>l</mi><mi>a</mi><mi>t</mi><mi>e</mi></mrow></msub><mo>=</mo><mfrac><msub><mi>T</mi><mn>0</mn></msub><mrow><mn>1</mn><mo>+</mo><msub><mi>R</mi><mrow><mi>e</mi><mi>r</mi><mi>r</mi><mi>o</mi><mi>r</mi></mrow></msub></mrow></mfrac></mrow>]]></math><img file="FDA0001216006030000014.GIF" wi="414" he="150" /></maths>其中:T<sub>0</sub>是采样周期;R<sub>error</sub>是必然误差率;e)定义一个受中心频率f<sub>0</sub>的能量E<sub>peak</sub>和权值α影响的阈值T<sub>Degree</sub>,计算单位T<sub>simulate</sub>周期里,左均值W<sub>left</sub>和右均值W<sub>right</sub>的变化率,并与阈值T<sub>Degree</sub>进行比较:<img file="FDA0001216006030000021.GIF" wi="604" he="135" />其中:α是权值,其取值为0以上2以下的实数;E<sub>peak</sub>是中心频率f<sub>0</sub>的能量;<maths num="0002"><math><![CDATA[<mrow><msub><mi>R</mi><mrow><mi>l</mi><mi>e</mi><mi>f</mi><mi>t</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>&Delta;W</mi><mrow><mi>l</mi><mi>e</mi><mi>f</mi><mi>t</mi></mrow></msub></mrow><msub><mi>T</mi><mn>0</mn></msub></mfrac></mrow>]]></math><img file="FDA0001216006030000022.GIF" wi="267" he="142" /></maths><maths num="0003"><math><![CDATA[<mrow><msub><mi>R</mi><mrow><mi>r</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>&Delta;W</mi><mrow><mi>r</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi></mrow></msub></mrow><msub><mi>T</mi><mn>0</mn></msub></mfrac></mrow>]]></math><img file="FDA0001216006030000023.GIF" wi="309" he="134" /></maths>其中,R<sub>left</sub>表示手势向左运动的频率变化率;R<sub>right</sub>表示手势向右运动的频率变化率;比较过程:R<sub>left</sub>>T<sub>Degree</sub>则发生的是一个远离麦克风的动作,记录消息为L<sub>event</sub>到消息队列Queue<sub>event</sub>中;R<sub>right</sub>>T<sub>Degree</sub>则发生的是一个靠近麦克风的动作,记录消息为R<sub>event</sub>到消息队列Queue<sub>event</sub>中;R<sub>left</sub>>T<sub>Degree</sub>and R<sub>right</sub>>T<sub>Degree</sub>则发生的是一个复合动作,记录消息为D<sub>event</sub>到消息队列Queue<sub>event</sub>中;所述复合动作指翻转手势,或者双手前后运动;f)设定等待时间T<sub>delay</sub>,在等待时间T<sub>delay</sub>内,如果产生消息,则记录消息到消息队列Queue<sub>event</sub>中,定时器归位,重新等待T<sub>delay</sub>时间;如果没有产生消息,则对消息队列Queue<sub>event</sub>进行一次消息处理分析,并清空队列;g)某个T<sub>delay</sub>时间内没有定时器归位操作,对消息队列Queue<sub>event</sub>处理分析,获得消息逻辑,并对该消息逻辑映射的操作进行模拟,实现控制计算机,完成人机交互的目的。
地址 610041 四川省成都市高新区创业路16号火炬大厦A601