В открытом доступе опубликованы инструменты для распознавания текста по звуку клавиатуры
Разработчик под псевдонимом ggerganov опубликовал на GitHub набор программных инструментов командной строки и графического интерфейса пользователя (GUI) для захвата и анализа аудиоданных. Самыми интересными из них являются keytap и keytap2.
Инструмент keytap позволяет восстанавливать набираемый на клавиатуре текст по звукам, издаваемым кнопками клавиатуры. Инструмент был представлен еще два года назад и имеет существенный недостаток - до того, как начать использовать keytap, исследователю сначала нужно обучить его с помощью специально собранного набора данных.
В набор данных входит аудиозапись нажатий на клавиатуре с указанием соответствующих клавиш. На базе этих данных алгоритм keytap изучает звук различных клавиш, а затем пытается определять нажатые клавиши только по записанному звуку. Однако, как отметил ggerganov, во время сбора данных для обучения алгоритма должны использоваться одни и те же клавиатура и микрофон, а расстояние между ними не должно меняться, в противном случае все обучение будет неэффективным. Кроме того, keytap не позволяет распознавать нажатия по звуку в реальном времени.
Тем не менее, в среду, 16 декабря, разработчик опубликовал инструмент keytap2 с улучшенным функционалом. Перед началом его использования исследователю больше не нужно собирать набор данных для обучения.
"Алгоритм проводит кластерный анализ обнаруженных нажатий клавиш, основываясь на схожести их звуков, а затем использует статистические данные о частоте N-грамм букв в предполагаемом языке, на котором написан текст (например, английском). То есть, что необходимо заранее знать язык текста, но это намного меньшее требование по сравнению с первой версией (keytap - ред.). Кроме того, для успешного статистического анализа необходимо достаточное количество записанных образцов", - сообщил ggerganov.
Узнать подробности о реализации keytap2 можно здесь.
N-грамма - последовательность из n элементов. С семантической точки зрения, это может быть последовательность звуков, слогов, слов или букв. Последовательность из двух последовательных элементов часто называют биграмма, а из трех - триграмма. Не менее четырех и выше элементов обозначаются как N-грамма, N меняется на количество последовательных элементов.