Понаблюдайте за тем, как выбирают арбуз, и вы увидите целый ритуал: поднять, постучать, прислушаться, нахмуриться, повторить. Это кажется народной приметой. Но это не так. Стук — это импульс, арбуз — это резонирующее тело, а возвращающийся звук кодирует состояние того, что находится внутри. Проблема была не в физике, а в том, что нетренированное ухо каждый раз по-своему понимает, что значит «глухой звук».

У микрофона телефона такой проблемы нет.

Физика в двух числах

Постучите по фрукту, и он издаст короткий звук — затухающие колебания длительностью в несколько десятков миллисекунд, которые называют затухающим отзвуком. Спелость фрукта определяют две характеристики этого отзвука:

Обнаружить момент удара, выделить затухающий отзвук, получить его спектр, извлечь эти две характеристики. Сверхчувствительный микрофон для этого не требуется — и тут мы переходим к тому, что действительно сложно.

Почему «умный» звук в вашем телефоне — главный враг

Каждый телефон поставляется с аудиосистемой, настроенной для звонков: автоматической регулировкой усиления, шумоподавлением и эхоподавлением. Все три функции катастрофичны для измерений. Регулировка усиления меняет уровни прямо во время записи, а шумоподавление специально разработано для удаления коротких неречевых импульсов — а это как раз то, чем является стук.

Поэтому тест постукиванием записывает звук через необработанный аудиоканал платформы: чистые семплы с частотой 48 kHz, без улучшений и автоусиления. Это самое важное архитектурное решение во всей этой функции, хотя в интерфейсе оно никак не заметно.

Почему эти характеристики одинаковы для разных телефонов: резонансная частота — это свойство самого фрукта, а не микрофона. Разные телефоны запишут один и тот же стук с разной громкостью и разным тембром, но пиковая частота и скорость затухания останутся прежними. Расчет только на такие относительные параметры, устойчивые к внешнему воздействию, позволяет сравнивать показания разных устройств без индивидуальной калибровки.

От двух чисел к вердикту — честная версия

Об этом обычно умалчивают на страницах продуктов. Характеристики реальны, физика доказана, но для вердикта вроде «спелый с вероятностью 85%» требуется классификатор. А классификатор хорош лишь настолько, насколько хороши размеченные фрукты, на которых его обучали. Лабораторные наборы данных малы, выращены в одном климате и в один сезон. Модель, обученная на них, просто опозорится в вашем супермаркете.

Поэтому система построена на другом расчете: каждое сканирование должно стать размеченным образцом. Вы стучите по дыне в магазине. Позже вы разрезаете ее дома — и теперь знаете правду. Приложение позволяет задним числом добавить к измерению эту фактическую оценку: спелая, недозрелая, перезрелая, а также то, какой она оказалась на вкус. Постукивание заняло три секунды, добавление оценки — еще одно нажатие, но вместе они превращаются в обучающий пример реального фрукта из реального магазина, записанный на реальный телефон.

Каждое измерение сохраняется в карточке объекта, к которому оно относится — к этой конкретной дыне в вашем каталоге, — поэтому история фрукта, по которому постучали во вторник, а разрезали в субботу, остается связанной. Эта обратная связь, охватывающая множество пользователей, фруктов и моделей телефонов, и есть тот набор данных, который невозможно собрать в лаборатории. Классификатор улучшается именно потому, что люди пользуются тестом постукивания, а не заранее.

Не только фрукты: тот же стук, другие материалы

У теста постукиванием есть аналог, предназначенный для материалов, а не для продуктов: постучите по столешнице, стеновой панели или непонятной «деревянной» поверхности, и тот же анализ затухающего отзвука отличит массив от шпона, плотный материал от полого. Цельная древесина, МДФ, камень и полый гипсокартон звучат по-разному именно в тех параметрах, которые оценивает тест для фруктов, — резонанс и затухание. Один физический принцип, две совершенно разные задачи в магазине.

Попробуйте по-честному

Если вы решите попробовать тест постукиванием сегодня, относитесь к нему как к инструменту, а не как к оракулу: стучите в одно и то же место, уверенно ударяйте костяшкой пальца и — главное — добавляйте оценку к фрукту после того, как разрежете его. Вы не просто проверяете дыню, вы обучаете алгоритм проверки.

Чтобы узнать больше о том, что еще могут измерять датчики телефона помимо стука, загляните в обзор инструментов.