API Documentation

폐음 진단 API

개요

소아 폐음 진단 API는 사용자가 업로드한 폐음(호흡음) 오디오 파일을 분석하여 정상 폐음(Normal), 수포음(Crackles), 천명음(Wheezes), 혼합음(Both) 중 하나로 분류합니다. 본 문서는 카카오 개발자 문서 스타일을 참고하여 엔드포인트, 요청, 응답, 샘플 코드, 데모를 포함합니다.


폐음 예시 및 다운로드

정상 폐음 (Normal)

설명: 정상적인 폐 소리는 부드럽고 깨끗하며 잡음이 없습니다.

normal.wav 다운로드

수포음 (Crackles)

설명: 머리카락 비비는 듯한 타닥거리는 소리가 특징입니다. 주로 흡기 시 들립니다.

crackle.wav 다운로드

천명음 (Wheezes)

설명: 휘파람처럼 쌕쌕거리는 소리입니다. 주로 호기 시 들립니다.

wheeze.wav 다운로드

혼합음 (Both)

설명: 수포음과 천명음이 동시에 들립니다. (샘플 없음)


API 엔드포인트

POST https://medisensing.kr/api/respcls/predict

인증 방식은 마이페이지에서 발급된 토큰을 사용합니다.


요청 (Request)

요청 헤더

Content-Type: multipart/form-data
X-API-Key: <api_key>

요청 파라미터

이름 타입 필수 설명
file file O 오디오 파일 (WAV 권장, 최대 10MB, 10초 이내 권장)

제약 및 권장

  • 지원 형식: WAV
  • 권장 길이: 10초 이내
  • 권장 크기: 10MB 이하
  • CORS: Access-Control-Allow-Origin: *

응답 (Response)

성공 응답 (200 OK)

{
  "predicted_label": "Crackles",
  "confidence": 0.92,
  "probabilities": {
    "Normal": 0.01,
    "Crackles": 0.92,
    "Wheezes": 0.05,
    "Both": 0.02
  },
  "metadata": {
    "duration": 8.3,
    "sample_rate": 44100
  }
}

오류 응답 예시

{
  "detail": "Invalid API key"
}

가능한 오류 코드 - 400 Bad Request: 파일 누락 또는 형식 오류 - 401 Unauthorized: 잘못된 API 키 - 413 Payload Too Large: 파일 크기 초과 - 500 Internal Server Error: 서버 내부 오류


샘플 요청

cURL

curl -X POST "https://medisensing.kr/api/respcls/predict"   -H "X-API-Key: YOUR_API_KEY"   -F "file=@normal.wav"

JavaScript (fetch)

const formData = new FormData();
formData.append("file", fileInput.files[0]);

fetch("https://medisensing.kr/api/respcls/predict", {
  method: "POST",
  headers: {
    "X-API-Key": "YOUR_API_KEY"
  },
  body: formData
})
  .then(res => res.json())
  .then(console.log)
  .catch(console.error);

직접 테스트 (Demo)



응답 미리보기






성능 및 지표

  • 정확도(내부): 약 91–93%
  • 추론 지연: GPU 환경 기준 평균 100–200ms, 파일 업로드/네트워크 포함 평균 1–3초

변경 이력

  • 2025-09-23: 초기 API 문서 공개