一种敲击麦克风阵列模拟按键操作的方法与流程

文档序号:15685198发布日期:2018-10-16 20:59阅读:177来源:国知局
本发明涉及语音通信
技术领域
,特别涉及一种敲击麦克阵列模拟按键操作的方法。
背景技术
:在会议系统中,一般都是通过遥控器操作来完成用户期望执行的功能,如输出音量调节,左移、右移功能列表等操作,通过遥控器操作,不仅按键功能明确,且操作简单,成本低;但是通过遥控器操作存在如下缺陷:1、当遥控器出现故障时,会影响会议功能的正常使用;2、当有多人需要操作时,传递遥控器不便,影响使用体验。当然,现有技术中也存在有更便利的方式,例如,可以通过触摸屏来实现相关操作,更高级的可以通过语音识别来实现,但是,不管是触摸屏实现还是语音识别实现的成本都比较高,特别是语音识别实现,其需要大量样本训练,开发成本更高。技术实现要素:本发明要解决的技术问题,在于提供一种敲击麦克阵列模拟按键操作的方法,通过该方法来实现通过敲击麦克风完成用户期望执行的功能,从而有效的克服了以往通过遥控器操作所带来的不便。本发明是这样实现的:一种敲击麦克阵列模拟按键操作的方法,所述方法包括如下步骤:步骤s1、设置敲击事件开始标志位以及计时器,并初始化敲击事件开始标志位和计时器;步骤s2、以10ms数据作为基本处理单元,读取麦克风的采集数据;步骤s3、检测读取的采集数据是否满足敲击信号的变化特性,若满足,则进入步骤s4;若不满足,则在数据序列的末尾添加‘0’,并进入步骤s5;步骤s4、计算采集数据的过零率,并根据计算出的过零率判断采集数据是否为敲击信号,且如果是,则在数据序列的末尾添加‘1’;如果否,则在数据序列的末尾添加‘0’;步骤s5、截取出一次完整的敲击事件;步骤s6、根据截取的敲击事件,解析数据序列,并从映射列表中搜索对应的期望操作,且执行该期望操作。进一步地,所述步骤s3具体为:设置满足敲击信号变化特性的基准值d1;将读取的采集数据以每1ms数据中的最大值作为采样点,共计选取10个采样点,并计算出这10个采样点中最大值与最小值之间的差值;同时,将计算出的差值与基准值d1进行比较,且如果差值大于基准值d1,则判定为满足敲击信号的变化特性,并进入步骤s4;如果差值小于等于基准值d1,则判定为不满足敲击信号的变化特性,此时需在数据序列的末尾添加‘0’,并进入步骤s5。更进一步地,所述基准值d1的取值范围为:0.5-0.8。进一步地,所述步骤s4具体为:设置敲击信号的基频值d2;获取采集数据的最大采样值v以及最大采样值出现的时间t,并以时间t为中心,往左获取采样值大于k*v的最小时刻t_left,往右获取采样值大于k*v的最大时刻t_right,其中,k用于决定过零率计算的信号范围,且计算出最小时刻t_left至最大时刻t_right范围内采集数据的过零次数z;同时,计算z/(t_right-t_left)得到频率值,并将得到的频率值与基频值d2进行比较,且如果频率值大于基频值d2,则将采集数据判定为敲击信号,并在数据序列的末尾添加‘1’;如果频率值小于等于基频值d2,则将采集数据判定为非敲击信号,并在数据序列的末尾添加‘0’。更进一步地,所述基频值d2的取值范围为:25-50次/ms。更进一步地,所述k的取值范围为:0.2~0.4。进一步地,所述步骤s5具体为:设置一次完整敲击事件的持续时间t1;当检测到第一个敲击信号时,令敲击事件开始标志位等于1,并开始截取敲击事件,同时,启动计时器开始进行计时;判断计时器的时间是否等于设置的持续时间t1,且如果是,则结束对敲击事件的截取,同时初始化敲击事件开始标志位和计时器,之后进入步骤s6;如果否,则进入步骤s2。更进一步地,所述持续时间t1的取值范围为:4-5s。进一步地,所述步骤s6具体为:制定敲击事件与期望操作的映射列表并进行保存;设置最大时间间隔t2;当截取完一次完整的敲击事件后,开始解析数据序列,且将一次完整的敲击事件解析为2位数d1和d2,具体包括:检测一次完整的敲击事件内是否存在一个相邻敲击信号的时间间隔大于设置的最大时间间隔t2,若是,则以这两个敲击信号之间的时间中点为分割点,将分割点前一段时间的累积敲击次数记为d1,将分割点后一段时间的累积敲击次数记为d2;若否,则将敲击事件内的累积敲击次数记为d1,将d2记为0;在解析完敲击事件后,根据解析出的d1和d2从映射列表中搜索出对应的期望操作,并执行该期望操作;同时,在执行完期望操作后,清除数据序列。更进一步地,所述最大时间间隔t2的取值范围为:0.5-1s。本发明具有如下优点:1、通过简单的麦克风敲击检测来完成用户期望执行的操作,不仅可以克服以往多人操作时需要传递遥控器或者遥控器出现故障所带来的不便,而且具有较好的功能扩展性,操作起来也特别方便;2、通过会议系统本身需要的麦克风来实现期望功能,而无需另外再扩展硬件支持,可极大的降低成本。附图说明下面参照附图结合实施例对本发明作进一步的说明。图1为本发明一种敲击麦克阵列模拟按键操作的方法的执行流程图。具体实施方式具体实施例一:请参照图1所示,本发明一种敲击麦克阵列模拟按键操作的方法的较佳实施例,所述方法包括如下步骤:步骤s1、设置敲击事件开始标志位start以及计时器timer,并初始化敲击事件开始标志位和计时器,即令start=0,timer=0;步骤s2、以10ms数据作为基本处理单元,读取麦克风的采集数据,即每次都仅读取麦克风的10ms数据;由于一般语音的持续时间都大于10ms,而敲击麦克风产生的信号的持续时间小于10ms,所以,采取以10ms数据作为基本处理单元来读取麦克风的采集数据,并分析采集数据。步骤s3、检测读取的采集数据(10ms数据)是否满足敲击信号的变化特性,若满足,则进入步骤s4;若不满足,则在数据序列的末尾添加‘0’,即如果读取的10ms数据不满足敲击信号的变化特性,就在这10ms数据的末尾添加‘0’,以表示这10ms数据内没有敲击信号,并进入步骤s5;由于在敲击麦克风时,采集到的声音幅度都比较大,且信号持续的时间短,由此可知,敲击信号具有信号先快速上升,然后快速减小的特性。基于敲击信号具有信号变化快的特性,可以对采集数据进行初步判断。所述步骤s3具体为:设置满足敲击信号变化特性的基准值d1;将读取的采集数据以每1ms数据中的最大值作为采样点,共计选取10个采样点,并计算出这10个采样点中最大值与最小值之间的差值;同时,将计算出的差值与基准值d1进行比较,且如果差值大于基准值d1,则判定为满足敲击信号的变化特性,并进入步骤s4;如果差值小于等于基准值d1,则判定为不满足敲击信号的变化特性,此时需在数据序列的末尾添加‘0’,并进入步骤s5。在本发明具体实施例一中,所述基准值d1的取值为0.6。由于在具体对数据进行处理时,通常都会对采样点中的最大值和最小值都进行归一化处理,因此,基准值d1的取值也是一个归一化后的数值。步骤s4、计算采集数据的过零率,并根据计算出的过零率判断采集数据是否为敲击信号,且如果是,则在数据序列的末尾添加‘1’,以表示这10ms数据内有敲击信号;如果否,则在数据序列的末尾添加‘0’,以表示这10ms数据内没有敲击信号;因为选取的采集数据比较短(只有10ms数据),可能刚好会读取到语音的开始或者结束信号,而语音的开始或者结束信号也会有较快的变化,因此,需要进一步分析确定信号是否为敲击信号。由于敲击信号一般都有较高的频率,且会频繁穿越0轴,基于此特性,我们可通过计算过零率来进一步确定是否为敲击信号。所述步骤s4具体为:设置敲击信号的基频值d2;获取采集数据的最大采样值v以及最大采样值出现的时间t,并以时间t为中心,往左获取采样值大于k*v的最小时刻t_left,往右获取采样值大于k*v的最大时刻t_right,其中,k用于决定过零率计算的信号范围,且计算出最小时刻t_left至最大时刻t_right范围内采集数据的过零次数z;同时,计算z/(t_right-t_left)得到频率值,并将得到的频率值与基频值d2进行比较,且如果频率值大于基频值d2(说明信号具有较高的频率),则将采集数据判定为敲击信号,并在数据序列的末尾添加‘1’;如果频率值小于等于基频值d2,则将采集数据判定为非敲击信号,并在数据序列的末尾添加‘0’。在本发明具体实施例一中,所述基频值d2的取值为35次/ms。所述k的取值为0.3。步骤s5、截取出一次完整的敲击事件;所述步骤s5具体为:设置一次完整敲击事件的持续时间t1;当检测到第一个敲击信号时,令敲击事件开始标志位等于1,并开始截取敲击事件,同时,启动计时器开始进行计时;在具体实施时,如果敲击事件开始标志位等于0,则说明还未检测到第一个敲击信号,此时就不截取敲击事件;判断计时器的时间是否等于设置的持续时间t1,且如果是,则结束对敲击事件的截取,同时初始化敲击事件开始标志位和计时器,即令敲击事件开始标志位和计时器的值均为0,以准备截取下一次的敲击事件,之后进入步骤s6;如果否,则进入步骤s2,以继续读取麦克风的采集数据。这里需要说明的是:在一次完整的敲击事件截取完成后,还需要继续检测敲击信号,并以检测到的第一个敲击信号来触发开始对一次新的敲击事件的截取,且在经过持续时间t1之后,就结束对一次新的敲击事件的截取。在本发明具体实施例一中,所述持续时间t1的取值为4.5s。步骤s6、根据截取的敲击事件,解析数据序列,并从映射列表中搜索对应的期望操作,且执行该期望操作。所述步骤s6具体为:制定敲击事件与期望操作的映射列表并进行保存;例如,制定的部分映射列表如下:d1d2功能映射11返回12确认13上移21下移22左移23右移31音量增大32音量减小以上仅列举了一些简单的操作,在具体实施时,可根据需要定制更多的会议系统功能,映射列表也可基于需求进行扩展和修改。设置最大时间间隔t2;当截取完一次完整的敲击事件后,开始解析数据序列,且将一次完整的敲击事件解析为2位数d1和d2,具体包括:检测一次完整的敲击事件内是否存在一个相邻敲击信号的时间间隔大于设置的最大时间间隔t2,若是,则以这两个敲击信号之间的时间中点为分割点,将分割点前一段时间的累积敲击次数记为d1,将分割点后一段时间的累积敲击次数记为d2;若否,则将敲击事件内的累积敲击次数记为d1,将d2记为0;当然,在具体实施时,如果在一个完整的敲击事件内出现了两个以上相邻敲击信号的时间间隔大于设置的最大时间间隔t2,则可以将该敲击事件判断为无效事件;由于在具体实施时,数据序列中的‘1’表示敲击信号,‘0’表示非敲击信号,且每次均以10ms数据作为基本处理单元,因此,在计算相邻敲击信号的时间间隔时,只需要将数据序列中连续出现的‘0’的个数乘以10ms即可得出,例如,在数据序列中连续出现了80个‘0’,那么,相邻敲击信号的时间间隔即为:80*10ms=0.8s。在解析完敲击事件后,根据解析出的d1和d2从映射列表中搜索出对应的期望操作,并执行该期望操作;同时,在执行完期望操作后,清除数据序列。例如,根据以上制定的部分映射列表,当解析出的d1d2为31时,就执行音量增大操作。在本发明具体实施例一中,所述最大时间间隔t2的取值为0.8s。以上步骤s1-步骤s6所描述的就是实现某一个模拟按键操作的流程,在具体实施时,需要循环执行上述步骤s1-步骤s6,以实现各种不同的模拟按键操作。具体实施例二:请参照图1所示,与具体实施例一不同的是,在具体实施例二中,所述基准值d1的取值为0.5;所述基频值d2的取值为25次/ms,所述k的取值为0.2;所述持续时间t1的取值为4s;所述最大时间间隔t2的取值为0.5s。具体实施例三:请参照图1所示,与具体实施例一不同的是,在具体实施例三中,所述基准值d1的取值为0.8;所述基频值d2的取值为50次/ms,所述k的取值为0.4;所述持续时间t1的取值为5s;所述最大时间间隔t2的取值为1s。综上所述,本发明具有如下优点:1、通过简单的麦克风敲击检测来完成用户期望执行的操作,不仅可以克服以往多人操作时需要传递遥控器或者遥控器出现故障所带来的不便,而且具有较好的功能扩展性,操作起来也特别方便;2、通过会议系统本身需要的麦克风来实现期望功能,而无需另外再扩展硬件支持,可极大的降低成本。虽然以上描述了本发明的具体实施方式,但是熟悉本
技术领域
的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1