71% вердиктов «поломка» объясняются не состоянием моторов и не микрофонами: модель реагирует на тишину и шум в записи.
Внутри одного уровня громкости iPhone и Tecno «ломают» двигатель одинаково охотно; между тихими и громкими записями разрыв двукратный.
Треть входного потока это записи, где тишины больше 70%, и именно они собирают самые уверенные вердикты о поломке.
Я делаю сервис «Автоухо»: бесплатный сервис предварительной диагностики двигателя по звуку. Человек записывает 15 секунд работы мотора на телефон, нейросеть называет вероятную зону неисправности и список возможных причин. Публичная бета, за месяц набралось 1066 диагнозов.
В выходные посмотрел на распределение вердиктов и напрягся. За две недели 71% «поломка» и только 14% «норма». Либо приходят исключительно владельцы умирающих моторов, либо модель что-то делает не так. Первая гипотеза была про железо: у дешёвых телефонов хуже микрофоны, модель принимает артефакты записи за стук. Я проверил на всех записях, и гипотеза подтвердилась ровно наполовину, причём вообще не там. Марка телефона почти ни при чём. Модель реагировала на шум и тишину.
Как мерил
Взял все 1066 записей из прода: реальные телефонные загрузки за 9 июля — 9 августа 2026. Каждую декодировал ffmpeg в моно 16 кГц float32 и по кадрам в 512 отсчётов посчитал признаки, без участия какой-либо модели:
громкость: RMS всей записи в dBFS;
пик;
клиппинг: доля отсчётов выше 0.98;
шумовой пол: 10-й перцентиль покадровых RMS;
разброс сигнал/шум: 90-й перцентиль минус 10-й, в дБ;
спектральная плоскость: отношение среднего геометрического к среднему арифметическому спектра мощности, то есть насколько звук похож на шум;
доля энергии выше 4 кГц;
доля тишины: кадры тише −50 dBFS;
длительность.
Затем сравнил признаки между записями, которым модель поставила «поломку», и теми, где она сказала «норма».
AUC. Здесь это вероятность того, что у случайно взятой «поломки» признак выше, чем у случайно взятой «нормы». 0.5 означает, что признак ничего не различает; чем дальше от 0.5 в любую сторону, тем сильнее связь.
Что различает «поломку» и «норму»
признак | медиана: «поломка» / «норма» | AUC |
|---|---|---|
громкость | −33.7 dB / −24.3 dB | 0.28 |
шумовой пол | −56.9 dB / −31.5 dB | 0.30 |
доля тишины | 43% / 1% | 0.69 |
длительность | 24.7 с / 16.0 с | 0.64 |
доля выше 4 кГц | 8% / 3% | 0.65 |
разброс сигнал/шум | 14.5 дБ / 6.7 дБ | 0.63 |
Типичная «поломка» на 9 дБ тише типичной «нормы», а тишина в такой записи занимает 43% времени против 1%.
А что с телефонами? Разбил записи на квартили по громкости внутри каждого производителя и посчитал долю «поломки» в каждом. Q1 — самые тихие записи, Q4 — самые громкие:
вендор | «поломка» по квартилям, Q1 → Q4 |
|---|---|
Tecno | 86% → 94% → 83% → 47% |
Samsung | 83% → 83% → 55% → 44% |
Apple | 83% → 74% → 64% → 51% |
Infinix | 75% → 86% → 80% → 70% |
прочие | 78% → 73% → 65% → 45% |
Внутри квартиля вендоры почти не отличаются: тихая запись с iPhone так же охотно «ломает» двигатель, как и тихая запись с Tecno. Зато между квартилями разрыв двукратный — громкость записи меняет вердикт сильнее, чем марка телефона.
Почему сначала казалось, что дело в марке
Потому что владельцы разных телефонов пишут по-разному. Вот медианы по вендорам:
вендор (записей) | громкость / доля тишины | «поломка» |
|---|---|---|
Apple (116) | −24.5 dB / 0.00 | 64% |
Realme (82) | −32.1 dB / 0.06 | 70% |
Samsung (135) | −32.3 dB / 0.29 | 67% |
Tecno (129) | −30.0 dB / 0.47 | 76% |
Infinix (55) | −32.7 dB / 0.74 | 78% |
Выглядит вроде правильно: чем «бюджетнее» вендор, тем больше «поломок». Но при этом медианная запись с Infinix на три четверти состоит из тишины, у Apple тишины нет совсем. Непонятно почему, но факт.
Калибровка: как выглядит «хорошая» запись
Чтобы понять, насколько живой корпус далёк от того, что модель должна слышать, я прогнал те же признаки по двенадцати эталонным записям. У эталонов медианная громкость −17.8 dB, доля тишины 0.00. У живых записей: −30.6 dB, 26% тишины, шумовой пол −54.5 dB. Пользователи пишут на 13 децибел тише эталона и с четвертью пустоты в записи.
У трети записей тишина занимает больше 70% времени. И доля «поломки» растёт вместе с долей тишины: 56% на чистых записях против 81% на пустых.
Объяснение, которое я придумал
Модель построена на эмбеддингах CLAP. В коде классификатора с самого начала была защита от тишины , но только тогда когда тишина занимает 90 и более процентов - ловит нечитаемое или почти беззвучное аудио и отвечает «не уверен». Частичная тишина, а это треть записей, проходит.
Похоже, что человек держит телефон далеко от мотора или пишет в шумном дворе, половина записи состоит из фона и пауз, и модель читает эту пустоту как признак неисправности.
Делаем фильтр по качеству записи :
тишина больше 85% или громкость тише −45 dB : ловит 29% всех загрузок; внутри них «поломка» в 80% случаев, «норма» только в 7%;
тишина больше 50% или тише −35 dB добавляет ещё 20% загрузок с «поломкой» в 77%;
остальные, годные записи — 51% корпуса, там «поломка» 59% и «норма» 19%.
Главный практический вывод. Если строите диагностику на аудиоэмбеддингах общего назначения: прежде чем разбираться, что модель думает о содержании звука, проверьте, что она думает о его отсутствии. В нашем случае треть входного потока состояла из записей, где тишины больше 70%, и именно они собирали самые уверенные вердикты о поломке.

