딥보이스 탐지 서비스
2025.04정보보안 공모전 우수상 (2025.04)
문제
팀원이 만든 탐지 모델과 받아쓰기는 명령줄에서만 실행됐다. 웹에서 음성을 올려 결과를 받으려면 서버가 필요했고, 무거운 추론 요청이 겹칠 때를 다뤄야 했다.
내가 한 것
Flask로 업로드 API(/analyze)를 만들었다. 확장자·16MB 제한과 파일명 검사, 프론트 연동용 CORS, 모델 점수를 0~1 판정값으로 바꾸는 변환을 넣었다. 겹치는 요청은 처음에 큐와 워커 스레드로 받았지만 접수 응답만 돌아가 결과를 프론트에 줄 수 없었고, 전역 Lock으로 한 번에 하나씩 추론해 점수와 받아쓰기를 응답으로 돌려주게 바꿨다.
결과
프론트에서 음성을 올리면 구간별 합성 점수와 받아쓰기가 함께 돌아오는 서비스를 완성했다. 「미래와소프트웨어」 정보보안 공모전 우수상.
PythonFastAPIOracle CloudDocker