Skip to content
Ramane-VisionPublic

About

Auskulta - AI Machine Health Monitor (vision + audio fusion) - COMPFEST 18 AIC

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🩺 Auskulta

AI Machine Diagnosis Copilot — melihat, mendengarkan, dan mengingat kondisi mesin seperti dokter memeriksa pasien.

Python FastAPI Docker License: MIT COMPFEST

Smart Manufacturing • AI for the Backbone of the Economy


📖 Tentang Auskulta

Auskulta merepresentasikan solusi diagnosis prediktif yang dirancang untuk operasional manufaktur yang mencari deteksi dini kerusakan mesin. Platform ini mengintegrasikan computer vision, analisis audio, dan retrieval-augmented reasoning berbasis histori maintenance industri.

Sistem beroperasi melalui arsitektur berlapis yang menggabungkan sensing multimodal di sisi input dengan pemrosesan AI di sisi backend. Pengguna mengunggah video mesin yang sedang beroperasi, yang dianalisis secara paralel oleh modul deteksi anomali visual (OpenCV) dan audio (fitur spektral). Sinyal gabungan ini kemudian dicocokkan terhadap knowledge base histori maintenance melalui semantic embedding retrieval, sebelum dikirim ke LLM untuk menghasilkan diagnosis yang di-ground pada evidence nyata — bukan jawaban bebas yang berisiko halusinasi.

"Auskultasi" — teknik dokter memeriksa pasien: melihat gejala, mendengarkan tubuh, lalu menelusuri rekam medis sebelum memberi diagnosis.

Ketika mesin pabrik mulai menunjukkan gejala tidak normal, jawabannya sering kali sudah pernah tercatat — di laporan maintenance lama, SOP, atau ingatan teknisi senior — tapi terfragmentasi dan sulit ditelusuri. Auskulta adalah AI copilot yang menggabungkan tiga kemampuan sekaligus untuk memberi diagnosis kesehatan mesin yang cepat dan bisa dipertanggungjawabkan:

  • 👁️ Melihat — deteksi anomali visual (getaran, gerakan tidak stabil) dari video mesin
  • 👂 Mendengarkan — deteksi anomali dari suara mesin (sinyal tambahan, best-effort)
  • 🧠 Mengingat — menelusuri histori maintenance untuk mencari kejadian serupa di masa lalu

Diagnosis akhir dihasilkan oleh LLM dan selalu di-ground pada evidence historis nyata — bukan tebakan bebas.

📄 Penjelasan lengkap (problem statement, novelty, business value, API spec) ada di docs/PROJECT_DETAIL.md.

📑 Daftar Isi

✨ Fitur

  • ✅ Deteksi anomali visual dari video (optical flow) — tanpa perlu dataset eksternal
  • ✅ Deteksi anomali audio dari track suara video menggunakan model IsolationForest terlatih (500 sampel real dari dataset DCASE 2023 Task 2, penerus MIMII) — sinyal tambahan, gagal dengan aman (graceful degradation)
  • ✅ Organizational memory — retrieval histori maintenance berbasis semantic embedding (API kompatibel OpenAI, mis. OpenAI atau Gemini), otomatis fallback ke TF-IDF kalau API tidak tersedia
  • ✅ Diagnosis LLM yang di-ground pada evidence, lengkap dengan urgensi, estimasi downtime, dan rekomendasi tindakan
  • ✅ Explainable reasoning trace ("Kenapa diagnosis ini?") — evidence visual, audio, dan historis ditampilkan terpisah dengan tingkat confidence
  • ✅ Safety gate berbasis kode: sistem menolak memberi diagnosis spesifik kalau evidence historis tidak cukup mirip, alih-alih membiarkan LLM mengarang
  • ✅ Fallback rule-based — sistem tetap memberi hasil meski LLM API tidak tersedia
  • ✅ Satu alur interaksi sederhana: upload video → lihat laporan kesehatan mesin
  • ✅ Deployment satu perintah lewat Docker Compose

🏗️ Arsitektur

Upload 1 video mesin
        │
        ▼
┌─────────────────┐     ┌─────────────────┐
│  Visual Anomaly  │     │  Audio Anomaly   │
│  (selalu jalan)   │     │  (best-effort)    │
└────────┬─────────┘     └────────┬─────────┘
         └───────────┬────────────┘
                      ▼
        ┌──────────────────────────┐
        │  Organizational Memory    │  Semantic embedding retrieval (fallback: TF-IDF)
        └─────────────┬────────────┘
                       ▼
        ┌──────────────────────────┐
        │  LLM Diagnosis             │  skor + evidence → satu diagnosis
        └─────────────┬────────────┘
                       ▼
         1 Laporan Kesehatan Mesin

