该项目的原理
主要目标是利用按键盘按键作为副声道产生的声音,以便猜测所键入文本的内容。为此,该算法将包含音频记录的训练集以及在该记录期间键入的相应键作为输入。使用此数据,算法可 了解不同按键的声音是什么,然后尝试仅使用捕获的音频来识别声音。从某种意义上讲,该训练集是针对特定的设置的-键盘,麦克风和二者之间的相对位置。更改这些因素中的任何一个都会使该方法无效。另外,当前的实现可以实时进行预测。
实施中涉及的主要步骤如下:
- 收集培训数据
- 创建预测模型(学习步骤)
- 按键检测
- 预测检测到的按键的按键
收集培训数据
在当前的实现中,击键之间的声音被简单地丢弃。在实际按下之前和之后,我们仅将音频保持在75-100毫秒之内。这有点棘手,因为按键和程序捕获的事件之间似乎存在随机延迟-最有可能涉及硬件和软件因素。
例如,这是在键盘上按字母“ g”的完整音频波形如下所示:
从图中可以看出,在压力峰值之后不久还有一个附加的释放峰值。Keytap只是忽略发布峰值。这里可能有可能提取其他信息,但是为了简单起见,数据被丢弃。最后,此键的训练数据如下所示: