Показати HN: Класифікувати механічні несправності за допомогою Contrastive Language-Audio Pretraining
https://ift.tt/xFQabhK
cardiag — діагностика несправності авто за його звучанням
cardiag — це повний конвеєр обробки аудіо (end-to-end). Він збирає фрагменти звуку несправностей з YouTube/TikTok, очищує аудіо (виділяє механічний звук від мови, музики та шуму), вбудовує його за допомогою розмороженої моделі CLAP та тренує невеликі лінійні головки для класифікації несправності. Розгорнуто як CLI та живий веб-додаток.
Це доказ концепції, і чесно про те, що це означає. Діагностика несправності авто за телефонним записом насправді важка, тому cardiag побудований як калібрований засіб для пріоритизації, а не як діагностик: він вказує, чи щось звучить неправильно, приблизно де у машині це знаходиться, та ранжований скорочений перелік ймовірних деталей. Коли аудіо не підтримує дзвінок, він повідомляє про «невпевненість», замість того щоб хитрувати.
Справжній внесок — це очистка + чесний навчальний рецепт, який можна повторно використовувати на інших наборах аудіоданих. Скромна точність тут відображає, наскільки складна проблема на сирому телефонному аудіо (ми досягаємо літературного потолку); такий же метод досягає 0.93 AUROC на чистому аудіо двигуна. Див. docs/DEFENSE.md.
Два розділи візуалізують перші дві стадії конвеєра:
– Isolating the engine audio — інтерактивний огляд каскаду clean(), який вилучає короткий механічний відрізок із шумного аудіо YouTube (мова, музика, дорожній шум).
– CLAP, visualized — як заморожена модель CLAP перетворює ці відрізки на 512-розмірне вбудування, яке класифікують лінійні головки.
Що насправді досягається
Виміряно позашляхово, захищено від витоків (за відео по групах CV з 1 031 групою відео; перестановка p = 0.0005). Це чесні числа, а не лідерборд.
Можливість | Результат | порівняння з випадковим
– Чи є щось не так? (несправність/норма) — AUROC 0.79 [0.76, 0.83], 0.50
– Де саме в машині? (6 зон) — зона праворуч у top-3 ≈ 75%, 2×
– Яка частина? (12+ сімей) — правий вузол у top-3 ≈ 45–65%, 3–4×
– Знає, коли не знає — калібрований (ECE ≈ 0.04), повертає UNCERTAIN, —
Повні деталі та одну головку, яку ми <ем>понизилием> через відсутність узгодженості поза вибіркою (knock), знаходяться в docs/MODEL_CARD.md.
Швидкий старт: клонувати для інференсу
Світло новий клон одразу готовий до використання. Невелика попередньо натренована модель постачається в models/, а синтетичний демо-clip зібрано, тому нічого не потрібно завантажувати або збирати.
git clone
uv venv && source .venv/bin/activate
uv pip install -e “. [scrape,web,dev,viz]” # Python 3.11
cardiag doctor # попередня перевірка: що встановлено
cardiag train –fixtures # робоча модель офлайн приблизно за 2s (без збору даних, без 2 ГБ завантаження)
cardiag diagnose
cardiag serve –model models # живий веб-додаток: завантажте кліп/вставте посилання, “поясніть чому”
Перевірте всю систему від початку до кінця в ізольованому робочому дереві: bash scripts/clone_verify.sh.
audio ──► clean() cascade ──► CLAP embedding ──► linear heads ──► Diagnosis
(ізоляція відрізків) (заморожений, 512-d) (несправ./регіон/ (калібрований,
частина/удар) UNCERTAIN-орієнтований)
Є одна шляхова сегментація. Зібрані кліпи, власні записи (cardiag ingest, будь-якої довжини), та завантаження під час inference проходять через той самий каскад clean(), який ізолює короткі механічні відрізки. Відрізки понад ~10 с діляться на вікна, щоб CLAP ніколи не обрізав їх несвоєчасно. Навчання та обслуговування використовують одну контрактну ембеддінг, тому немає зсуву між навчанням та обслуговуванням.
cardiag diagnose clip.wav — повна модель: вердикт + регіон + ранжований список деталей
cardiag triage clip.wav — калібрований двигун проти рушійних механизмів
cardiag clean clip.wav — ізолювати механічний звук (модель не потрібна)
cardiag inspect clip.wav -o r.html — ПЕРЕГЛЯНУТИ/ПОСЛУХАТИ конвеєр: відрізки, спектрограми, бали
cardiag ingest ./my_audio –kind fault –cause wheel_bearing — brought your own audio
cardiag scrape youtube|tiktok — побудувати корпус (Reddit застарілий — занадто шумний)
cardiag train — навчитися на вашому корпусі
Додати –json до будь-якої команди інференсу для машиночитного виводу.
Дійсний для соціального стилю / цільового завантаження аудіо (YouTube, TikTok або телефонний кліп, який користувач навмисно записує). Це не безпеково критичний або автономний діагностик. Це помічник з пріоритизацією, який звужує, куди дивитися, й чесний щодо своєї невпевненості. Файли моделей — артефакти joblib: завантажуйте лише ті, яким довіряєте.
Ліцензія: див. LICENSE.
July 4, 2026 at 09:32AM

Залишити відповідь
Щоб відправити коментар вам необхідно авторизуватись.