cardiag: диагностика поломок авто по звуку с помощью ML

cardiag, это сквозной аудио-ML pipeline для диагностики поломок автомобилей. Проект берёт звуковые записи неисправностей из YouTube и TikTok, очищает аудио от речи, музыки и шумов, чтобы выделить собственно звук механизма, встраивает его замороженной CLAP-моделью (обучена на языке и аудио) и обучает небольшие линейные классификаторы для триажа неисправностей.
Результат доступен как через CLI, так и через интерактивное веб-приложение. Авторы честны о том, что это proof of concept: диагностировать поломку по телефонной записи, по-настоящему сложная задача. Поэтому cardiag спроектирован как калибровочный вспомогательный инструмент, а не полноценный диагност. Он говорит вам, что что-то звучит неправильно, примерно в какой части автомобиля это находится, и выдаёт ранжированный список вероятных деталей. Когда аудио слишком плохое для уверенного вывода, система отвечает «неопределённо» вместо выдачи ложного результата.
Основной вклад проекта, рецепт очистки аудио и методология честного обучения, которая переносима на другие аудиодатасеты. На чистом аудио модель достигает AUROC 0.93, но на грубых телефонных записях результаты скромнее, авторы признают, что это отражает реальную сложность задачи. Весь код открыт на GitHub с подробной документацией: MODEL_CARD с честным разбором метрик и ограничений, DEFENSE.md с обоснованием методологии, руководство по сборке собственного датасета. Проект готов к использованию: при клонировании идёт предварительно обученная модель и синтетический демо-клип.
Ключевые факты
- Полный pipeline для диагностики автополомок из аудио: скрейп → очистка (isolating mechanical sound) → CLAP-вложения → линейные классификаторы
- Честный подход к триажу: система говорит «неопределённо» вместо угадывания, когда данных недостаточно
- Методология очистки аудио переносима на другие датасеты; на чистом аудио достигает 93% AUROC, на грубых записях скромнее
- CLI, веб-приложение и полная документация (MODEL_CARD, DEFENSE.md, руководство по корпусу), проект готов к использованию
- Проектирован как вспомогательный инструмент для сужения области поиска, а не как автономный диагност, ясные границы применимости
Почему это важно
Диагностика неисправностей по звуку, практический навык, но автоматизация требует честного подхода. Обычные ML-проекты гадают в неопределённости; cardiag вместо этого признаёт, когда он не уверен. Это снижает точность в сравнении с «волшебным» чёрным ящиком, но повышает применимость: механик, который знает границы системы, может её правильно использовать. Методология очистки аудио (выделение механического звука из шумного YouTube-видео), переиспользуемая компонента для других аудиозадач.
Кому это важно
Разработчикам ML-систем для реальных данных: пример честной калибровки и качественной документации (MODEL_CARD, DEFENSE.md). Энтузиастам диагностики авто: получить работающий tool, который работает локально и знает свои границы. Исследователям в области обработки аудио: рецепт очистки аудио полезен для других датасетов. Инженерам: пример того, как презентовать PoC без скрывания ограничений, с ясным обозначением intended use.
Как это применить
Установить через uv (Python 3.11): git clone, создать venv, uv pip install -e ".[scrape,web,dev,viz]". Быстрый старт: cardiag train --fixtures обучит модель на фикстурах за ~2 секунды без скачиваний. Диагностировать клип: cardiag diagnose <clip.wav> выдаст вердикт + область + ранжированные детали. Запустить веб: cardiag serve --model models. Собрать датасет: cardiag scrape youtube|tiktok, затем cardiag ingest для собственных записей, cardiag train для обучения.
Можно ли доверять
Проект честный: на чистом аудио показывает 0.93 AUROC, авторы прямо говорят, что на грубых телефонных записях результаты хуже, это потолок сложности задачи. Метрики честные (cross-validation by-video, permutation p=0.0005), не лидерборды. MODEL_CARD указывает intended use (соцсетевое/целевое аудио), limitations и что это вспомогательный триаж. Один классификатор (knock) выпал на out-of-sample, авторы об этом сообщают. Код открыт, воспроизводим, весь pipeline в гите.
Риски и подводные камни
Это инструмент для сужения поиска, а не решение. На плохом аудио результаты ненадёжны, система это признаёт. Не применяй для критических систем безопасности: это вспомогательный ассистент. Датасет собран скрейпингом из YouTube/TikTok, поэтому платформенный шум и сжатие влияют на обучение. Для специфичной диагностики (редкие поломки, специальные авто) потребуется переучивание на собственных данных.
«Когда аудио не позволяет сделать уверенный вывод, система отвечает «неопределённо» вместо выдачи ложного результата.»
— описание cardiag, GitHub