팀명
집에가고싶다
(정말 집가고 싶다… …)
소개
대학 졸업한 유사 개발자 4인에서 모여서 만든 팀 입니다.
프런트앤드도 없고 디자이너도 없어요 ㅠㅠ
그래도 되는데 까지 열심히 해보겠습니다 :)
서비스명
그놈 목소리
한줄 소개
네이버 클로바 AI 서비스를 이용한 통화 내용을 바탕으로 한 실시간 보이스피싱 탐지 서비스
개발 동기
NAVER CLOVA에서 쉽게 사용할 수 있는 자연어 관련 AI 를 이용하여 어떠한 사회적 문제를 해결 할 수 있을지 고민하다. CLOVA Speech API와 튜닝이 가능한 CLOVA Binary Classification API 를 이용하여, 계속 심해지고 있는 보이스피싱 피해를 효율적으로 예방 할 수 있는 아이디어가 떠올라 아이디어를 구체화 하기 시작했습니다.
최초 기획안
-
동작 방안 - 최소 구현
- CLOVA Speech Recognition의 장문인식 으로 통화 내용을 Text로 변환
- 변환된 Text를 보이스피싱 검출 튜닝이 완료된 CLOVA Binary Classification으로 검출
- 결과 반환
-
동작 방안 - 중간 구현
- 실시간으로 CLOVA Speech Recognition의 단문인식 으로 통화 내용을 Text로 변환
- 실시간으로 변환된 Text를 계속 합쳐서 튜닝이 완료된 CLOVA Binary Classification으로 검출
- 실시간으로 결과 반환
-
동작 방안 - 완전 구현
- 휴대폰 어플리케이션 제공 - 전화 앱
- 사용자에게 전화가 걸려왔을때 실시간으로 CLOVA Speech Recognition의 단문인식 으로 통화 내용을 Text로 변환
- 실시간으로 변환된 Text를 계속 합쳐서 보이스피싱 검출 튜닝이 완료된 CLOVA Binary Classification으로 검출
- 사용자에게 실시간으로 결과 반환 및 실시간 진동 경고 및 대처 방안 제공
-
구현 방안
- 음성 파일의 내용을 CLOVA Speech Recognition를 통해 Text 변환
- Dataset 을 만들기 위해 금강원에서 제공하는 보이스피싱 통화 내용을 CLOVA Speech Recognition를 통해 Text변환, 일반적인 통화는 현재 찾기가 불가능 하여 인터넷 체팅(카카오톡) 에서 제공된 문장을 사용하여 라벨링
- 라벨링을 마친 Dataset을 CLOVA Binary Classification를 통해 분류
- Python 을 이용하여 기능 연결 및 결론 도출 - 최소,중간 구현
- 플러터로 휴대폰 어플리케이션 개발 - 완전 구현
구현 내용
-
구현 된 범위
- 최소 구현과 중간 구현 그 사이 어딘가… …
- PyAudio를 통해 실시간으로 받은 음성을 음성 파일로 저장
- 저장된 음성 파일의 내용을 CLOVA Speech Recognition를 통해 Text로 실시간 변환 가능
- 보이스 피싱 음성 파일을 CLOVA Speech Recognition을 통해 데이터셋 500개를 만들어냄
- CLOVA Binary Classification 으로 튜닝을 진행하여 보이스 피싱 검출을 시도 했지만 데이터셋 규격의 문제가 지속되어 학습 불가 판정을 내림 ⇒ 자체 언어 예측모델 BERT를 학습하여 보이스 피싱을 검출
- 사용자에게 프롬포트 형태로 결과 반환 ⇒ 예측 모델의 구동 시간 때문에 음성 씹힘 현상 생김 (불안정-개선 필요)
- 시각화 하여 보기 좋게 하기 위해 Django를 통해 홈페이지 UI를 만들어 기능 구현을 보여줄 수 있는 시스템을 개발함
-
구현 파일 시스템 - NONE UI
- BICD
- API
- STT.py : 실시간 녹음 및 CLOVA Speech Recognition 을 이용하여 실시간 STT작업
- Audio
- output.wav : STT.py의 부산물(통화 녹음)
- Dataset
- test01.csv : CLOVA Speech Recognition를 통해 Text변환하여 만들어낸 500개의 보이스피싱 관련 라벨링이 된 데이터셋
- Model
- Model_sav
- model_save3.pt : test01.csv 로 학습된 BERT 자연어 분류 가중치 세이브 파일
- model.py : 자연어 분류 BERT모델 - 보이스 피싱 관련 학습 및 분류 작업
- Model_sav
- Text
- readme.txt : STT.py의 부산물(speach to text 의 결과물)
- main.py : 전체 시스템 구동부
- API
- BICD
-
구현된 자연어 처리 모델(BERT)의 성능
- epochs == 3 batch_size == 32 로 학습 진행
- 정확도가 94% 가량 되지만 loss 수치가 너무 높아 신뢰성 있는 정확도가 아님 ⇒ 데이터셋 개수의 부족으로 인한 불안정이라 예측됨
-
현재까지 생긴 구현의 어려움
- 데이터셋 규격의 문제가 계속 일어나 CLOVA Binary Classification 튜닝이 진행되지 않음 (해결 불가 판단)
- 시간 내에 만들 거나 찾을 수 있는 보이스 피싱에 관한 데이터 셋이 거의 없음 ⇒ 적은 데이터셋 개수로 인해 예측모델의 정확도 신뢰성이 너무 떨어짐 (해결 불가)
- 가지고 있던 언어 예측 모델이 오래된 모델이고 이전 버전 pytorch의 버전 문제가 있어 코드를 고치는데 시간이 많이 들어감
- 만들어진 언어 예측 모델이 너무 무거운 관계로 서비스의 딜레이가 발생함 - 비동기화 시스템을 만들어 해결 하려 하였으나 시간부족으로 인해 무산 됨
기대 효과
- 보이스피싱 피해 사전 예방
- 보이스피싱 범죄자 조직 검거에 도움이 될 수 있음
ToDo (발전 가능성)
- 서비스 반응성 향상 (학습속도 최적화 및 도출속도와 정확도 향상)
- 통화 데이터 암호화 (개인정보 보호)
- 스팸 메일 혹은 문자도 학습하여 스미싱 예방 (통신에 관련된 모든 사기성 범죄 예방)
- 후후 같은 전화번호 스펨 신고를 이용하는 서비스와 연계하여 정확도와 신뢰성 향상