Detail lengkap tiap komponen ada di docs/PROJECT_DETAIL.md.

🛠️ Tech Stack

Layer Teknologi
Backend Python, FastAPI
Frontend Next.js, TypeScript, Tailwind CSS
Vision OpenCV (optical flow)
Audio librosa (fitur spektral) + IsolationForest terlatih (scikit-learn)
Retrieval Embedding semantik via API kompatibel OpenAI (OpenAI/Gemini), fallback ke scikit-learn TF-IDF
Reasoning LLM API (OpenAI-compatible — teruji dengan OpenAI dan Gemini)
Deployment Docker Compose (backend), Next.js dev server (frontend)

🚀 Quick Start

Backend:

git clone https://github.com/Ramane-Vision/auskulta.git
cd auskulta
cp .env.example .env
# isi LLM_API_KEY di .env

docker compose up --build

Frontend (Next.js):

cd frontend-next
cp .env.local.example .env.local
npm install
npm run dev

Buka http://localhost:3000, upload video mesin, klik Analisis Video.

(Frontend vanilla JS lama di frontend/ masih tersedia sebagai fallback, otomatis di-serve backend di http://localhost:8000.)

🔌 API

POST /api/analyze — multipart form-data, field file (video: mp4/mov/avi/mkv/webm).

{
  "visual": { "score": 0.62, "vibration_index": 0.41, "detected_events": [], "notes": "..." },
  "audio": { "score": 0.48, "spectral_flatness": 0.11, "zero_crossing_rate": 0.07, "notes": "..." },
  "risk_score": 0.57,
  "urgency": "tinggi",
  "diagnosis": "Kemungkinan bearing degradation, mirip dengan kasus MR-001...",
  "estimated_downtime_hours": 24,
  "recommended_action": "Jadwalkan inspeksi bearing dalam 24 jam ke depan.",
  "evidence": [
    { "id": "MR-001", "machine": "Conveyor Motor M-03", "symptom": "...", "root_cause": "...", "action_taken": "...", "downtime_hours": 6, "date": "2026-03-14", "similarity": 0.71 }
  ]
}

📂 Struktur Proyek

auskulta/
├── backend/
│   ├── main.py        # FastAPI app, endpoint POST /api/analyze
│   ├── vision.py       # deteksi anomali visual
│   ├── audio.py        # deteksi anomali audio (best-effort)
│   ├── knowledge.py    # organizational memory (embedding retrieval + TF-IDF fallback)
│   ├── diagnosis.py    # fusion + LLM diagnosis
│   └── config.py       # konfigurasi environment
├── frontend-next/       # UI utama (Next.js + TypeScript + Tailwind)
├── frontend/            # UI lama (vanilla JS), fallback yang masih di-serve backend
├── data/
│   └── knowledge_base.json   # histori maintenance
├── docs/
│   ├── PROJECT_DETAIL.md     # penjelasan lengkap proyek
│   └── PROPOSAL.md           # draft proposal submission
├── docker-compose.yml
└── Dockerfile

🗺️ Roadmap

MVP penyisihan ini sengaja dibatasi ke fondasi yang benar-benar bekerja. Peningkatan lebih lanjut direncanakan berlanjut di Hackathon 10 jam babak final (sesuai alur kompetisi AIC COMPFEST 18), bukan dikejar semua malam ini:

  • Latih model audio anomaly detection — IsolationForest terlatih pada 500 sampel DCASE 2023 Task 2; perluasan data training & evaluasi formal masih di roadmap
  • Tambahkan pretrained visual event detector (asap, percikan)
  • Perluas knowledge base dengan data maintenance riil dari mitra industri
  • Ganti TF-IDF dengan embedding model semantik — sudah aktif (jalur utama), TF-IDF kini jadi fallback
  • Fitur Knowledge Gap Detection — deteksi gejala yang belum punya histori sama sekali
  • Evaluation benchmark & kalibrasi threshold berbasis data berlabel

Detail lengkap: docs/PROJECT_DETAIL.md.

👥 Tim

Nama Peran
Achmad Naufal Fatkhi Audio
Fawwaz Fathin Al Kautsar RAG / LLM Backend
Muhammad Afif Aryaputra Vision
Fery Nurjaman Frontend / UI-UX
Maisya Talitha Salsa Bila Official, Proposal, Video

📄 Lisensi

Proyek ini dilisensikan di bawah MIT License.


Dibuat untuk COMPFEST 18 — AI Innovation Challenge 2026

About

Auskulta - AI Machine Health Monitor (vision + audio fusion) - COMPFEST 18 AIC

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages